commit a49f43fd8f412ac81526fccbe9f0e02f977165bd Author: augustgl Date: Sat Jul 11 13:32:14 2020 -0700 commit 1 diff --git a/config.ar/AndroidManifest.xml b/config.ar/AndroidManifest.xml new file mode 100644 index 0000000..4b95108 Binary files /dev/null and b/config.ar/AndroidManifest.xml differ diff --git a/config.ar/META-INF/BNDLTOOL.RSA b/config.ar/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..d730b78 Binary files /dev/null and b/config.ar/META-INF/BNDLTOOL.RSA differ diff --git a/config.ar/META-INF/BNDLTOOL.SF b/config.ar/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..ca2fef6 --- /dev/null +++ b/config.ar/META-INF/BNDLTOOL.SF @@ -0,0 +1,44 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: 74zl7CxcDC+YFyeJzaH1HzV1Vpg= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: ogT5XOjj9I59pvGBUeRn9d5bCls= + +Name: assets/i18#lang_ar/default.json +SHA1-Digest: 4Gv1XzKmoFqmjZuHu7IMomeIQnA= + +Name: assets/i18#lang_ar/dz.json +SHA1-Digest: qWK2gV3ZgFZT3E5M2bN3lQloUUg= + +Name: assets/i18#lang_ar/eg.json +SHA1-Digest: vhF5SGStiOV13q9y5wplg4A1uJo= + +Name: assets/i18#lang_ar/il.json +SHA1-Digest: fXvoXlu6FNUB/VErG1n1PBEiCT4= + +Name: assets/i18#lang_ar/iq.json +SHA1-Digest: S/8ecHwHr2g5t1UTVnp25bffHOY= + +Name: assets/i18#lang_ar/jo.json +SHA1-Digest: J+513O4YkoRT8s2zBYiI4Z76lno= + +Name: assets/i18#lang_ar/ly.json +SHA1-Digest: telC/LsKZM2UdoPtOGc05yB9W/4= + +Name: assets/i18#lang_ar/ma.json +SHA1-Digest: IQhKEeaFXQSnW6FXcZnAOw06Z08= + +Name: assets/i18#lang_ar/tr.json +SHA1-Digest: 7+kny6oJrh8kuVoXzCcgtRfD/KI= + +Name: assets/i18#lang_ar/ye.json +SHA1-Digest: Xhaz94ctVpKVFnhOV9sAXy4wFCc= + +Name: res/as/a.webp +SHA1-Digest: ZDGH+jV+HDfIdOQcW473Emp1Rrk= + +Name: resources.arsc +SHA1-Digest: xogPMTB3eTdgRdCNRjH2dEkI5ck= + diff --git a/config.ar/META-INF/MANIFEST.MF b/config.ar/META-INF/MANIFEST.MF new file mode 100644 index 0000000..99259c7 --- /dev/null +++ b/config.ar/META-INF/MANIFEST.MF @@ -0,0 +1,43 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: cquzvSXHlzmdvrrxyXsre1yc2g4= + +Name: assets/i18#lang_ar/default.json +SHA1-Digest: MhYkF/f1Xdhl2dZZ6gyyMPZ6rhs= + +Name: assets/i18#lang_ar/dz.json +SHA1-Digest: 5UT7W4P8GScuB+MsC5+16SVtiTw= + +Name: assets/i18#lang_ar/eg.json +SHA1-Digest: to8J724cDyp2xX37qQtvZzByP5A= + +Name: assets/i18#lang_ar/il.json +SHA1-Digest: fgCDLUH0zRZ4RgtnQZV6CvrEfPQ= + +Name: assets/i18#lang_ar/iq.json +SHA1-Digest: 2u96jH2FO4lYe/oUtkNAEH2C2RI= + +Name: assets/i18#lang_ar/jo.json +SHA1-Digest: jgI0xg+Zm37PTYohmOhKPvg8eqQ= + +Name: assets/i18#lang_ar/ly.json +SHA1-Digest: CbrglRwdqclpewVokzsHSIQCWNw= + +Name: assets/i18#lang_ar/ma.json +SHA1-Digest: q200/BxRKvDWAv58p+09OEKqCwA= + +Name: assets/i18#lang_ar/tr.json +SHA1-Digest: C600EaWV14e8sfeKP+s7eSp1BsA= + +Name: assets/i18#lang_ar/ye.json +SHA1-Digest: AkwpKjE2OFk2exMJOEGA8oXnXN0= + +Name: res/as/a.webp +SHA1-Digest: 2AfToqc1mqsX+BhPwWxHHbkfLSw= + +Name: resources.arsc +SHA1-Digest: cHPGjCElYm7XNQHOjIGKM7gAq8M= + diff --git a/config.ar/assets/i18#lang_ar/default.json b/config.ar/assets/i18#lang_ar/default.json new file mode 100644 index 0000000..748a6fe --- /dev/null +++ b/config.ar/assets/i18#lang_ar/default.json @@ -0,0 +1,1033 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838298440720583941", + "desc": "#🍩مغروره🍭بكيفى🍫 وصالونى 250k", + "create_time": 1592165430, + "author": { + "uid": "6725881746199888901", + "short_id": "46162185736", + "nickname": "누르 ❤", + "signature": "نوصل 200kامتى", + "avatar_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "noormosta2", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "EG", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/63812c4ea2623dae9bcbd92677768a78", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/63812c4ea2623dae9bcbd92677768a78" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151381761523FFE4" + ], + "width": 720, + "height": 720 + } + ], + "language": "ar", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAeiwgLLuCtR1uYpm9YzmKxsVmoW3mdn7WCB_eKjuaXg7bpciP9KpOGQSTqvmiPNKk", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6836501938520067000, + "id_str": "6836501938520066821", + "title": "original sound - noormosta2", + "author": "누르 ❤", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6836501913979161350.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6836501913979161350.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 20, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6725881746199888901", + "owner_nickname": "누르 ❤", + "is_original": false, + "mid": "6836501938520066821", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "noormosta2", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAeiwgLLuCtR1uYpm9YzmKxsVmoW3mdn7WCB_eKjuaXg7bpciP9KpOGQSTqvmiPNKk", + "avatar_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1666810775573509", + "cha_name": "🍩مغروره🍭بكيفى🍫", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1666810775573509", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1666810775573509.html?name=%F0%9F%8D%A9%D9%85%D8%BA%D8%B1%D9%88%D8%B1%D9%87%F0%9F%8D%AD%D8%A8%D9%83%D9%8A%D9%81%D9%89%F0%9F%8D%AB&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1666810775573509", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🍩مغروره🍭بكيفى🍫 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🍩مغروره🍭بكيفى🍫 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🍩مغروره🍭بكيفى🍫", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_1279133", + "data_size": 2417082 + }, + "cover": { + "uri": "tos-maliva-p-0068/dec8c1a5f0bd4d9d8a0cfc4fbde5bf82", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/dec8c1a5f0bd4d9d8a0cfc4fbde5bf82~noop.webp?x-expires=1592658000&x-signature=QwrHMlOg7yJoZCtLWE1wpU4MXoQ%3D&l=202006181309480101151381761523FFE4" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 544, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/70ddfbdf545f4ab5907c51bc1eb66e72_1592165431", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/70ddfbdf545f4ab5907c51bc1eb66e72_1592165431?x-expires=1592658000&x-signature=D4MSuGTx%2FkjhbQoM1E9h4yG4gfE%3D&l=202006181309480101151381761523FFE4" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/3351ac8ba3bb4e05a5c97c3f8688fe2f_1592165432", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/3351ac8ba3bb4e05a5c97c3f8688fe2f_1592165432~noop.image?x-expires=1592658000&x-signature=3e3EiyzPJDaeRJRWbhoYNSjhFnI%3D&l=202006181309480101151381761523FFE4" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2545243 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1279133, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_1279133", + "data_size": 2417082 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 764315, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_764315", + "data_size": 1444270 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 554336, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_554336", + "data_size": 1047488 + }, + "is_h265": 0 + } + ], + "duration": 15117, + "download_suffix_logo_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2611835 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507405, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044470000brj87rm0bkblhk383se0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2719486}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838298440720583941.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838298440720583941", + "user_digged": 0, + "statistics": { + "aweme_id": "6838298440720583941", + "comment_count": 4639, + "digg_count": 508902, + "download_count": 73131, + "play_count": 11315779, + "share_count": 314414, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6394 + }, + "status": { + "aweme_id": "6838298440720583941", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🍩مغروره🍭بكيفى🍫", + "hashtag_id": "1666810775573509", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151381761523FFE4" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838298440720583941.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838298440720583941", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 누르 ❤’s video! #TikTok > ", + "share_desc": "Check out 누르 ❤'s video! #TikTok", + "share_title": "Check out 누르 ❤’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15117, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6725881746199889000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "EG", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838298440720583941", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ar", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6826365174585265409", + "desc": "tre dil k nikale hum#fyp @maahisingh1", + "create_time": 1589387001, + "author": { + "uid": "6641364067926802437", + "short_id": "34474486888", + "nickname": "Monika Vashistha 🥰", + "signature": "", + "avatar_thumb": { + "uri": "tiktok-obj/1664224018828289", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664224018828289.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664224018828289", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664224018828289.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "monikasharma3381", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "tiktok-obj/1666410557478914", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1666410557478914" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151381761523FFE4" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "tiktok-obj/1664224018828289", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664224018828289~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1664224018828289", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664224018828289~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAApW2ScLOpuIT0bK8PN-W7dCtm0hk2tcyoSji8UmWindvg9QHRH-4NVjZ5RsHUP5AN", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6749385862997495000, + "id_str": "6749385862997494530", + "title": "original sound - mehmood_j", + "author": "👑 Mehmood J 👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1647801687336993.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1647801687336993.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 23, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6576440022575955974", + "owner_nickname": "👑 Mehmood J 👑", + "is_original": false, + "mid": "6749385862997494530", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehmood_j", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1647830509037569", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1647830509037569" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAeB-IqZMvCTQCWNgJPbonaNlDTK5y8t3I9VjF_bFyVGPveXZqMZo23rdmetdYNwuZ", + "avatar_thumb": { + "uri": "tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/613b9cafd10ebb275ace1cbae2de82c8.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "229207", + "cha_name": "fyp", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=229207", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/229207.html?name=fyp&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=229207", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #fyp Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #fyp Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: fyp", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044530000bqu1ts4b0k2sqg8clv60", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqu1ts4b0k2sqg8clv60&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044530000bqu1ts4b0k2sqg8clv60_h264_540p_337485", + "data_size": 536813 + }, + "cover": { + "uri": "tos-maliva-p-0068/d2feaed0d12b4fefb95606743f6a5c45", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d2feaed0d12b4fefb95606743f6a5c45~noop.webp?x-expires=1592658000&x-signature=jOxqa%2BrKSleF40Vb7hc4qdWOLkA%3D&l=202006181309480101151381761523FFE4" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/ec59dd514980423db8e1eeaa6f51ed4f_1589387004", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/ec59dd514980423db8e1eeaa6f51ed4f_1589387004?x-expires=1592658000&x-signature=awibKT0zj%2BfkKXRkCqD%2F3ZiLILs%3D&l=202006181309480101151381761523FFE4" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/b9808029dd4547f59cf40fa82ba4c9b6_1589387004", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b9808029dd4547f59cf40fa82ba4c9b6_1589387004~noop.image?x-expires=1592658000&x-signature=8oY6Bbczc5Vc699qKmKdOrmqXIA%3D&l=202006181309480101151381761523FFE4" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044530000bqu1ts4b0k2sqg8clv60", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqu1ts4b0k2sqg8clv60&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1425191 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 337485, + "play_addr": { + "uri": "v09044530000bqu1ts4b0k2sqg8clv60", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqu1ts4b0k2sqg8clv60&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044530000bqu1ts4b0k2sqg8clv60_h264_540p_337485", + "data_size": 536813 + }, + "is_h265": 0 + } + ], + "duration": 12725, + "download_suffix_logo_addr": { + "uri": "v09044530000bqu1ts4b0k2sqg8clv60", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqu1ts4b0k2sqg8clv60&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1496305 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507402 + }, + "share_url": "https://m.tiktok.com/v/6826365174585265409.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826365174585265409", + "user_digged": 0, + "statistics": { + "aweme_id": "6826365174585265409", + "comment_count": 2030, + "digg_count": 147705, + "download_count": 13385, + "play_count": 887395, + "share_count": 6363, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 3776 + }, + "status": { + "aweme_id": "6826365174585265409", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 25, + "end": 37, + "user_id": "175932356136964096", + "type": 0, + "sec_uid": "MS4wLjABAAAA83EemBl4hh-C9c441ciSkdvjsBTsgMSnLRZZfjDcUC_-_g5YlBQpigDTkAqGwFnO" + }, + { + "start": 20, + "end": 24, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151381761523FFE4" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6826365174585265409.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826365174585265409", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Monika Vashistha 🥰’s video! #TikTok > ", + "share_desc": "Check out Monika Vashistha 🥰's video! #TikTok", + "share_title": "Check out Monika Vashistha 🥰’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12725, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6641364067926802437,\"author_country\":\"India\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6641364067926802000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6826365174585265409", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "hi", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101151381761523FFE4" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ar/assets/i18#lang_ar/dz.json b/config.ar/assets/i18#lang_ar/dz.json new file mode 100644 index 0000000..e9ef0c4 --- /dev/null +++ b/config.ar/assets/i18#lang_ar/dz.json @@ -0,0 +1,1079 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838592038842174725", + "desc": "Ou sont les chaoui🇩🇿", + "create_time": 1592233788, + "author": { + "uid": "6834277087417205766", + "short_id": "49566256864", + "nickname": "Nourhane Maoui", + "signature": "Insta: nourhane_maouiii\n♥️\n🇩🇿chaouia", + "avatar_thumb": { + "uri": "musically-maliva-obj/45ff9d678882de23a53985121d901f4b", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/45ff9d678882de23a53985121d901f4b~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/45ff9d678882de23a53985121d901f4b", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/45ff9d678882de23a53985121d901f4b~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "nourhanemaoui", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "DZ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + } + ], + "language": "fr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/45ff9d678882de23a53985121d901f4b", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/45ff9d678882de23a53985121d901f4b~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/45ff9d678882de23a53985121d901f4b", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/45ff9d678882de23a53985121d901f4b~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAACaj-q3ws07m9C_rWPptjCuNw5xh2mhoi2b25-Ispi43hp9g1khWCYx8WAwFgCMha", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6834970950111464000, + "id_str": "6834970950111464198", + "title": "original sound - chahinezchennafi", + "author": "Chahinez Chennafi", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6834970877323397893.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6834970877323397893.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6760991317905720325", + "owner_nickname": "Chahinez Chennafi", + "is_original": false, + "mid": "6834970950111464198", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "chahinezchennafi", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAKZUPsyW0vaVD38YyXajsoiMsTyQ28AN7CmGUfITmJP2xpWUse44J_wDVwv3DE4l0", + "avatar_thumb": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjotsfdee99o39pata0_h264_540p_1158528", + "data_size": 1879567 + }, + "cover": { + "uri": "tos-maliva-p-0068/79b06d209fcc4ac6a0bcf51018e0bbe6", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/79b06d209fcc4ac6a0bcf51018e0bbe6~noop.webp?x-expires=1592658000&x-signature=N6PkfF6Jq5kzy3YvS%2FxAk3iYMRM%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/0a0c5a3937204b27a60bb35a1216e6db_1592233790", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/0a0c5a3937204b27a60bb35a1216e6db_1592233790?x-expires=1592658000&x-signature=cwyJlil4dySCjDYw16T%2FTUuH6M4%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/1d314741865f42f2a4dde35562bd2337_1592233791", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/1d314741865f42f2a4dde35562bd2337_1592233791~noop.image?x-expires=1592658000&x-signature=UoBfiI1Xa2ouj4c%2FvRPic7JV0Nw%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1917490 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 504574, + "play_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjotsfdee99o39pata0_h264_540p_504574", + "data_size": 818609 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 315800, + "play_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjotsfdee99o39pata0_h264_540p_315800", + "data_size": 512347 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 251848, + "play_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjotsfdee99o39pata0_h264_480p_251848", + "data_size": 408592 + }, + "is_h265": 0 + } + ], + "duration": 12979, + "download_suffix_logo_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1984843 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401 + }, + "share_url": "https://m.tiktok.com/v/6838592038842174725.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838592038842174725", + "user_digged": 0, + "statistics": { + "aweme_id": "6838592038842174725", + "comment_count": 1925, + "digg_count": 129767, + "download_count": 4952, + "play_count": 2075591, + "share_count": 2333, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 55 + }, + "status": { + "aweme_id": "6838592038842174725", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838592038842174725.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838592038842174725", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Nourhane Maoui’s video! #TikTok > ", + "share_desc": "Check out Nourhane Maoui's video! #TikTok", + "share_title": "Check out Nourhane Maoui’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12979, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6834277087417206000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "DZ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838592038842174725", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "fr", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6825108367703411969", + "desc": "Mother Day🥀😘 #standwithkashmir #tehzeebhafi #urdushayari #deepthoughts #viral #viralvideo #ertuğrul #ertugrul #fyp #foryou #turkishdrama #fypシ", + "create_time": 1589094377, + "author": { + "uid": "6823574408465220609", + "short_id": "35256545697", + "nickname": "Gol•Gappi😜", + "signature": "کڑوے مزاج کی نیم چڑھی لڑکی ہوں\nبرداشت کیجئے یا اجتناب کیجئے ✨😌\n18y/o🐾", + "avatar_thumb": { + "uri": "tiktok-obj/0edfa817799aebba1a800aa8bd1f8174", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0edfa817799aebba1a800aa8bd1f8174.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/0edfa817799aebba1a800aa8bd1f8174", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0edfa817799aebba1a800aa8bd1f8174.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mehak.wri8s", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/0edfa817799aebba1a800aa8bd1f8174", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/0edfa817799aebba1a800aa8bd1f8174~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/0edfa817799aebba1a800aa8bd1f8174", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/0edfa817799aebba1a800aa8bd1f8174~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAjQAo14CyIeN6N3NRhejDpCUoyWtQQ_7IzCaPXOKa-ckdm47aKU-XeP7E38ajmvC4", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6810938042627444000, + "id_str": "6810938042627443457", + "title": "Turkish Music", + "author": "Javed Ali Solangi", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1662827780986930.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1662827780986930.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 24, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6716138059442111493", + "owner_nickname": "Javed Ali Solangi", + "is_original": false, + "mid": "6810938042627443457", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "solangi777", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAJePubiIgnHty0z0L3Zx0eRZfuzv7uGFFETj6gcudaH0IpKae7q3dIfp4lO9OpVmi", + "avatar_thumb": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1624626732781573", + "cha_name": "standwithkashmir", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1624626732781573", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1624626732781573.html?name=standwithkashmir&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1624626732781573", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #standwithkashmir Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #standwithkashmir Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: standwithkashmir", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044030000bqrqfmea9rh4nikvknsg_h264_540p_903610", + "data_size": 1154023 + }, + "cover": { + "uri": "tos-maliva-p-0068/ac2cecef9dde4db6b3d70a1c420009b0", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ac2cecef9dde4db6b3d70a1c420009b0~noop.webp?x-expires=1592658000&x-signature=L54teldzCaNnGwugMgRpESGxDtU%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/f64b039ea86d457b9b881e7e736bbe66_1589094380", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/f64b039ea86d457b9b881e7e736bbe66_1589094380?x-expires=1592658000&x-signature=4WnotSyD1lUKAhlbwssT6MtiaWQ%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/030d5f0308a144b6b4cdb73b0863bec9_1589094379", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/030d5f0308a144b6b4cdb73b0863bec9_1589094379~noop.image?x-expires=1592658000&x-signature=aVV5226iz6oGcywVSMv84cO1VIQ%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1206821 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 370565, + "play_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044030000bqrqfmea9rh4nikvknsg_h264_540p_370565", + "data_size": 473258 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 224693, + "play_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044030000bqrqfmea9rh4nikvknsg_h264_540p_224693", + "data_size": 286962 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 180254, + "play_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044030000bqrqfmea9rh4nikvknsg_h264_480p_180254", + "data_size": 230208 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1274624 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044030000bqrqfmea9rh4nikvknsg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1320056}}\n" + }, + "share_url": "https://m.tiktok.com/v/6825108367703411969.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6825108367703411969", + "user_digged": 0, + "statistics": { + "aweme_id": "6825108367703411969", + "comment_count": 306, + "digg_count": 36488, + "download_count": 13063, + "play_count": 370524, + "share_count": 4919, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 4092 + }, + "status": { + "aweme_id": "6825108367703411969", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 15, + "end": 32, + "type": 1, + "hashtag_name": "standwithkashmir", + "hashtag_id": "1624626732781573", + "is_commerce": false + }, + { + "start": 33, + "end": 45, + "type": 1, + "hashtag_name": "tehzeebhafi", + "hashtag_id": "1622261264162821", + "is_commerce": false + }, + { + "start": 46, + "end": 58, + "type": 1, + "hashtag_name": "urdushayari", + "hashtag_id": "1603439555991558", + "is_commerce": false + }, + { + "start": 59, + "end": 72, + "type": 1, + "hashtag_name": "deepthoughts", + "hashtag_id": "374089", + "is_commerce": false + }, + { + "start": 73, + "end": 79, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + }, + { + "start": 80, + "end": 91, + "type": 1, + "hashtag_name": "viralvideo", + "hashtag_id": "85133", + "is_commerce": false + }, + { + "start": 92, + "end": 101, + "type": 1, + "hashtag_name": "ertuğrul", + "hashtag_id": "84120280", + "is_commerce": false + }, + { + "start": 102, + "end": 111, + "type": 1, + "hashtag_name": "ertugrul", + "hashtag_id": "1592794425414662", + "is_commerce": false + }, + { + "start": 112, + "end": 116, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 117, + "end": 124, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 125, + "end": 138, + "type": 1, + "hashtag_name": "turkishdrama", + "hashtag_id": "65807755", + "is_commerce": false + }, + { + "start": 139, + "end": 144, + "type": 1, + "hashtag_name": "fypシ", + "hashtag_id": "1637342470396934", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6825108367703411969.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6825108367703411969", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Gol•Gappi😜’s video! #TikTok > ", + "share_desc": "Check out Gol•Gappi😜's video! #TikTok", + "share_title": "Check out Gol•Gappi😜’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6823574408465220609,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6823574408465221000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6825108367703411969", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "misc_info": "{\"green_screen\":0,\"mv_id\":\"309393\",\"mv_info\":{\"id\":\"309393\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813094801011500405414232F55" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ar/assets/i18#lang_ar/eg.json b/config.ar/assets/i18#lang_ar/eg.json new file mode 100644 index 0000000..ef840aa --- /dev/null +++ b/config.ar/assets/i18#lang_ar/eg.json @@ -0,0 +1,991 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837494890021145862", + "desc": "كانت مندمجة فى الاغنية بس بعد مفلوف دى كان لازم اوقف المهزلة دى 😂🙏🏻اعمل العلامة دى @ اول واحد يطلعلك قولة بحبك يا مفلوف 😂🤷‍♂️", + "create_time": 1591978339, + "author": { + "uid": "6811149961830843397", + "short_id": "48132950344", + "nickname": "مصطفى شعبان", + "signature": "كل يوم فديو جديد👇🏻\nعلى اليوتيوب 👌🏼\nشرف لينا انك تشترك فى القناة👇🏻🙏🏻♥️", + "avatar_thumb": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "mostafashaaban07", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "EG", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152280751B23F10C" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAMJ99LvGt2iliGdCElXZn4lDRjrsWHf6-J2Yt66fJnlCQ55twlkPJex3u1Jb6Xnp3", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6837494873302601000, + "id_str": "6837494873302600454", + "title": "original sound - mostafashaaban07", + "author": "مصطفى شعبان", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/6837494865761209093.mp3", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/6837494865761209093.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 11, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6811149961830843397", + "owner_nickname": "مصطفى شعبان", + "is_original": false, + "mid": "6837494873302600454", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mostafashaaban07", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAMJ99LvGt2iliGdCElXZn4lDRjrsWHf6-J2Yt66fJnlCQ55twlkPJex3u1Jb6Xnp3", + "avatar_thumb": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d856897bd7d7b23ec535e4d4220e498d~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044470000brhqgo77421tnp2pqbl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhqgo77421tnp2pqbl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brhqgo77421tnp2pqbl0_h264_540p_2246250", + "data_size": 3247798 + }, + "cover": { + "uri": "tos-maliva-p-0068/9880bc058966466ca16ec0655830d521_1591978340", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/9880bc058966466ca16ec0655830d521_1591978340~noop.webp?x-expires=1592658000&x-signature=yIidq0bOBfg0xtstru812M5%2FB8g%3D&l=202006181309480101152280751B23F10C" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/ef8fe465886e42f58a885622ee0d98ad_1591978343", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/ef8fe465886e42f58a885622ee0d98ad_1591978343?x-expires=1592658000&x-signature=FPtJP7qeKcn6tm8OAyKtCGU64vA%3D&l=202006181309480101152280751B23F10C" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/1d14756d09304ff4834ca0fba6ae99b0_1591978341", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/1d14756d09304ff4834ca0fba6ae99b0_1591978341~noop.image?x-expires=1592658000&x-signature=yy%2FowijHStD7Iv80y6KfQ1Lq4%2Bo%3D&l=202006181309480101152280751B23F10C" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044470000brhqgo77421tnp2pqbl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhqgo77421tnp2pqbl0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3367628 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1326417, + "play_addr": { + "uri": "v09044470000brhqgo77421tnp2pqbl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhqgo77421tnp2pqbl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brhqgo77421tnp2pqbl0_h264_540p_1326417", + "data_size": 1917834 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 929685, + "play_addr": { + "uri": "v09044470000brhqgo77421tnp2pqbl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhqgo77421tnp2pqbl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brhqgo77421tnp2pqbl0_h264_540p_929685", + "data_size": 1344209 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 757006, + "play_addr": { + "uri": "v09044470000brhqgo77421tnp2pqbl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhqgo77421tnp2pqbl0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brhqgo77421tnp2pqbl0_h264_480p_757006", + "data_size": 1094537 + }, + "is_h265": 0 + } + ], + "duration": 11567, + "download_suffix_logo_addr": { + "uri": "v09044470000brhqgo77421tnp2pqbl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhqgo77421tnp2pqbl0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3437637 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044470000brhqgo77421tnp2pqbl0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhqgo77421tnp2pqbl0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3505086}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837494890021145862.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837494890021145862", + "user_digged": 0, + "statistics": { + "aweme_id": "6837494890021145862", + "comment_count": 7889, + "digg_count": 500136, + "download_count": 72549, + "play_count": 10123119, + "share_count": 18327, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 8719 + }, + "status": { + "aweme_id": "6837494890021145862", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152280751B23F10C" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837494890021145862.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837494890021145862", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out مصطفى شعبان’s video! #TikTok > ", + "share_desc": "Check out مصطفى شعبان's video! #TikTok", + "share_title": "Check out مصطفى شعبان’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 11567, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6811149961830843000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "EG", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837494890021145862", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ar", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6834860998520868102", + "desc": "اتأخرت عليكو 🙏🏻 صاحبت صاحب شيطان 😈💔 #إلكساحه", + "create_time": 1591365088, + "author": { + "uid": "318859666812338176", + "short_id": "21613220164", + "nickname": "👑 ™{ إلكساحه }™ 👑", + "signature": "ڝــڷــﯡ ؏ــڶــېْ مــن ڪــٰا̍ن ּوجه\n ּڪــٰا̍ڵــڦــمــرﷺ🌙\nIbrahem_magdi11♥️أنستا", + "avatar_thumb": { + "uri": "musically-maliva-obj/1636565033068550", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1636565033068550~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1636565033068550", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1636565033068550~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "ibrahem_magdy", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "EG", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152280751B23F10C" + ], + "width": 720, + "height": 720 + } + ], + "language": "ar", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1636565033068550", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1636565033068550~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1636565033068550", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1636565033068550~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAPG5yGVSaJ9qGc6ELo3jHfMISfc4FnYZ7vTblL5vzmlvA6TgPZ8gC627idln76pqo", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6828997304985390000, + "id_str": "6828997304985389829", + "title": "مهرجان العجلة بدات تدور", + "author": "🔥DAWLY🔥", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/45234bfca039e0600417771cf74d0b3c", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/45234bfca039e0600417771cf74d0b3c~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/45234bfca039e0600417771cf74d0b3c", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/45234bfca039e0600417771cf74d0b3c~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/45234bfca039e0600417771cf74d0b3c", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/45234bfca039e0600417771cf74d0b3c~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/45234bfca039e0600417771cf74d0b3c", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/45234bfca039e0600417771cf74d0b3c~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/5254bcbe08dcf24c331e73f989969d9b.mp3", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/5254bcbe08dcf24c331e73f989969d9b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 37, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6644198944773783558", + "owner_nickname": "🔥DAWLY🔥", + "is_original": false, + "mid": "6828997304985389829", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "alaadawly", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAuYjtljy7UtqFoUFNfsUtLO80Bvu4SzukL8yBxS71kn7P8sRc_sDN3bonZJhgBXW5", + "avatar_thumb": { + "uri": "musically-maliva-obj/45234bfca039e0600417771cf74d0b3c", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/45234bfca039e0600417771cf74d0b3c~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/45234bfca039e0600417771cf74d0b3c", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/45234bfca039e0600417771cf74d0b3c~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/45234bfca039e0600417771cf74d0b3c", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/45234bfca039e0600417771cf74d0b3c~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1660786143197189", + "cha_name": "إلكساحه", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1660786143197189", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1660786143197189.html?name=%D8%A5%D9%84%D9%83%D8%B3%D8%A7%D8%AD%D9%87&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1660786143197189", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #إلكساحه Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #إلكساحه Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: إلكساحه", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044490000brd4q7rt7nqu9qfq84d0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brd4q7rt7nqu9qfq84d0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brd4q7rt7nqu9qfq84d0_h264_540p_1871510", + "data_size": 5768698 + }, + "cover": { + "uri": "tos-maliva-p-0068/ea488a01f6c74fdea1a85fe32415c6a2", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ea488a01f6c74fdea1a85fe32415c6a2~noop.webp?x-expires=1592658000&x-signature=eeAelQJK2Y75JxiYdDecLr9k4NE%3D&l=202006181309480101152280751B23F10C" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/f01b02e401ea4f6499e75c71ee90d72c_1591365091", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/f01b02e401ea4f6499e75c71ee90d72c_1591365091?x-expires=1592658000&x-signature=%2Fm7THj5ENIQg9p%2Fa3S9qzO%2BDlE4%3D&l=202006181309480101152280751B23F10C" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/1ff015330591454482a43a3910ed7993_1591365089", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/1ff015330591454482a43a3910ed7993_1591365089~noop.image?x-expires=1592658000&x-signature=b5GGx%2BXpfQ1%2F7cveH6buq1EOKco%3D&l=202006181309480101152280751B23F10C" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044490000brd4q7rt7nqu9qfq84d0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brd4q7rt7nqu9qfq84d0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5851890 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1027802, + "play_addr": { + "uri": "v09044490000brd4q7rt7nqu9qfq84d0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brd4q7rt7nqu9qfq84d0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brd4q7rt7nqu9qfq84d0_h264_540p_1027802", + "data_size": 3168072 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 735537, + "play_addr": { + "uri": "v09044490000brd4q7rt7nqu9qfq84d0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brd4q7rt7nqu9qfq84d0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brd4q7rt7nqu9qfq84d0_h264_540p_735537", + "data_size": 2267203 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 613952, + "play_addr": { + "uri": "v09044490000brd4q7rt7nqu9qfq84d0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brd4q7rt7nqu9qfq84d0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brd4q7rt7nqu9qfq84d0_h264_480p_613952", + "data_size": 1892433 + }, + "is_h265": 0 + } + ], + "duration": 24659, + "download_suffix_logo_addr": { + "uri": "v09044490000brd4q7rt7nqu9qfq84d0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brd4q7rt7nqu9qfq84d0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5921792 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507414, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044490000brd4q7rt7nqu9qfq84d0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brd4q7rt7nqu9qfq84d0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":6016707}}\n" + }, + "share_url": "https://m.tiktok.com/v/6834860998520868102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834860998520868102", + "user_digged": 0, + "statistics": { + "aweme_id": "6834860998520868102", + "comment_count": 4078, + "digg_count": 478291, + "download_count": 67547, + "play_count": 6030880, + "share_count": 11002, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2376 + }, + "status": { + "aweme_id": "6834860998520868102", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 40, + "end": 48, + "type": 1, + "hashtag_name": "إلكساحه", + "hashtag_id": "1660786143197189", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152280751B23F10C" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834860998520868102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834860998520868102", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 👑 ™{ إلكساحه }™ 👑’s video! #TikTok > ", + "share_desc": "Check out 👑 ™{ إلكساحه }™ 👑's video! #TikTok", + "share_title": "Check out 👑 ™{ إلكساحه }™ 👑’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 24659, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":318859666812338176,\"author_country\":\"Egypt\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 318859666812338200, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "EG", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6834860998520868102", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ar", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101152280751B23F10C" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ar/assets/i18#lang_ar/il.json b/config.ar/assets/i18#lang_ar/il.json new file mode 100644 index 0000000..16b0ead --- /dev/null +++ b/config.ar/assets/i18#lang_ar/il.json @@ -0,0 +1,992 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838641868197137670", + "desc": "", + "create_time": 1592245390, + "author": { + "uid": "6717594545632887813", + "short_id": "44633760608", + "nickname": "𝕓𝕝𝕒𝕔𝕜 𝕣𝕠𝕤𝕖", + "signature": "Algeria 🇩🇿\nJijel☹️😇\nInsta:r_a_n_o_u_m_11 😉😜\nMy dream:Idnk😂😂", + "avatar_thumb": { + "uri": "musically-maliva-obj/88f31eb451f9ab642518d56020e6aa5f", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/88f31eb451f9ab642518d56020e6aa5f~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/88f31eb451f9ab642518d56020e6aa5f", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/88f31eb451f9ab642518d56020e6aa5f~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "ranoum11", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "DZ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094801011500406406244DEA" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/88f31eb451f9ab642518d56020e6aa5f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/88f31eb451f9ab642518d56020e6aa5f~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/88f31eb451f9ab642518d56020e6aa5f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/88f31eb451f9ab642518d56020e6aa5f~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA7i8B7UMuxCBs1C3aSEtiUuHINfLC1u3SW3njdJX9sk4CzrIaH37z9afkyOHtxQhn", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6834946392406937000, + "id_str": "6834946392406936325", + "title": "original sound - lillycrea", + "author": "Lilly Crea", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/494af5f0d3899e69bb749f27f036b156", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/494af5f0d3899e69bb749f27f036b156~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/494af5f0d3899e69bb749f27f036b156", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/494af5f0d3899e69bb749f27f036b156~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/494af5f0d3899e69bb749f27f036b156", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/494af5f0d3899e69bb749f27f036b156~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/494af5f0d3899e69bb749f27f036b156", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/494af5f0d3899e69bb749f27f036b156~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6834946329815386886.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6834946329815386886.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 22, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6787909383487554565", + "owner_nickname": "Lilly Crea", + "is_original": false, + "mid": "6834946392406936325", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "lillycrea", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAASpKxT34uSMLxDlvD6qWyLr7GRFulMH2wcwuSOPR6xNRJVJJQ3ORku6fT9MrQnc9P", + "avatar_thumb": { + "uri": "musically-maliva-obj/494af5f0d3899e69bb749f27f036b156", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/494af5f0d3899e69bb749f27f036b156~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/494af5f0d3899e69bb749f27f036b156", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/494af5f0d3899e69bb749f27f036b156~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/494af5f0d3899e69bb749f27f036b156", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/494af5f0d3899e69bb749f27f036b156~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044100000brjronsqq9haru9765n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjronsqq9haru9765n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjronsqq9haru9765n0_h264_540p_1494000", + "data_size": 1886363 + }, + "cover": { + "uri": "tos-maliva-p-0068/73fbf9f247f844b7a51c60c0f03a0b92", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/73fbf9f247f844b7a51c60c0f03a0b92~noop.webp?x-expires=1592658000&x-signature=l7p8PYwInON9Vk8fn7l2kG2v6%2FY%3D&l=2020061813094801011500406406244DEA" + ], + "width": 720, + "height": 720 + }, + "height": 1088, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/c4f8d08ec8cf4b9ba2f36b06a7c75369_1592245392", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/c4f8d08ec8cf4b9ba2f36b06a7c75369_1592245392?x-expires=1592658000&x-signature=UAyWGIWnln9nX%2FoBe1814vhUJvA%3D&l=2020061813094801011500406406244DEA" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/31d831d82e4b4f509e244248cafa7b71_1592245392", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/31d831d82e4b4f509e244248cafa7b71_1592245392~noop.image?x-expires=1592658000&x-signature=dc5aCt6ZvN7NLyFcxpnt%2B0FhL7g%3D&l=2020061813094801011500406406244DEA" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044100000brjronsqq9haru9765n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjronsqq9haru9765n0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1981664 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1494000, + "play_addr": { + "uri": "v09044100000brjronsqq9haru9765n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjronsqq9haru9765n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjronsqq9haru9765n0_h264_540p_1494000", + "data_size": 1886363 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 955241, + "play_addr": { + "uri": "v09044100000brjronsqq9haru9765n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjronsqq9haru9765n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjronsqq9haru9765n0_h264_540p_955241", + "data_size": 1206112 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 724359, + "play_addr": { + "uri": "v09044100000brjronsqq9haru9765n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjronsqq9haru9765n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjronsqq9haru9765n0_h264_540p_724359", + "data_size": 914595 + }, + "is_h265": 0 + } + ], + "duration": 10101, + "download_suffix_logo_addr": { + "uri": "v09044100000brjronsqq9haru9765n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjronsqq9haru9765n0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2048655 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044100000brjronsqq9haru9765n0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjronsqq9haru9765n0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2100644}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838641868197137670.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838641868197137670", + "user_digged": 0, + "statistics": { + "aweme_id": "6838641868197137670", + "comment_count": 1922, + "digg_count": 299639, + "download_count": 29709, + "play_count": 9983696, + "share_count": 87358, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2271 + }, + "status": { + "aweme_id": "6838641868197137670", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094801011500406406244DEA" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838641868197137670.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838641868197137670", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 𝕓𝕝𝕒𝕔𝕜 𝕣𝕠𝕤𝕖’s video! #TikTok > ", + "share_desc": "Check out 𝕓𝕝𝕒𝕔𝕜 𝕣𝕠𝕤𝕖's video! #TikTok", + "share_title": "Check out 𝕓𝕝𝕒𝕔𝕜 𝕣𝕠𝕤𝕖’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10101, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6717594545632888000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "DZ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838641868197137670", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094801011500406406244DEA" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=2020061813094801011500406406244DEA" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=2020061813094801011500406406244DEA" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=2020061813094801011500406406244DEA" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575904, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094801011500406406244DEA" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309365\",\"mv_info\":{\"id\":\"309365\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813094801011500406406244DEA" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ar/assets/i18#lang_ar/iq.json b/config.ar/assets/i18#lang_ar/iq.json new file mode 100644 index 0000000..ab1e07e --- /dev/null +++ b/config.ar/assets/i18#lang_ar/iq.json @@ -0,0 +1,1004 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838551651196898566", + "desc": "شنو نوع السياره التحبهه me all🍒@lyk309 @bred_official", + "create_time": 1592224386, + "author": { + "uid": "6838522739365233669", + "short_id": "49784542840", + "nickname": "tortal", + "signature": "", + "avatar_thumb": { + "uri": "musically-maliva-obj/3aa52c36a1f765dfd057a2a15fdef74a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/3aa52c36a1f765dfd057a2a15fdef74a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/3aa52c36a1f765dfd057a2a15fdef74a", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/3aa52c36a1f765dfd057a2a15fdef74a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "ha_w._.3", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IQ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150770330C23DC3F" + ], + "width": 720, + "height": 720 + } + ], + "language": "ar", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/3aa52c36a1f765dfd057a2a15fdef74a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/3aa52c36a1f765dfd057a2a15fdef74a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/3aa52c36a1f765dfd057a2a15fdef74a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/3aa52c36a1f765dfd057a2a15fdef74a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAhMqSvOD9QZoGKPIRAEnxS3ZefW5qw_y0Xvy5M0HIUC9G1nxdWVlaIzMWJ36rG9ls", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6812288668376534000, + "id_str": "6812288668376533765", + "title": "original sound - king_songg", + "author": "king_songg", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1665503699986438", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665503699986438~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1665503699986438", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665503699986438~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1665503699986438", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665503699986438~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1665503699986438", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665503699986438~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663157403074581.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663157403074581.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6700196765993714694", + "owner_nickname": "king_songg", + "is_original": false, + "mid": "6812288668376533765", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "king_songg", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAA7DJQ2p-7VwXU2b0txhcg1rS8QMGkZUPi73LYYChvR0o1RkqcamwAE82-koZGghnS", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665503699986438", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665503699986438~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665503699986438", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665503699986438~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1665503699986438", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665503699986438~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044100000brjmkgrkh7bq180b7q80", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjmkgrkh7bq180b7q80&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjmkgrkh7bq180b7q80_h264_540p_1928393", + "data_size": 2619481 + }, + "cover": { + "uri": "tos-maliva-p-0068/28e89449323746c9a279621ee9e17c3a", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/28e89449323746c9a279621ee9e17c3a~noop.webp?x-expires=1592658000&x-signature=CgUdopCOOvAaYiyXoZ%2FX%2BNvlwb0%3D&l=202006181309480101150770330C23DC3F" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 544, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/71ba4cb9118b48bd9e2ec09bd8927fbf_1592224387", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/71ba4cb9118b48bd9e2ec09bd8927fbf_1592224387?x-expires=1592658000&x-signature=MBnpqg6SKuisAVVI5SDljNmxEak%3D&l=202006181309480101150770330C23DC3F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/4e75733b78694e6897909982ad919139_1592224387", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/4e75733b78694e6897909982ad919139_1592224387~noop.image?x-expires=1592658000&x-signature=uJPQubYnuMyLaL0usQlwHTr0R%2FY%3D&l=202006181309480101150770330C23DC3F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044100000brjmkgrkh7bq180b7q80", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjmkgrkh7bq180b7q80&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2688462 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1123252, + "play_addr": { + "uri": "v09044100000brjmkgrkh7bq180b7q80", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjmkgrkh7bq180b7q80&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjmkgrkh7bq180b7q80_h264_540p_1123252", + "data_size": 1525798 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 805148, + "play_addr": { + "uri": "v09044100000brjmkgrkh7bq180b7q80", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjmkgrkh7bq180b7q80&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjmkgrkh7bq180b7q80_h264_540p_805148", + "data_size": 1093693 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 645030, + "play_addr": { + "uri": "v09044100000brjmkgrkh7bq180b7q80", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjmkgrkh7bq180b7q80&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjmkgrkh7bq180b7q80_h264_480p_645030", + "data_size": 876193 + }, + "is_h265": 0 + } + ], + "duration": 10867, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044100000brjmkgrkh7bq180b7q80\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjmkgrkh7bq180b7q80&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2741986}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838551651196898566.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838551651196898566", + "user_digged": 0, + "statistics": { + "aweme_id": "6838551651196898566", + "comment_count": 2606, + "digg_count": 212774, + "download_count": 35867, + "play_count": 6175230, + "share_count": 7061, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1436 + }, + "status": { + "aweme_id": "6838551651196898566", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 32, + "end": 39, + "user_id": "6712640573306766342", + "type": 0, + "sec_uid": "MS4wLjABAAAAhWTKRoL6-wwNUgO_mQV15H8lFR7FfBFLm7o-iA02_l-IUBKF4ZZAyfxq3gEShQ6b" + }, + { + "start": 40, + "end": 54, + "user_id": "6723639488327123974", + "type": 0, + "sec_uid": "MS4wLjABAAAAWa_Hh6uvcWYO-m9oS6VXBqBfw6BwUu0JlO7Jyld0ogjpGoZunyNXkbTLrPl9bAIE" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150770330C23DC3F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838551651196898566.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838551651196898566", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out tortal’s video! #TikTok > ", + "share_desc": "Check out tortal's video! #TikTok", + "share_title": "Check out tortal’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10867, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6838522739365234000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IQ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838551651196898566", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ar", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6808510085724114182", + "desc": "Prsiare :) ! Estash ba azarakanatawa xosht awee ! 🙂 #kurd #fyp", + "create_time": 1585229788, + "author": { + "uid": "6536260427192472591", + "short_id": "21785834472", + "nickname": "×××××××××××××", + "signature": "× We Don’t NeEd Die YoUnG ×\n× We NeEd ChaNceS ×\n—\n××18××", + "avatar_thumb": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657983561211910~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657983561211910~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "typing._0", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IQ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150770330C23DC3F" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657983561211910~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657983561211910~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAIjNS6OiReGB8G0TiuA213QHGrz5N17sFq8i3FAxRVYuHmQBn0dNcOvqTAo-kdxcz", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6808500830644276000, + "id_str": "6808500830644275974", + "title": "original sound - typing._0", + "author": "×××××××××××××", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1657983561211910~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1657983561211910~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657983561211910~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657983561211910~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1662232208975893.mp3", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1662232208975893.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 36, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6536260427192472591", + "owner_nickname": "×××××××××××××", + "is_original": false, + "mid": "6808500830644275974", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "typing._0", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAIjNS6OiReGB8G0TiuA213QHGrz5N17sFq8i3FAxRVYuHmQBn0dNcOvqTAo-kdxcz", + "avatar_thumb": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657983561211910~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657983561211910~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1657983561211910", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1657983561211910~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "175323", + "cha_name": "kurd", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=175323", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/175323.html?name=kurd&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=175323", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #kurd Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #kurd Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: kurd", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090446f0000bpuavc0biap5mrhr3bn0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090446f0000bpuavc0biap5mrhr3bn0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090446f0000bpuavc0biap5mrhr3bn0_h264_540p_672729", + "data_size": 3111375 + }, + "cover": { + "uri": "tos-maliva-p-0068/7c36beea34b84b0baf1c39a7c99855f5_1585229792", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/7c36beea34b84b0baf1c39a7c99855f5_1585229792~noop.webp?x-expires=1592658000&x-signature=5oZtAZ8t5NiWWXzT2RJaeD0khfQ%3D&l=202006181309480101150770330C23DC3F" + ], + "width": 720, + "height": 720 + }, + "height": 540, + "width": 960, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/8f22561f8b9c46139cfecb2a9888a9e2_1585229792", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/8f22561f8b9c46139cfecb2a9888a9e2_1585229792?x-expires=1592658000&x-signature=FZzufEw1dOLTlujBDkW9I5XAPEg%3D&l=202006181309480101150770330C23DC3F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/8b372ddcf7254faa9652e9a4978139b6_1585229792", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8b372ddcf7254faa9652e9a4978139b6_1585229792~noop.image?x-expires=1592658000&x-signature=T9DtyEmxOv3Ga745g2mKGak9y1k%3D&l=202006181309480101150770330C23DC3F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090446f0000bpuavc0biap5mrhr3bn0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090446f0000bpuavc0biap5mrhr3bn0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2613308 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 435091, + "play_addr": { + "uri": "v090446f0000bpuavc0biap5mrhr3bn0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090446f0000bpuavc0biap5mrhr3bn0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090446f0000bpuavc0biap5mrhr3bn0_h264_540p_435091", + "data_size": 2012300 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 330366, + "play_addr": { + "uri": "v090446f0000bpuavc0biap5mrhr3bn0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090446f0000bpuavc0biap5mrhr3bn0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090446f0000bpuavc0biap5mrhr3bn0_h264_540p_330366", + "data_size": 1527946 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 277894, + "play_addr": { + "uri": "v090446f0000bpuavc0biap5mrhr3bn0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090446f0000bpuavc0biap5mrhr3bn0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090446f0000bpuavc0biap5mrhr3bn0_h264_480p_277894", + "data_size": 1285263 + }, + "is_h265": 0 + } + ], + "duration": 37000, + "download_suffix_logo_addr": { + "uri": "v090446f0000bpuavc0biap5mrhr3bn0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090446f0000bpuavc0biap5mrhr3bn0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2655222 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507426, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090446f0000bpuavc0biap5mrhr3bn0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090446f0000bpuavc0biap5mrhr3bn0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4024398}}\n" + }, + "share_url": "https://m.tiktok.com/v/6808510085724114182.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6808510085724114182", + "user_digged": 0, + "statistics": { + "aweme_id": "6808510085724114182", + "comment_count": 170, + "digg_count": 9922, + "download_count": 6514, + "play_count": 107137, + "share_count": 3461, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 32 + }, + "status": { + "aweme_id": "6808510085724114182", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 53, + "end": 58, + "type": 1, + "hashtag_name": "kurd", + "hashtag_id": "175323", + "is_commerce": false + }, + { + "start": 59, + "end": 63, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150770330C23DC3F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6808510085724114182.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6808510085724114182", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ×××××××××××××’s video! #TikTok > ", + "share_desc": "Check out ×××××××××××××'s video! #TikTok", + "share_title": "Check out ×××××××××××××’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 37000, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6536260427192472591,\"author_country\":\"Iraq\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6536260427192473000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IQ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6808510085724114182", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101150770330C23DC3F" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ar/assets/i18#lang_ar/jo.json b/config.ar/assets/i18#lang_ar/jo.json new file mode 100644 index 0000000..ee40b78 --- /dev/null +++ b/config.ar/assets/i18#lang_ar/jo.json @@ -0,0 +1,1073 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838298440720583941", + "desc": "#🍩مغروره🍭بكيفى🍫 وصالونى 250k", + "create_time": 1592165430, + "author": { + "uid": "6725881746199888901", + "short_id": "46162185736", + "nickname": "누르 ❤", + "signature": "نوصل 200kامتى", + "avatar_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "noormosta2", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "EG", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/63812c4ea2623dae9bcbd92677768a78", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/63812c4ea2623dae9bcbd92677768a78" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151510970C237B69" + ], + "width": 720, + "height": 720 + } + ], + "language": "ar", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAeiwgLLuCtR1uYpm9YzmKxsVmoW3mdn7WCB_eKjuaXg7bpciP9KpOGQSTqvmiPNKk", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6836501938520067000, + "id_str": "6836501938520066821", + "title": "original sound - noormosta2", + "author": "누르 ❤", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6836501913979161350.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6836501913979161350.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 20, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6725881746199888901", + "owner_nickname": "누르 ❤", + "is_original": false, + "mid": "6836501938520066821", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "noormosta2", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAeiwgLLuCtR1uYpm9YzmKxsVmoW3mdn7WCB_eKjuaXg7bpciP9KpOGQSTqvmiPNKk", + "avatar_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1666810775573509", + "cha_name": "🍩مغروره🍭بكيفى🍫", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1666810775573509", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1666810775573509.html?name=%F0%9F%8D%A9%D9%85%D8%BA%D8%B1%D9%88%D8%B1%D9%87%F0%9F%8D%AD%D8%A8%D9%83%D9%8A%D9%81%D9%89%F0%9F%8D%AB&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1666810775573509", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🍩مغروره🍭بكيفى🍫 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🍩مغروره🍭بكيفى🍫 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🍩مغروره🍭بكيفى🍫", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_1279133", + "data_size": 2417082 + }, + "cover": { + "uri": "tos-maliva-p-0068/dec8c1a5f0bd4d9d8a0cfc4fbde5bf82", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/dec8c1a5f0bd4d9d8a0cfc4fbde5bf82~noop.webp?x-expires=1592658000&x-signature=QwrHMlOg7yJoZCtLWE1wpU4MXoQ%3D&l=202006181309480101151510970C237B69" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 544, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/70ddfbdf545f4ab5907c51bc1eb66e72_1592165431", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/70ddfbdf545f4ab5907c51bc1eb66e72_1592165431?x-expires=1592658000&x-signature=D4MSuGTx%2FkjhbQoM1E9h4yG4gfE%3D&l=202006181309480101151510970C237B69" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/3351ac8ba3bb4e05a5c97c3f8688fe2f_1592165432", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/3351ac8ba3bb4e05a5c97c3f8688fe2f_1592165432~noop.image?x-expires=1592658000&x-signature=3e3EiyzPJDaeRJRWbhoYNSjhFnI%3D&l=202006181309480101151510970C237B69" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2545243 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1279133, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_1279133", + "data_size": 2417082 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 764315, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_764315", + "data_size": 1444270 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 554336, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_554336", + "data_size": 1047488 + }, + "is_h265": 0 + } + ], + "duration": 15117, + "download_suffix_logo_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2611835 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044470000brj87rm0bkblhk383se0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2719486}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838298440720583941.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838298440720583941", + "user_digged": 0, + "statistics": { + "aweme_id": "6838298440720583941", + "comment_count": 4639, + "digg_count": 508902, + "download_count": 73131, + "play_count": 11315762, + "share_count": 314414, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6394 + }, + "status": { + "aweme_id": "6838298440720583941", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🍩مغروره🍭بكيفى🍫", + "hashtag_id": "1666810775573509", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151510970C237B69" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838298440720583941.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838298440720583941", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 누르 ❤’s video! #TikTok > ", + "share_desc": "Check out 누르 ❤'s video! #TikTok", + "share_title": "Check out 누르 ❤’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15117, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6725881746199889000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "EG", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838298440720583941", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ar", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6812097963884580102", + "desc": "my best dressup with joker head💓💘 comment your best dressup😘🌹 #foryou😚 #keepsupporting🙏 #FreefireNepal😘🌹", + "create_time": 1586065156, + "author": { + "uid": "6776547527023084545", + "short_id": "33765279057", + "nickname": "❤Chimsey❤🔥", + "signature": "SaNdEep Gurung😊\nFrom:-Lamjung❤\n FreefireNamE:-꧁࿐丂สиd¡թꔪᴰᵍ\nLvL=71😊\nPeaCe😪🌹", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "sandeep_official10", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "NP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151510970C237B69" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAAW5JaQhopEyulQUMSwL3u3VTPw3QBw0q7oDonr6AqfNdajOi98iFLLm_k_54ExZI", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6791463192963878000, + "id_str": "6791463192963877637", + "title": "original sound - poozachetry4", + "author": "Raj----puja♥️♥️", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658080562814982.mp3", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658080562814982.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6650365703969701894", + "owner_nickname": "Raj----puja♥️♥️", + "is_original": false, + "mid": "6791463192963877637", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "poozachetry4", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658479508983810", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658479508983810" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhGpxSePlZBwp4bv7wOCkUPLRXu4YoD3Vh5mVkapkiCUG1a199XdUKtWlebRXypze", + "avatar_thumb": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1614592377069573", + "cha_name": "foryou😚", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1614592377069573", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1614592377069573.html?name=foryou%F0%9F%98%9A&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1614592377069573", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou😚 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou😚 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou😚", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_867816", + "data_size": 1108310 + }, + "cover": { + "uri": "tos-maliva-p-0068/368091d581ef4885ad80c7a53fdf65ca_1586065161", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/368091d581ef4885ad80c7a53fdf65ca_1586065161~noop.webp?x-expires=1592658000&x-signature=sANlKuyDyicRw61mMPQJ8ZKhKbE%3D&l=202006181309480101151510970C237B69" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/100c6728d8534b23814228d628ffcdbb_1586065161", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/100c6728d8534b23814228d628ffcdbb_1586065161?x-expires=1592658000&x-signature=4tr1nksQbR9tL639taKC0HG3aFo%3D&l=202006181309480101151510970C237B69" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/758b6771bda64915bb13576ffaa92f30_1586065161", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/758b6771bda64915bb13576ffaa92f30_1586065161~noop.image?x-expires=1592658000&x-signature=8RBWsxuPCXbtfylijGbh8C4tljs%3D&l=202006181309480101151510970C237B69" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 757755 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 867816, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_867816", + "data_size": 1108310 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 428226, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_428226", + "data_size": 546899 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 292366, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_292366", + "data_size": 373389 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 803284 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399 + }, + "share_url": "https://m.tiktok.com/v/6812097963884580102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812097963884580102", + "user_digged": 0, + "statistics": { + "aweme_id": "6812097963884580102", + "comment_count": 77, + "digg_count": 12896, + "download_count": 969, + "play_count": 192774, + "share_count": 207, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 24 + }, + "status": { + "aweme_id": "6812097963884580102", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 67, + "end": 76, + "type": 1, + "hashtag_name": "foryou😚", + "hashtag_id": "1614592377069573", + "is_commerce": false + }, + { + "start": 77, + "end": 94, + "type": 1, + "hashtag_name": "keepsupporting🙏", + "hashtag_id": "1616815176991749", + "is_commerce": false + }, + { + "start": 95, + "end": 113, + "type": 1, + "hashtag_name": "freefirenepal😘🌹", + "hashtag_id": "1663109709893638", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151510970C237B69" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6812097963884580102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812097963884580102", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ❤Chimsey❤🔥’s video! #TikTok > ", + "share_desc": "Check out ❤Chimsey❤🔥's video! #TikTok", + "share_title": "Check out ❤Chimsey❤🔥’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6776547527023084545,\"author_country\":\"Nepal\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6776547527023085000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "NP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6812097963884580102", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309393\",\"mv_info\":{\"id\":\"309393\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101151510970C237B69" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ar/assets/i18#lang_ar/ly.json b/config.ar/assets/i18#lang_ar/ly.json new file mode 100644 index 0000000..5e4c387 --- /dev/null +++ b/config.ar/assets/i18#lang_ar/ly.json @@ -0,0 +1,941 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6833387029674413318", + "desc": "لما حوش جيرانك يدير عرس😂حتي هما يبو يشوفو 😂استاحشنه العراس🥺#ليبيا #القربولي تابعو يومياتي انستا mx_mh_96", + "create_time": 1591021903, + "author": { + "uid": "6660022655301353478", + "short_id": "36461139456", + "nickname": "_الخال_", + "signature": "ممثل مبتدئ+راكب خيل+شاعر مبتدئ\nالفيس:محمد ولد الجدابي \nالانستا:mx_mh_96", + "avatar_thumb": { + "uri": "musically-maliva-obj/361622a17e12d600d9292aa016506761", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/361622a17e12d600d9292aa016506761~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/361622a17e12d600d9292aa016506761", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/361622a17e12d600d9292aa016506761~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mo_mh0096", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "LY", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309540101150040700423DCDE" + ], + "width": 720, + "height": 720 + } + ], + "language": "ar", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/361622a17e12d600d9292aa016506761", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/361622a17e12d600d9292aa016506761~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/361622a17e12d600d9292aa016506761", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/361622a17e12d600d9292aa016506761~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAALbj08jXjy0FgWbZxXvIjT2L3rWA1uQl4eORjpVu3KdTqTYeyaPuwovP67jNI_baq", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6801103612014546000, + "id_str": "6801103612014545669", + "title": "original sound - userpd1s1c9l14", + "author": "Ali Abo Rass", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1664070714795014", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664070714795014~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1664070714795014", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664070714795014~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1664070714795014", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664070714795014~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1664070714795014", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1664070714795014~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1660430390040582.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1660430390040582.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6685224032943522822", + "owner_nickname": "Ali Abo Rass", + "is_original": false, + "mid": "6801103612014545669", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "userpd1s1c9l14", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAWFbUVVhfNonPpd6CoqvqhZuFB2XrsI3jTwiR_kG1XzMxyaGOWMk--6DrE-Ue30UC", + "avatar_thumb": { + "uri": "musically-maliva-obj/1664070714795014", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1664070714795014~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1664070714795014", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664070714795014~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1664070714795014", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664070714795014~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "8312704", + "cha_name": "ليبيا", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=8312704", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/8312704.html?name=%D9%84%D9%8A%D8%A8%D9%8A%D8%A7&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=8312704", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #ليبيا Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #ليبيا Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: ليبيا", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044ac0000brah0ev4gdtjhfhou7cg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brah0ev4gdtjhfhou7cg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brah0ev4gdtjhfhou7cg_h264_540p_1365881", + "data_size": 2584931 + }, + "cover": { + "uri": "tos-maliva-p-0068/37044cc14d494b2598777aaad378ba05", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/37044cc14d494b2598777aaad378ba05~noop.webp?x-expires=1592658000&x-signature=VqQBp4x2JGDEbTXJ%2BsTJFvdC4kg%3D&l=202006181309540101150040700423DCDE" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/b1e228262d5d4d51a2d7c47a20a25c2a_1591021905", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/b1e228262d5d4d51a2d7c47a20a25c2a_1591021905?x-expires=1592658000&x-signature=ErI%2B28B2BUuIojMxouXJwqQhWcQ%3D&l=202006181309540101150040700423DCDE" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/fc34a28abd2247a4a29bb51a54e7c205_1591021906", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fc34a28abd2247a4a29bb51a54e7c205_1591021906~noop.image?x-expires=1592658000&x-signature=dT%2BuBB6qCelZxdgLYEBWYpyKnwQ%3D&l=202006181309540101150040700423DCDE" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044ac0000brah0ev4gdtjhfhou7cg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brah0ev4gdtjhfhou7cg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2664584 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 789189, + "play_addr": { + "uri": "v09044ac0000brah0ev4gdtjhfhou7cg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brah0ev4gdtjhfhou7cg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brah0ev4gdtjhfhou7cg_h264_540p_789189", + "data_size": 1493542 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 575613, + "play_addr": { + "uri": "v09044ac0000brah0ev4gdtjhfhou7cg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brah0ev4gdtjhfhou7cg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brah0ev4gdtjhfhou7cg_h264_540p_575613", + "data_size": 1089348 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 431234, + "play_addr": { + "uri": "v09044ac0000brah0ev4gdtjhfhou7cg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brah0ev4gdtjhfhou7cg&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brah0ev4gdtjhfhou7cg_h264_480p_431234", + "data_size": 816111 + }, + "is_h265": 0 + } + ], + "duration": 15140, + "download_suffix_logo_addr": { + "uri": "v09044ac0000brah0ev4gdtjhfhou7cg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brah0ev4gdtjhfhou7cg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2736046 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507411, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044ac0000brah0ev4gdtjhfhou7cg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brah0ev4gdtjhfhou7cg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2805287}}\n" + }, + "share_url": "https://m.tiktok.com/v/6833387029674413318.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833387029674413318", + "user_digged": 0, + "statistics": { + "aweme_id": "6833387029674413318", + "comment_count": 1052, + "digg_count": 23542, + "download_count": 13626, + "play_count": 628660, + "share_count": 1577, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 271 + }, + "status": { + "aweme_id": "6833387029674413318", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 62, + "end": 68, + "type": 1, + "hashtag_name": "ليبيا", + "hashtag_id": "8312704", + "is_commerce": false + }, + { + "start": 69, + "end": 78, + "type": 1, + "hashtag_name": "القربولي", + "hashtag_id": "1640180876711942", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309540101150040700423DCDE" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6833387029674413318.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833387029674413318", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out _الخال_’s video! #TikTok > ", + "share_desc": "Check out _الخال_'s video! #TikTok", + "share_title": "Check out _الخال_’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15140, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6660022655301353000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "LY", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6833387029674413318", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ar", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6815950337984318725", + "desc": "", + "create_time": 1586962105, + "author": { + "uid": "6724170213456184326", + "short_id": "44630942064", + "nickname": "bigo", + "signature": "", + "avatar_thumb": { + "uri": "tiktok-obj/1652067445957633", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1652067445957633.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1652067445957633", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1652067445957633.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "bigchib", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 2, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "tiktok-obj/9f07c4f66ae11fb49deb1e84f3abcb69", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/9f07c4f66ae11fb49deb1e84f3abcb69" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309540101150040700423DCDE" + ], + "width": 720, + "height": 720 + } + ], + "language": "ja", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1652067445957633", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1652067445957633~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1652067445957633", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1652067445957633~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAY0x6oqgZxoRPQR2Xp1ldDpHVDwu7b32ygX7qnPDq5Nr-NlLKZUlrM0Sd1xwmaIUO", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6704434504037042000, + "id_str": "6704434504037042177", + "title": "Dancing With Your Ghost", + "author": "Sasha Sloan", + "album": "Dancing With Your Ghost", + "cover_hd": { + "uri": "tos-alisg-i-0000/16944b5872004b39a447effb90525f36", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/16944b5872004b39a447effb90525f36.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/16944b5872004b39a447effb90525f36", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/16944b5872004b39a447effb90525f36.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/16944b5872004b39a447effb90525f36", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/16944b5872004b39a447effb90525f36.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/16944b5872004b39a447effb90525f36", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/16944b5872004b39a447effb90525f36.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/7752900489ebb5267687b480da81a3d5.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/7752900489ebb5267687b480da81a3d5.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 30, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1640958475425796\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1640958494643214\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1640958475408398\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1640958494662660\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6704434504037042177", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/1638315017344007", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/1638315017344007" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 48, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044fd0000bqbhtca91d8gomaeuedg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fd0000bqbhtca91d8gomaeuedg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fd0000bqbhtca91d8gomaeuedg_h264_540p_289786", + "data_size": 468658 + }, + "cover": { + "uri": "tos-maliva-p-0068/41089c85ce9a4323bba24b6323561a08", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/41089c85ce9a4323bba24b6323561a08~noop.webp?x-expires=1592658000&x-signature=fsRErvFq8HLuOCkmLNziaWcJsB4%3D&l=202006181309540101150040700423DCDE" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/370ef82aa4994c4a8812adff7b1a4a99_1586962113", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/370ef82aa4994c4a8812adff7b1a4a99_1586962113?x-expires=1592658000&x-signature=OAt6Bli0ikKaO%2BihCFAl%2FF6W6lc%3D&l=202006181309540101150040700423DCDE" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/9bd20653d2ac45d689611dbe36acb3b1_1586962113", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/9bd20653d2ac45d689611dbe36acb3b1_1586962113~noop.image?x-expires=1592658000&x-signature=btL6NRYrkp0%2FOCod2vvxZgC60tA%3D&l=202006181309540101150040700423DCDE" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044fd0000bqbhtca91d8gomaeuedg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fd0000bqbhtca91d8gomaeuedg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 981875 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 289786, + "play_addr": { + "uri": "v09044fd0000bqbhtca91d8gomaeuedg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fd0000bqbhtca91d8gomaeuedg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fd0000bqbhtca91d8gomaeuedg_h264_540p_289786", + "data_size": 468658 + }, + "is_h265": 0 + } + ], + "duration": 12938, + "is_h265": 0, + "cdn_url_expired": 1592507408 + }, + "share_url": "https://m.tiktok.com/v/6815950337984318725.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6815950337984318725", + "user_digged": 0, + "statistics": { + "aweme_id": "6815950337984318725", + "comment_count": 0, + "digg_count": 1, + "download_count": 0, + "play_count": 33, + "share_count": 0, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 0 + }, + "status": { + "aweme_id": "6815950337984318725", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 0, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309540101150040700423DCDE" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6815950337984318725.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6815950337984318725", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out bigo’s video! #TikTok > ", + "share_desc": "Check out bigo's video! #TikTok", + "share_title": "Check out bigo’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12938, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6724170213456184326,\"author_country\":\"India\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6724170213456184000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6815950337984318725", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"693661\",\"mv_info\":{\"id\":\"693661\",\"name\":\"Water Reflection\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":1,\\\"template_min_material\\\":1,\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1280,\\\"template_pic_input_width\\\":720,\\\"template_video_cover\\\":\\\"89e5a910aa88102d1c83854944149638.mp4\\\",\\\"template_picture_cover\\\":\\\"b200f9f721cdf1d053b66a8a2644ee97\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": false, + "share_type": 0, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 2, + "allow_dynamic_wallpaper": false, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485796000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309540101150040700423DCDE" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ar/assets/i18#lang_ar/ma.json b/config.ar/assets/i18#lang_ar/ma.json new file mode 100644 index 0000000..d8cb4a0 --- /dev/null +++ b/config.ar/assets/i18#lang_ar/ma.json @@ -0,0 +1,1059 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6833385674972990726", + "desc": "Répondre à @oumaima.yassine #حركة_الاكسبلور ❤️❤️🥰", + "create_time": 1591021588, + "author": { + "uid": "6705354823330694149", + "short_id": "43905465960", + "nickname": "🇲🇦 MaNaL 🇲🇦", + "signature": "Bb’s ajoutez mon insta manalherrou 🥺❤️\nMrc pour 60K 🥵\nLvvyyy ❤️❤️😌", + "avatar_thumb": { + "uri": "musically-maliva-obj/b7d977f889207839e1088e0171b6bd32", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/b7d977f889207839e1088e0171b6bd32~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/b7d977f889207839e1088e0171b6bd32", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/b7d977f889207839e1088e0171b6bd32~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "manalherrou", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "MA", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + } + ], + "language": "fr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/b7d977f889207839e1088e0171b6bd32", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/b7d977f889207839e1088e0171b6bd32~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/b7d977f889207839e1088e0171b6bd32", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/b7d977f889207839e1088e0171b6bd32~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAw3wmuURQkIMJb1D6F1FWdn5F2vcNkQCJUCZBpPt7LEeQKhXTAyQR-RHho7QsKWo9", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6712899612438466000, + "id_str": "6712899612438465286", + "title": "Coño (feat. Jhorrmountain x Adje)", + "author": "Puri", + "album": "luluuu777", + "cover_hd": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/3e90ce8a08ab9118d3247c8934ec2897.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/3e90ce8a08ab9118d3247c8934ec2897.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078040742915\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078036779011\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078040718340\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078036739076\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6712899612438465286", + "binded_challenge_id": 1662232588115974, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1642284380423174", + "cha_name": "حركة_الاكسبلور", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1642284380423174", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1642284380423174.html?name=%D8%AD%D8%B1%D9%83%D8%A9_%D8%A7%D9%84%D8%A7%D9%83%D8%B3%D8%A8%D9%84%D9%88%D8%B1&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1642284380423174", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #حركة_الاكسبلور Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #حركة_الاكسبلور Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: حركة_الاكسبلور", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000bragvuq91d8lb53skirg_h264_540p_1608341", + "data_size": 3276795 + }, + "cover": { + "uri": "tos-maliva-p-0068/30f4551f0c3d492e9642de56c677241c", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/30f4551f0c3d492e9642de56c677241c~noop.webp?x-expires=1592658000&x-signature=7bU%2BE%2FuGQF36HLgurNOKuAGEtv4%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/f3430b04b6734a84ad04a1522642d99b_1591021590", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/f3430b04b6734a84ad04a1522642d99b_1591021590?x-expires=1592658000&x-signature=0O9tWfWM1DzbF%2FzD3oRcpF%2FDh8k%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/edf28868d0ea4447a01d466185e82f72_1591021590", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/edf28868d0ea4447a01d466185e82f72_1591021590~noop.image?x-expires=1592658000&x-signature=6TJHBebwFpL5YVLE8ToMfNQAcwI%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3376463 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 920970, + "play_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000bragvuq91d8lb53skirg_h264_540p_920970", + "data_size": 1876362 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 651419, + "play_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000bragvuq91d8lb53skirg_h264_540p_651419", + "data_size": 1327186 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 522116, + "play_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000bragvuq91d8lb53skirg_h264_480p_522116", + "data_size": 1063748 + }, + "is_h265": 0 + } + ], + "duration": 16299, + "download_suffix_logo_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3443116 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044ac0000bragvuq91d8lb53skirg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3539113}}\n" + }, + "share_url": "https://m.tiktok.com/v/6833385674972990726.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833385674972990726", + "user_digged": 0, + "statistics": { + "aweme_id": "6833385674972990726", + "comment_count": 1460, + "digg_count": 132758, + "download_count": 9862, + "play_count": 6511707, + "share_count": 463377, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2223 + }, + "status": { + "aweme_id": "6833385674972990726", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 11, + "end": 27, + "user_id": "6634463603201228805", + "type": 0, + "sec_uid": "MS4wLjABAAAAvjx4j0w-LwsBFBx1oUqcX4UEePf7HgRmZohLCnAw-WUyoN6dqR39AhnVqXlB-RKz" + }, + { + "start": 28, + "end": 43, + "type": 1, + "hashtag_name": "حركة_الاكسبلور", + "hashtag_id": "1642284380423174", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6833385674972990726.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833385674972990726", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 🇲🇦 MaNaL 🇲🇦’s video! #TikTok > ", + "share_desc": "Check out 🇲🇦 MaNaL 🇲🇦's video! #TikTok", + "share_title": "Check out 🇲🇦 MaNaL 🇲🇦’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 16299, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6705354823330694000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "MA", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6833385674972990726", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 3, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "fr", + "interaction_stickers": [ + { + "type": 4, + "index": 0, + "track_info": "[{\"x\":0.3223,\"end_time\":16250,\"p\":null,\"y\":0.1262,\"h\":0.1201,\"start_time\":0,\"r\":0,\"w\":0.5671,\"s\":1.0164}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6812097963884580102", + "desc": "my best dressup with joker head💓💘 comment your best dressup😘🌹 #foryou😚 #keepsupporting🙏 #FreefireNepal😘🌹", + "create_time": 1586065156, + "author": { + "uid": "6776547527023084545", + "short_id": "33765279057", + "nickname": "❤Chimsey❤🔥", + "signature": "SaNdEep Gurung😊\nFrom:-Lamjung❤\n FreefireNamE:-꧁࿐丂สиd¡թꔪᴰᵍ\nLvL=71😊\nPeaCe😪🌹", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "sandeep_official10", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "NP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAAW5JaQhopEyulQUMSwL3u3VTPw3QBw0q7oDonr6AqfNdajOi98iFLLm_k_54ExZI", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6791463192963878000, + "id_str": "6791463192963877637", + "title": "original sound - poozachetry4", + "author": "Raj----puja♥️♥️", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658080562814982.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658080562814982.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"has_edited\":0,\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6650365703969701894", + "owner_nickname": "Raj----puja♥️♥️", + "is_original": false, + "mid": "6791463192963877637", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "poozachetry4", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658479508983810", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658479508983810" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhGpxSePlZBwp4bv7wOCkUPLRXu4YoD3Vh5mVkapkiCUG1a199XdUKtWlebRXypze", + "avatar_thumb": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1614592377069573", + "cha_name": "foryou😚", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1614592377069573", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1614592377069573.html?name=foryou%F0%9F%98%9A&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1614592377069573", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou😚 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou😚 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou😚", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_867816", + "data_size": 1108310 + }, + "cover": { + "uri": "tos-maliva-p-0068/368091d581ef4885ad80c7a53fdf65ca_1586065161", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/368091d581ef4885ad80c7a53fdf65ca_1586065161~noop.webp?x-expires=1592658000&x-signature=sANlKuyDyicRw61mMPQJ8ZKhKbE%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/100c6728d8534b23814228d628ffcdbb_1586065161", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/100c6728d8534b23814228d628ffcdbb_1586065161?x-expires=1592658000&x-signature=4tr1nksQbR9tL639taKC0HG3aFo%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/758b6771bda64915bb13576ffaa92f30_1586065161", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/758b6771bda64915bb13576ffaa92f30_1586065161~noop.image?x-expires=1592658000&x-signature=8RBWsxuPCXbtfylijGbh8C4tljs%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 757755 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 428226, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_428226", + "data_size": 546899 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 292366, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_292366", + "data_size": 373389 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 235830, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_480p_235830", + "data_size": 301185 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 803284 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398 + }, + "share_url": "https://m.tiktok.com/v/6812097963884580102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812097963884580102", + "user_digged": 0, + "statistics": { + "aweme_id": "6812097963884580102", + "comment_count": 77, + "digg_count": 12896, + "download_count": 969, + "play_count": 192774, + "share_count": 207, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 24 + }, + "status": { + "aweme_id": "6812097963884580102", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 67, + "end": 76, + "type": 1, + "hashtag_name": "foryou😚", + "hashtag_id": "1614592377069573", + "is_commerce": false + }, + { + "start": 77, + "end": 94, + "type": 1, + "hashtag_name": "keepsupporting🙏", + "hashtag_id": "1616815176991749", + "is_commerce": false + }, + { + "start": 95, + "end": 113, + "type": 1, + "hashtag_name": "freefirenepal😘🌹", + "hashtag_id": "1663109709893638", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6812097963884580102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812097963884580102", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ❤Chimsey❤🔥’s video! #TikTok > ", + "share_desc": "Check out ❤Chimsey❤🔥's video! #TikTok", + "share_title": "Check out ❤Chimsey❤🔥’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6776547527023084545,\"author_country\":\"Nepal\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6776547527023085000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "NP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6812097963884580102", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309393\",\"mv_info\":{\"id\":\"309393\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101151510971723C887" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ar/assets/i18#lang_ar/tr.json b/config.ar/assets/i18#lang_ar/tr.json new file mode 100644 index 0000000..0d23c8c --- /dev/null +++ b/config.ar/assets/i18#lang_ar/tr.json @@ -0,0 +1,943 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6831500103816170758", + "desc": "Büyü bozuldu :(", + "create_time": 1590582567, + "author": { + "uid": "6560267894096953350", + "short_id": "31435269600", + "nickname": "enesbatur0", + "signature": "", + "avatar_thumb": { + "uri": "musically-maliva-obj/1648746643075078", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648746643075078~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1648746643075078", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648746643075078~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "enesbatur", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 2, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "TR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + } + ], + "language": "tr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1648746643075078", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648746643075078~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1648746643075078", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648746643075078~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAASncTUAC1SB3pjiAS5C7f2lNVWBQ_njXfTnWtxoKVAte4SFuc8O4uU2FlVrOENUQu", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6811718861319179000, + "id_str": "6811718861319179014", + "title": "Aspenya", + "author": "😍ASPENYAŞK😍", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663019030849542.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663019030849542.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6811558742611264518", + "owner_nickname": "😍ASPENYAŞK😍", + "is_original": false, + "mid": "6811718861319179014", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "aspenya_sound", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAxj6H5x1G5LN7AdqbkQzxZPese8I3uPHBBoU6aLMDjBVS_QjwIg4UDvBwHBb2IgCg", + "avatar_thumb": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br75q24jc2su07ut61n0_h264_540p_1725076", + "data_size": 2027612 + }, + "cover": { + "uri": "tos-maliva-p-0068/0d134f14ada64c4cbb92d92f68b2478d_1590582571", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/0d134f14ada64c4cbb92d92f68b2478d_1590582571~noop.webp?x-expires=1592658000&x-signature=eD8GZ7weuGqalA%2BNP%2FRY%2FGH5YF8%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/a2219a0f69c244eab77c7f4fe3470d4d_1590582570", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/a2219a0f69c244eab77c7f4fe3470d4d_1590582570?x-expires=1592658000&x-signature=QGfGS%2B3LheEwMwTS7kSghVtc4j4%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/516fbad83a49403bba51bdade1aa27be_1590582570", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/516fbad83a49403bba51bdade1aa27be_1590582570~noop.image?x-expires=1592658000&x-signature=DYfF6eljZuCp8STquUvrrtPTfDo%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1953458 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1725076, + "play_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br75q24jc2su07ut61n0_h264_540p_1725076", + "data_size": 2027612 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 734135, + "play_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br75q24jc2su07ut61n0_h264_540p_734135", + "data_size": 862884 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 489069, + "play_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br75q24jc2su07ut61n0_h264_540p_489069", + "data_size": 574840 + }, + "is_h265": 0 + } + ], + "duration": 9403, + "download_suffix_logo_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2020048 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044b80000br75q24jc2su07ut61n0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2055781}}\n" + }, + "share_url": "https://m.tiktok.com/v/6831500103816170758.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831500103816170758", + "user_digged": 0, + "statistics": { + "aweme_id": "6831500103816170758", + "comment_count": 5895, + "digg_count": 683752, + "download_count": 6405, + "play_count": 17830313, + "share_count": 5276, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1232 + }, + "status": { + "aweme_id": "6831500103816170758", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6831500103816170758.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831500103816170758", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out enesbatur0’s video! #TikTok > ", + "share_desc": "Check out enesbatur0's video! #TikTok", + "share_title": "Check out enesbatur0’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9403, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6560267894096953000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "TR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6831500103816170758", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "tr", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6824155905915948293", + "desc": "", + "create_time": 1588872614, + "author": { + "uid": "6634582488000184326", + "short_id": "33730241792", + "nickname": "Shooy_shar_officiall", + "signature": "😈", + "avatar_thumb": { + "uri": "musically-maliva-obj/71704d641423f7625f75ce00bcba89d5", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/71704d641423f7625f75ce00bcba89d5~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/71704d641423f7625f75ce00bcba89d5", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/71704d641423f7625f75ce00bcba89d5~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "shooy_shar_officiall", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "DE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + } + ], + "language": "tr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/71704d641423f7625f75ce00bcba89d5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/71704d641423f7625f75ce00bcba89d5~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/71704d641423f7625f75ce00bcba89d5", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/71704d641423f7625f75ce00bcba89d5~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAD6sfA3AhknfKSiCEqWH3fnQ2QYNJdnRw2ZY_Q_8PLlQLKDnxo24oiZjV-Ze8QrK7", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6708879208745127000, + "id_str": "6708879208745126661", + "title": "original sound - mustafa_king.88", + "author": "👑سلطان👑", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1637960383883301.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1637960383883301.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 19, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6610013480253292550", + "owner_nickname": "👑سلطان👑", + "is_original": false, + "mid": "6708879208745126661", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mustafa_king.88", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1639584065668097", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1639584065668097" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAdjpBbCrM8ugePxZSFJ_TCmrJPBA9KD0edp1HqjSHLwMjIKWpiRcp3yKCl2kXBAkJ", + "avatar_thumb": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044cf0000bqq4b85ajmbbv976lg70_h264_540p_2375210", + "data_size": 4487664 + }, + "cover": { + "uri": "tos-maliva-p-0068/8396f149f1c446f4843762eb4930b921", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8396f149f1c446f4843762eb4930b921~noop.webp?x-expires=1592658000&x-signature=NdFlmjfSnyG43DsLoevI0t8fPKE%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/4990b260b2eb4096ab9da9bb7b3c5a4e_1588872619", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/4990b260b2eb4096ab9da9bb7b3c5a4e_1588872619?x-expires=1592658000&x-signature=niUJV1XVNOxn8YciXeAKV07gnc8%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/b1143b49980e49c0bf0e3e7daca1a35b_1588872619", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b1143b49980e49c0bf0e3e7daca1a35b_1588872619~noop.image?x-expires=1592658000&x-signature=TNkXLkcDnXY0VbYhlvwNkc1%2Fwj8%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4612449 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2375210, + "play_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044cf0000bqq4b85ajmbbv976lg70_h264_540p_2375210", + "data_size": 4487664 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1385910, + "play_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044cf0000bqq4b85ajmbbv976lg70_h264_540p_1385910", + "data_size": 2618505 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 975714, + "play_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044cf0000bqq4b85ajmbbv976lg70_h264_540p_975714", + "data_size": 1843491 + }, + "is_h265": 0 + } + ], + "duration": 15115, + "download_suffix_logo_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4683062 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044cf0000bqq4b85ajmbbv976lg70\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4812811}}\n" + }, + "share_url": "https://m.tiktok.com/v/6824155905915948293.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6824155905915948293", + "user_digged": 0, + "statistics": { + "aweme_id": "6824155905915948293", + "comment_count": 212, + "digg_count": 28467, + "download_count": 316, + "play_count": 317252, + "share_count": 553, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 184 + }, + "status": { + "aweme_id": "6824155905915948293", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6824155905915948293.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6824155905915948293", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Shooy_shar_officiall’s video! #TikTok > ", + "share_desc": "Check out Shooy_shar_officiall's video! #TikTok", + "share_title": "Check out Shooy_shar_officiall’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15115, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6634582488000184326,\"author_country\":\"Germany\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6634582488000184000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "DE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6824155905915948293", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 3, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101150040700423D646" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ar/assets/i18#lang_ar/ye.json b/config.ar/assets/i18#lang_ar/ye.json new file mode 100644 index 0000000..320484b --- /dev/null +++ b/config.ar/assets/i18#lang_ar/ye.json @@ -0,0 +1,976 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838298440720583941", + "desc": "#🍩مغروره🍭بكيفى🍫 وصالونى 250k", + "create_time": 1592165430, + "author": { + "uid": "6725881746199888901", + "short_id": "46162185736", + "nickname": "누르 ❤", + "signature": "نوصل 200kامتى", + "avatar_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "noormosta2", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "EG", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/63812c4ea2623dae9bcbd92677768a78", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/63812c4ea2623dae9bcbd92677768a78" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150170141324429F" + ], + "width": 720, + "height": 720 + } + ], + "language": "ar", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAeiwgLLuCtR1uYpm9YzmKxsVmoW3mdn7WCB_eKjuaXg7bpciP9KpOGQSTqvmiPNKk", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6836501938520067000, + "id_str": "6836501938520066821", + "title": "original sound - noormosta2", + "author": "누르 ❤", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6836501913979161350.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6836501913979161350.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 20, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6725881746199888901", + "owner_nickname": "누르 ❤", + "is_original": false, + "mid": "6836501938520066821", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "noormosta2", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAeiwgLLuCtR1uYpm9YzmKxsVmoW3mdn7WCB_eKjuaXg7bpciP9KpOGQSTqvmiPNKk", + "avatar_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1666810775573509", + "cha_name": "🍩مغروره🍭بكيفى🍫", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1666810775573509", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1666810775573509.html?name=%F0%9F%8D%A9%D9%85%D8%BA%D8%B1%D9%88%D8%B1%D9%87%F0%9F%8D%AD%D8%A8%D9%83%D9%8A%D9%81%D9%89%F0%9F%8D%AB&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1666810775573509", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🍩مغروره🍭بكيفى🍫 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🍩مغروره🍭بكيفى🍫 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🍩مغروره🍭بكيفى🍫", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_1279133", + "data_size": 2417082 + }, + "cover": { + "uri": "tos-maliva-p-0068/dec8c1a5f0bd4d9d8a0cfc4fbde5bf82", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/dec8c1a5f0bd4d9d8a0cfc4fbde5bf82~noop.webp?x-expires=1592658000&x-signature=QwrHMlOg7yJoZCtLWE1wpU4MXoQ%3D&l=202006181309470101150170141324429F" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 544, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/70ddfbdf545f4ab5907c51bc1eb66e72_1592165431", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/70ddfbdf545f4ab5907c51bc1eb66e72_1592165431?x-expires=1592658000&x-signature=D4MSuGTx%2FkjhbQoM1E9h4yG4gfE%3D&l=202006181309470101150170141324429F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/3351ac8ba3bb4e05a5c97c3f8688fe2f_1592165432", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/3351ac8ba3bb4e05a5c97c3f8688fe2f_1592165432~noop.image?x-expires=1592658000&x-signature=3e3EiyzPJDaeRJRWbhoYNSjhFnI%3D&l=202006181309470101150170141324429F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2545243 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 764315, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_764315", + "data_size": 1444270 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 554336, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_554336", + "data_size": 1047488 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 438099, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_480p_438099", + "data_size": 827843 + }, + "is_h265": 0 + } + ], + "duration": 15117, + "download_suffix_logo_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2611835 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044470000brj87rm0bkblhk383se0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2719486}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838298440720583941.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838298440720583941", + "user_digged": 0, + "statistics": { + "aweme_id": "6838298440720583941", + "comment_count": 4639, + "digg_count": 508900, + "download_count": 73131, + "play_count": 11315730, + "share_count": 314414, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6394 + }, + "status": { + "aweme_id": "6838298440720583941", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🍩مغروره🍭بكيفى🍫", + "hashtag_id": "1666810775573509", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150170141324429F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838298440720583941.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838298440720583941", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 누르 ❤’s video! #TikTok > ", + "share_desc": "Check out 누르 ❤'s video! #TikTok", + "share_title": "Check out 누르 ❤’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15117, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6725881746199889000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "EG", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838298440720583941", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ar", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6834539903259249922", + "desc": "♥️🥀", + "create_time": 1591290329, + "author": { + "uid": "6654155491931652101", + "short_id": "36037329320", + "nickname": "RizWana", + "signature": "", + "avatar_thumb": { + "uri": "tiktok-obj/250a86a7fa9db560989bbec28bab9926", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/250a86a7fa9db560989bbec28bab9926.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/250a86a7fa9db560989bbec28bab9926", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/250a86a7fa9db560989bbec28bab9926.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "rizwana__azra__", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150170141324429F" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/250a86a7fa9db560989bbec28bab9926", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/250a86a7fa9db560989bbec28bab9926~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/250a86a7fa9db560989bbec28bab9926", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/250a86a7fa9db560989bbec28bab9926~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAdAUijhGzIa_jxxRm3o0zSe5Vz6RFG2FUw30vO4CGwQg5Y6Xc0FZwIbmaFbKR6Gs7", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6833247561709538000, + "id_str": "6833247561709538050", + "title": "original sound - deepakdeachz", + "author": "Romeodeachz.. 001", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/839314adedea81be337a93024d195f96", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/839314adedea81be337a93024d195f96.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/839314adedea81be337a93024d195f96", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/839314adedea81be337a93024d195f96.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/839314adedea81be337a93024d195f96", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/839314adedea81be337a93024d195f96.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/839314adedea81be337a93024d195f96", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/839314adedea81be337a93024d195f96.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/9da38669c5b323cf6a969da4de5dd6c8.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/9da38669c5b323cf6a969da4de5dd6c8.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 27, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6745815918628832261", + "owner_nickname": "Romeodeachz.. 001", + "is_original": false, + "mid": "6833247561709538050", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "deepakdeachz", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAQltlhqRX7dRQCcpkQqTzXt67zpAZrpKxUwHQ_3akR1w_Pf5piUcw_j51V-K6DKcl", + "avatar_thumb": { + "uri": "tiktok-obj/839314adedea81be337a93024d195f96", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/839314adedea81be337a93024d195f96.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/839314adedea81be337a93024d195f96", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/839314adedea81be337a93024d195f96.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/839314adedea81be337a93024d195f96", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/839314adedea81be337a93024d195f96.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v090444c0000brcijigp685u55nmiqm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brcijigp685u55nmiqm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brcijigp685u55nmiqm0_h264_540p_582679", + "data_size": 1006287 + }, + "cover": { + "uri": "tos-maliva-p-0068/f2dcd27defb54173ab4e2bd510be1ad3", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/f2dcd27defb54173ab4e2bd510be1ad3~noop.webp?x-expires=1592658000&x-signature=Fj1qb%2BY0eenvm%2FmsznbVmLN0BRc%3D&l=202006181309470101150170141324429F" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/e9c73e4f21454f588adf44f2832b82cf_1591290332", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/e9c73e4f21454f588adf44f2832b82cf_1591290332?x-expires=1592658000&x-signature=dULfVpKSLRLJ8EY7E7qZi788%2BQ0%3D&l=202006181309470101150170141324429F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/aa9adbcf462b4deaa858fb95197c3398_1591290332", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/aa9adbcf462b4deaa858fb95197c3398_1591290332~noop.image?x-expires=1592658000&x-signature=dk4lG0OLyzR5HB6LNaESbHzgXT8%3D&l=202006181309470101150170141324429F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090444c0000brcijigp685u55nmiqm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brcijigp685u55nmiqm0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2531105 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 582679, + "play_addr": { + "uri": "v090444c0000brcijigp685u55nmiqm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brcijigp685u55nmiqm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brcijigp685u55nmiqm0_h264_540p_582679", + "data_size": 1006287 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 481008, + "play_addr": { + "uri": "v090444c0000brcijigp685u55nmiqm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brcijigp685u55nmiqm0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brcijigp685u55nmiqm0_h264_480p_481008", + "data_size": 830702 + }, + "is_h265": 0 + } + ], + "duration": 13816, + "download_suffix_logo_addr": { + "uri": "v090444c0000brcijigp685u55nmiqm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brcijigp685u55nmiqm0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2599389 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507402 + }, + "share_url": "https://m.tiktok.com/v/6834539903259249922.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834539903259249922", + "user_digged": 0, + "statistics": { + "aweme_id": "6834539903259249922", + "comment_count": 1462, + "digg_count": 84027, + "download_count": 1365, + "play_count": 631629, + "share_count": 1967, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1219 + }, + "status": { + "aweme_id": "6834539903259249922", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150170141324429F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834539903259249922.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834539903259249922", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out RizWana’s video! #TikTok > ", + "share_desc": "Check out RizWana's video! #TikTok", + "share_title": "Check out RizWana’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13816, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6654155491931652101,\"author_country\":\"India\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6654155491931652000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6834539903259249922", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "zh", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": false, + "share_type": 0, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 3, + "allow_dynamic_wallpaper": false, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150170141324429F" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ar/res/as/a.webp b/config.ar/res/as/a.webp new file mode 100644 index 0000000..1fbc5de Binary files /dev/null and b/config.ar/res/as/a.webp differ diff --git a/config.ar/resources.arsc b/config.ar/resources.arsc new file mode 100644 index 0000000..e14ef6f Binary files /dev/null and b/config.ar/resources.arsc differ diff --git a/config.arm64_v8a/AndroidManifest.xml b/config.arm64_v8a/AndroidManifest.xml new file mode 100644 index 0000000..11548ff Binary files /dev/null and b/config.arm64_v8a/AndroidManifest.xml differ diff --git a/config.arm64_v8a/META-INF/BNDLTOOL.RSA b/config.arm64_v8a/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..733bcd9 Binary files /dev/null and b/config.arm64_v8a/META-INF/BNDLTOOL.RSA differ diff --git a/config.arm64_v8a/META-INF/BNDLTOOL.SF b/config.arm64_v8a/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..2cd006e --- /dev/null +++ b/config.arm64_v8a/META-INF/BNDLTOOL.SF @@ -0,0 +1,173 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: ZWyjW55ANvjGna3/DmnRwbwa0ck= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: K2ivbMnHQ0WSM65mrheXFr3ILfE= + +Name: lib/arm64-v8a/libAkeva.so +SHA1-Digest: DCXA2Lo9ldoo19gw0JUgSVgaP8w= + +Name: lib/arm64-v8a/libEncryptor.so +SHA1-Digest: XOoQKIkxMcw0kxQqvaYvqqHhcYI= + +Name: lib/arm64-v8a/libabrmodule.so +SHA1-Digest: onjmBtmC0UqTi+E1AGjtxwQilR0= + +Name: lib/arm64-v8a/libalog-lib.so +SHA1-Digest: DUAq7poPaGgU2mZtbwMpYODZGfA= + +Name: lib/arm64-v8a/libasve.so +SHA1-Digest: ottTBOXA1f03GoRpnVIfMagFbVI= + +Name: lib/arm64-v8a/libaudioeffect.so +SHA1-Digest: KnDPOcq13N0fvE9Y6VD6C/9gWAo= + +Name: lib/arm64-v8a/libavframework.so +SHA1-Digest: pCFOx3ZqAWubZGeD0KtzlK8zshQ= + +Name: lib/arm64-v8a/libavmdl.so +SHA1-Digest: 1u1Jpl2Rs4QvTxCkrEFJvjUGic8= + +Name: lib/arm64-v8a/libbspatch.so +SHA1-Digest: KsJSUqY9Et2u+j1rJJxIrxaBCVM= + +Name: lib/arm64-v8a/libbuffer.so +SHA1-Digest: y/IsbywCrv7J6iMrrW2CJw6TAbo= + +Name: lib/arm64-v8a/libbyte264.so +SHA1-Digest: Aom12fGhm6Q1qM9jzBrNqGjjuIM= + +Name: lib/arm64-v8a/libbytenn.so +SHA1-Digest: Z/nU9zTYOppvB2fxZuF0djBaj8k= + +Name: lib/arm64-v8a/libc++_shared.so +SHA1-Digest: ZyLCcdWNZT7lhCjfFnve0MjYkjI= + +Name: lib/arm64-v8a/libcms.so +SHA1-Digest: U7lMjUt/V+4MgbRtOf6VExo1kVg= + +Name: lib/arm64-v8a/libcutsame.so +SHA1-Digest: Kek/JsZdQykr5sR8ZySCvsL30ew= + +Name: lib/arm64-v8a/libdaemon.so +SHA1-Digest: 0HICB6AOfxZOS2Np9sDyJAFDCGk= + +Name: lib/arm64-v8a/libdownloadable_model_support.so +SHA1-Digest: hSWcyj9zh65FX2C5ByIoWmkKrUo= + +Name: lib/arm64-v8a/libeffect.so +SHA1-Digest: 0NpCWTasJoaXUSIBY1KvGrhM55g= + +Name: lib/arm64-v8a/libfdk-aac.so +SHA1-Digest: NBhTvOlOew1KUApLPl8yoP8+0RA= + +Name: lib/arm64-v8a/libfile_lock.so +SHA1-Digest: 8njWDnV9V86asZxDWoaiTARkjfQ= + +Name: lib/arm64-v8a/libflock-lib.so +SHA1-Digest: a9Px5D+X39Bg9aCl9T4408+ssBQ= + +Name: lib/arm64-v8a/libgeckox_bspatch.so +SHA1-Digest: LMxwgAgI6KC8I1vmcSJ8wbpjudU= + +Name: lib/arm64-v8a/libgifimage.so +SHA1-Digest: mZrBe5JFFoNxytqwVEAnrj9J524= + +Name: lib/arm64-v8a/libgodzilla-sysopt.so +SHA1-Digest: IddIjZwnDeY4EqB8UpKfWopLHhQ= + +Name: lib/arm64-v8a/libgraphicbuf.so +SHA1-Digest: v1VSakFsrm6ML/ws9qr2JDGhw1E= + +Name: lib/arm64-v8a/libhardwarebuf.so +SHA1-Digest: a/6NWKBYwRfZE4RxV5eXVNOEeBA= + +Name: lib/arm64-v8a/libimagepipeline.so +SHA1-Digest: fQMVT019xejB6bqU2QLyZJureQY= + +Name: lib/arm64-v8a/libmonitorcollector-lib.so +SHA1-Digest: oXdPcCUKPs8gFc+OmSz3Qu4q1Vw= + +Name: lib/arm64-v8a/libnative-filters.so +SHA1-Digest: HMZiuO0eF3hO9IIbRgdtqv0RmA4= + +Name: lib/arm64-v8a/libnetecho.so +SHA1-Digest: oN2IfggVYxqhx9UM3TcsfEwMUZI= + +Name: lib/arm64-v8a/libnpth.so +SHA1-Digest: /E7ikMnsVcV2TfrkxDxnLN3ZlQs= + +Name: lib/arm64-v8a/libnpth_dumper.so +SHA1-Digest: WV1o6BCICJyq9O6JdSGu4oAScBQ= + +Name: lib/arm64-v8a/libpl_droidsonroids_gif.so +SHA1-Digest: Zq6bOxgl4wA6xSIOeYJdrHjIBqU= + +Name: lib/arm64-v8a/libpruneau.so +SHA1-Digest: uKloO4otMFxggrcuMq+ZJuZ5LU0= + +Name: lib/arm64-v8a/libsrlib.so +SHA1-Digest: k9t+h9cR474Myo+vEP8XGwpYbtI= + +Name: lib/arm64-v8a/libsscronet.so +SHA1-Digest: r5SMr7M0SuNNEpZIygizYNBCMo8= + +Name: lib/arm64-v8a/libstatic-webp.so +SHA1-Digest: WQeL7r4buyhGl/ersrWIWjXDVTY= + +Name: lib/arm64-v8a/libsupervisor.so +SHA1-Digest: GZg6HRlRuQhJsBGnAfpiRgQYltA= + +Name: lib/arm64-v8a/libsysoptimizer.so +SHA1-Digest: 6wzOVKeH4LyvHkbOFRC++qk6G6E= + +Name: lib/arm64-v8a/libtailor.so +SHA1-Digest: RW3xjbVfGsneerHhiqukKkVvQT8= + +Name: lib/arm64-v8a/libtensorflowlite_jni.so +SHA1-Digest: VfIONwxu90NjB1xZ7P+XkvckrPc= + +Name: lib/arm64-v8a/libttboringssl.so +SHA1-Digest: 4NwBDH1JbGtneRRCl/640r1tG8s= + +Name: lib/arm64-v8a/libttcrypto.so +SHA1-Digest: slksCYF/+lwLhR136URe+ME5NFQ= + +Name: lib/arm64-v8a/libttffmpeg.so +SHA1-Digest: 1oaTHykDA+9gRL1yhMbLXP50O5Q= + +Name: lib/arm64-v8a/libttmain.so +SHA1-Digest: IgAB5WtAK2W9vYpxm0rhrJrb7gE= + +Name: lib/arm64-v8a/libttmplayer.so +SHA1-Digest: uey391dqWjdyuEqYqOHhvu59sJQ= + +Name: lib/arm64-v8a/libttvebase.so +SHA1-Digest: 4CkOgRx4ScAnkPS1b1UmMOfEmBo= + +Name: lib/arm64-v8a/libttvideoeditor.so +SHA1-Digest: VzdY351XB6PS43jKIxukDcWA3v8= + +Name: lib/arm64-v8a/libttvideorecorder.so +SHA1-Digest: 113tsDjko3/mCOCanTMsxM5WsVc= + +Name: lib/arm64-v8a/libttvideouploader.so +SHA1-Digest: PhvNQ5sqfMtzG3plFHaLzd0NuP8= + +Name: lib/arm64-v8a/libvideodec.so +SHA1-Digest: 4YjIpiPPTXJOa6jzbPuMkTRSHMQ= + +Name: lib/arm64-v8a/libwcdb.so +SHA1-Digest: gjw5kb/3viK1b/cPbEyKq9/dolM= + +Name: lib/arm64-v8a/libx264.so +SHA1-Digest: Lu4JMHz6gnBrxj/lkbyokEqfQLo= + +Name: lib/arm64-v8a/libyuv.so +SHA1-Digest: V74IBtZ5Os2CbBWpi9jWUfd8vWc= + +Name: lib/arm64-v8a/libzstd-jni.so +SHA1-Digest: I7Rr4QTUrbvTNDDTNsD8DFp9b7I= + diff --git a/config.arm64_v8a/META-INF/MANIFEST.MF b/config.arm64_v8a/META-INF/MANIFEST.MF new file mode 100644 index 0000000..31fb0da --- /dev/null +++ b/config.arm64_v8a/META-INF/MANIFEST.MF @@ -0,0 +1,172 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: K/me+L14Hn++WlN3kiLA9kYJCBY= + +Name: lib/arm64-v8a/libAkeva.so +SHA1-Digest: JUccC5aC4Z19iSP5cyZA7E3U+pA= + +Name: lib/arm64-v8a/libEncryptor.so +SHA1-Digest: TSkTp0DTc4NRVrEGRt+J5emtbIA= + +Name: lib/arm64-v8a/libabrmodule.so +SHA1-Digest: Wj7f5ECwtYwKXByLhmySzvUyjH0= + +Name: lib/arm64-v8a/libalog-lib.so +SHA1-Digest: zxuFZigTf1nC5amv64UmVgJ4USo= + +Name: lib/arm64-v8a/libasve.so +SHA1-Digest: LYHQgBAXRkj7Qh9u1CEl9w/vc3c= + +Name: lib/arm64-v8a/libaudioeffect.so +SHA1-Digest: 9+Xnkg5NS63s3LnuCH0HQB8w+yI= + +Name: lib/arm64-v8a/libavframework.so +SHA1-Digest: lJUR3IKGivzezjfiMfnny3LrrvI= + +Name: lib/arm64-v8a/libavmdl.so +SHA1-Digest: UjLE9GrgsO5PCCPeyMXqP1fdi+k= + +Name: lib/arm64-v8a/libbspatch.so +SHA1-Digest: MRwANY9jsqqTxFXxl86SrB7TXDU= + +Name: lib/arm64-v8a/libbuffer.so +SHA1-Digest: PRJ3B8W78ObrRl3NgfEYa1DjObI= + +Name: lib/arm64-v8a/libbyte264.so +SHA1-Digest: c9/aKnl5AgNgbB4tLgB9JrUikz4= + +Name: lib/arm64-v8a/libbytenn.so +SHA1-Digest: 09rlzHSx6rHTKfLyRn6fqnWvl4I= + +Name: lib/arm64-v8a/libc++_shared.so +SHA1-Digest: jN+nKb2uuToWAGGmyChgnF7eoQk= + +Name: lib/arm64-v8a/libcms.so +SHA1-Digest: hvt9bjdFNWS5XlLgnB0WU/zM5yw= + +Name: lib/arm64-v8a/libcutsame.so +SHA1-Digest: hDdDm3bnr4fyXUk7hr377qnLDpI= + +Name: lib/arm64-v8a/libdaemon.so +SHA1-Digest: 0cVUM6IQcnAZut87W93N4VdU53w= + +Name: lib/arm64-v8a/libdownloadable_model_support.so +SHA1-Digest: DuhkrkXOJgG0MYTawI7nuDXRhxc= + +Name: lib/arm64-v8a/libeffect.so +SHA1-Digest: 7F4OLze+fR7cxafvCIz8wBjiNR4= + +Name: lib/arm64-v8a/libfdk-aac.so +SHA1-Digest: 8zvkXB5HbFUXmi41Gw7uQ4HHN3c= + +Name: lib/arm64-v8a/libfile_lock.so +SHA1-Digest: z9nR2LbH3bpJuD8mt4+TTGaaQg8= + +Name: lib/arm64-v8a/libflock-lib.so +SHA1-Digest: Nd82HYOmczNSMn8IPcqxpdZ6B6Y= + +Name: lib/arm64-v8a/libgeckox_bspatch.so +SHA1-Digest: ASjgsVqyqWqAK5S3Pe5+RoXHOjw= + +Name: lib/arm64-v8a/libgifimage.so +SHA1-Digest: 9MhA+EbctAJSy+51IJdc1JvNO+0= + +Name: lib/arm64-v8a/libgodzilla-sysopt.so +SHA1-Digest: zmdff54YXN173XBCDsT7CEJt4Us= + +Name: lib/arm64-v8a/libgraphicbuf.so +SHA1-Digest: GZqBPsHLX5DAcHMlT/nasybSltE= + +Name: lib/arm64-v8a/libhardwarebuf.so +SHA1-Digest: NwVpYeM8JfzbRovmIHNbx0W5b8M= + +Name: lib/arm64-v8a/libimagepipeline.so +SHA1-Digest: kmbsD09GnoJskxcCvURF5PwQcEs= + +Name: lib/arm64-v8a/libmonitorcollector-lib.so +SHA1-Digest: ZGiHEoS7fzLgKmm2Z8tSAp9gBwQ= + +Name: lib/arm64-v8a/libnative-filters.so +SHA1-Digest: T3G5BmIctlqQlfE+KrYxseMHZxc= + +Name: lib/arm64-v8a/libnetecho.so +SHA1-Digest: KexYxtRY22h1Oivb2V5glqPHGTs= + +Name: lib/arm64-v8a/libnpth.so +SHA1-Digest: en/KDPX8Nn+nvmwI15ByUeqk/Zw= + +Name: lib/arm64-v8a/libnpth_dumper.so +SHA1-Digest: fJgfA/Mu5AmKa8AEkbHRHjN2Oko= + +Name: lib/arm64-v8a/libpl_droidsonroids_gif.so +SHA1-Digest: 4MN/32gZk5uqAhTAe4nt+Q6LzLs= + +Name: lib/arm64-v8a/libpruneau.so +SHA1-Digest: JbexKxRIOprE4WUh+DvL0DfH9GU= + +Name: lib/arm64-v8a/libsrlib.so +SHA1-Digest: Vkxkwl4iJykGGD1x1JPzFzJU1Lg= + +Name: lib/arm64-v8a/libsscronet.so +SHA1-Digest: ML638jyx9aFuopKQTA90wny0HD4= + +Name: lib/arm64-v8a/libstatic-webp.so +SHA1-Digest: H3mQjdTtF7X/KuvgHih+a5xhfkw= + +Name: lib/arm64-v8a/libsupervisor.so +SHA1-Digest: zLtfK/sFLPLklz+rx9rxxqUaUXY= + +Name: lib/arm64-v8a/libsysoptimizer.so +SHA1-Digest: 2ATlkSCXo6JtpYJjBXL3dlLEeEc= + +Name: lib/arm64-v8a/libtailor.so +SHA1-Digest: vTzTO7kl4egydR/u50zjzihAMuU= + +Name: lib/arm64-v8a/libtensorflowlite_jni.so +SHA1-Digest: xuFlV13Fiwo4QW2HyNEd6IsJyIQ= + +Name: lib/arm64-v8a/libttboringssl.so +SHA1-Digest: B6lKQkMIFGog4ARvqjOAYN5jCI0= + +Name: lib/arm64-v8a/libttcrypto.so +SHA1-Digest: +Qs7PfdDi+APlvTsI2sNnOOHam4= + +Name: lib/arm64-v8a/libttffmpeg.so +SHA1-Digest: /cR+wC6GVpbcIoY4ICrvctF9Mic= + +Name: lib/arm64-v8a/libttmain.so +SHA1-Digest: uoeBzOuh8Mw8bAJw+uJxzpy71fk= + +Name: lib/arm64-v8a/libttmplayer.so +SHA1-Digest: Q8jul8f5yO4Ki0YCITjzp6pcW8k= + +Name: lib/arm64-v8a/libttvebase.so +SHA1-Digest: bjnBoWuhLtxCUS162SL55zHy2KY= + +Name: lib/arm64-v8a/libttvideoeditor.so +SHA1-Digest: iO60F7kmv5unJMfksi0t5+Tzimg= + +Name: lib/arm64-v8a/libttvideorecorder.so +SHA1-Digest: jOaoDiOcWrwpQBdB0C6dW+pGl+Q= + +Name: lib/arm64-v8a/libttvideouploader.so +SHA1-Digest: yoLbJK3PI+z1FtfFzdxwIpIFB+o= + +Name: lib/arm64-v8a/libvideodec.so +SHA1-Digest: cJNDlXZKrU/FqRJ4t7cpU8lp4Mw= + +Name: lib/arm64-v8a/libwcdb.so +SHA1-Digest: lGqex2swdqOnAS+KFojpKL3CFu4= + +Name: lib/arm64-v8a/libx264.so +SHA1-Digest: QLcbj9P2yLtyTfXEx0DfPvozAFc= + +Name: lib/arm64-v8a/libyuv.so +SHA1-Digest: mG4PqTMw3advc62oawsDuaxumlQ= + +Name: lib/arm64-v8a/libzstd-jni.so +SHA1-Digest: 8X0gdVHBGfAhAiONmhJ6POm3IVs= + diff --git a/config.arm64_v8a/lib/arm64-v8a/libAkeva.so b/config.arm64_v8a/lib/arm64-v8a/libAkeva.so new file mode 100644 index 0000000..8ea907a Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libAkeva.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libEncryptor.so b/config.arm64_v8a/lib/arm64-v8a/libEncryptor.so new file mode 100644 index 0000000..053e0a9 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libEncryptor.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libabrmodule.so b/config.arm64_v8a/lib/arm64-v8a/libabrmodule.so new file mode 100644 index 0000000..667d827 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libabrmodule.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libalog-lib.so b/config.arm64_v8a/lib/arm64-v8a/libalog-lib.so new file mode 100644 index 0000000..5d73dec Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libalog-lib.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libasve.so b/config.arm64_v8a/lib/arm64-v8a/libasve.so new file mode 100644 index 0000000..594ab02 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libasve.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libaudioeffect.so b/config.arm64_v8a/lib/arm64-v8a/libaudioeffect.so new file mode 100644 index 0000000..9b333fa Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libaudioeffect.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libavframework.so b/config.arm64_v8a/lib/arm64-v8a/libavframework.so new file mode 100644 index 0000000..24fe596 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libavframework.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libavmdl.so b/config.arm64_v8a/lib/arm64-v8a/libavmdl.so new file mode 100644 index 0000000..c874872 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libavmdl.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libbspatch.so b/config.arm64_v8a/lib/arm64-v8a/libbspatch.so new file mode 100644 index 0000000..bb6e3e2 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libbspatch.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libbuffer.so b/config.arm64_v8a/lib/arm64-v8a/libbuffer.so new file mode 100644 index 0000000..161667c Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libbuffer.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libbyte264.so b/config.arm64_v8a/lib/arm64-v8a/libbyte264.so new file mode 100644 index 0000000..52661c5 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libbyte264.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libbytenn.so b/config.arm64_v8a/lib/arm64-v8a/libbytenn.so new file mode 100644 index 0000000..950ee35 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libbytenn.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libc++_shared.so b/config.arm64_v8a/lib/arm64-v8a/libc++_shared.so new file mode 100644 index 0000000..68833ae Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libc++_shared.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libcms.so b/config.arm64_v8a/lib/arm64-v8a/libcms.so new file mode 100644 index 0000000..1577bdb Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libcms.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libcutsame.so b/config.arm64_v8a/lib/arm64-v8a/libcutsame.so new file mode 100644 index 0000000..0be6a14 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libcutsame.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libdaemon.so b/config.arm64_v8a/lib/arm64-v8a/libdaemon.so new file mode 100644 index 0000000..7c3c91c Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libdaemon.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libdownloadable_model_support.so b/config.arm64_v8a/lib/arm64-v8a/libdownloadable_model_support.so new file mode 100644 index 0000000..4f91e99 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libdownloadable_model_support.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libeffect.so b/config.arm64_v8a/lib/arm64-v8a/libeffect.so new file mode 100644 index 0000000..2c653c6 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libeffect.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libfdk-aac.so b/config.arm64_v8a/lib/arm64-v8a/libfdk-aac.so new file mode 100644 index 0000000..3dc6479 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libfdk-aac.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libfile_lock.so b/config.arm64_v8a/lib/arm64-v8a/libfile_lock.so new file mode 100644 index 0000000..848c628 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libfile_lock.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libflock-lib.so b/config.arm64_v8a/lib/arm64-v8a/libflock-lib.so new file mode 100644 index 0000000..22927d9 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libflock-lib.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libgeckox_bspatch.so b/config.arm64_v8a/lib/arm64-v8a/libgeckox_bspatch.so new file mode 100644 index 0000000..afedf88 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libgeckox_bspatch.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libgifimage.so b/config.arm64_v8a/lib/arm64-v8a/libgifimage.so new file mode 100644 index 0000000..fa7add9 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libgifimage.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libgodzilla-sysopt.so b/config.arm64_v8a/lib/arm64-v8a/libgodzilla-sysopt.so new file mode 100644 index 0000000..9968d03 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libgodzilla-sysopt.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libgraphicbuf.so b/config.arm64_v8a/lib/arm64-v8a/libgraphicbuf.so new file mode 100644 index 0000000..d16f21c Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libgraphicbuf.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libhardwarebuf.so b/config.arm64_v8a/lib/arm64-v8a/libhardwarebuf.so new file mode 100644 index 0000000..88f69f7 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libhardwarebuf.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libimagepipeline.so b/config.arm64_v8a/lib/arm64-v8a/libimagepipeline.so new file mode 100644 index 0000000..a5f2770 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libimagepipeline.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libmonitorcollector-lib.so b/config.arm64_v8a/lib/arm64-v8a/libmonitorcollector-lib.so new file mode 100644 index 0000000..d582f41 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libmonitorcollector-lib.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libnative-filters.so b/config.arm64_v8a/lib/arm64-v8a/libnative-filters.so new file mode 100644 index 0000000..e5d5a48 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libnative-filters.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libnetecho.so b/config.arm64_v8a/lib/arm64-v8a/libnetecho.so new file mode 100644 index 0000000..eb2b380 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libnetecho.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libnpth.so b/config.arm64_v8a/lib/arm64-v8a/libnpth.so new file mode 100644 index 0000000..e2c715b Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libnpth.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libnpth_dumper.so b/config.arm64_v8a/lib/arm64-v8a/libnpth_dumper.so new file mode 100644 index 0000000..7fb1493 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libnpth_dumper.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libpl_droidsonroids_gif.so b/config.arm64_v8a/lib/arm64-v8a/libpl_droidsonroids_gif.so new file mode 100644 index 0000000..c35d5fa Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libpl_droidsonroids_gif.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libpruneau.so b/config.arm64_v8a/lib/arm64-v8a/libpruneau.so new file mode 100644 index 0000000..ab132bb Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libpruneau.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libsrlib.so b/config.arm64_v8a/lib/arm64-v8a/libsrlib.so new file mode 100644 index 0000000..ff16706 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libsrlib.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libsscronet.so b/config.arm64_v8a/lib/arm64-v8a/libsscronet.so new file mode 100644 index 0000000..242b166 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libsscronet.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libstatic-webp.so b/config.arm64_v8a/lib/arm64-v8a/libstatic-webp.so new file mode 100644 index 0000000..c2d3b36 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libstatic-webp.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libsupervisor.so b/config.arm64_v8a/lib/arm64-v8a/libsupervisor.so new file mode 100644 index 0000000..0e228a0 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libsupervisor.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libsysoptimizer.so b/config.arm64_v8a/lib/arm64-v8a/libsysoptimizer.so new file mode 100644 index 0000000..301c6aa Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libsysoptimizer.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libtailor.so b/config.arm64_v8a/lib/arm64-v8a/libtailor.so new file mode 100644 index 0000000..fec8629 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libtailor.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libtensorflowlite_jni.so b/config.arm64_v8a/lib/arm64-v8a/libtensorflowlite_jni.so new file mode 100644 index 0000000..56f5b7f Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libtensorflowlite_jni.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libttboringssl.so b/config.arm64_v8a/lib/arm64-v8a/libttboringssl.so new file mode 100644 index 0000000..bfcf824 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libttboringssl.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libttcrypto.so b/config.arm64_v8a/lib/arm64-v8a/libttcrypto.so new file mode 100644 index 0000000..d6603b1 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libttcrypto.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libttffmpeg.so b/config.arm64_v8a/lib/arm64-v8a/libttffmpeg.so new file mode 100644 index 0000000..7b72b48 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libttffmpeg.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libttmain.so b/config.arm64_v8a/lib/arm64-v8a/libttmain.so new file mode 100644 index 0000000..1493123 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libttmain.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libttmplayer.so b/config.arm64_v8a/lib/arm64-v8a/libttmplayer.so new file mode 100644 index 0000000..ac61300 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libttmplayer.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libttvebase.so b/config.arm64_v8a/lib/arm64-v8a/libttvebase.so new file mode 100644 index 0000000..29d2b56 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libttvebase.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libttvideoeditor.so b/config.arm64_v8a/lib/arm64-v8a/libttvideoeditor.so new file mode 100644 index 0000000..aaa515c Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libttvideoeditor.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libttvideorecorder.so b/config.arm64_v8a/lib/arm64-v8a/libttvideorecorder.so new file mode 100644 index 0000000..e3b8d2a Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libttvideorecorder.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libttvideouploader.so b/config.arm64_v8a/lib/arm64-v8a/libttvideouploader.so new file mode 100644 index 0000000..1f01642 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libttvideouploader.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libvideodec.so b/config.arm64_v8a/lib/arm64-v8a/libvideodec.so new file mode 100644 index 0000000..3f94ac8 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libvideodec.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libwcdb.so b/config.arm64_v8a/lib/arm64-v8a/libwcdb.so new file mode 100644 index 0000000..8d3708d Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libwcdb.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libx264.so b/config.arm64_v8a/lib/arm64-v8a/libx264.so new file mode 100644 index 0000000..ab92726 Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libx264.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libyuv.so b/config.arm64_v8a/lib/arm64-v8a/libyuv.so new file mode 100644 index 0000000..ca39a6b Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libyuv.so differ diff --git a/config.arm64_v8a/lib/arm64-v8a/libzstd-jni.so b/config.arm64_v8a/lib/arm64-v8a/libzstd-jni.so new file mode 100644 index 0000000..780946e Binary files /dev/null and b/config.arm64_v8a/lib/arm64-v8a/libzstd-jni.so differ diff --git a/config.de/AndroidManifest.xml b/config.de/AndroidManifest.xml new file mode 100644 index 0000000..652125e Binary files /dev/null and b/config.de/AndroidManifest.xml differ diff --git a/config.de/META-INF/BNDLTOOL.RSA b/config.de/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..c9e98c3 Binary files /dev/null and b/config.de/META-INF/BNDLTOOL.RSA differ diff --git a/config.de/META-INF/BNDLTOOL.SF b/config.de/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..3318157 --- /dev/null +++ b/config.de/META-INF/BNDLTOOL.SF @@ -0,0 +1,20 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: 6ZqQXNPnO4rsUNn3J8WMQHAJz/4= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: 4IZVmJOgmvH1vF4nmHZDFbZJLzM= + +Name: assets/i18#lang_de/at.json +SHA1-Digest: oHpob4JNWFBBALYI17+WXDiv7L4= + +Name: assets/i18#lang_de/ch.json +SHA1-Digest: 8vgNaQ4LX/qwR/3ka9p7slCnphc= + +Name: assets/i18#lang_de/default.json +SHA1-Digest: 96UZi8Tef4tIuKZ6Vus9ElNM0Aw= + +Name: resources.arsc +SHA1-Digest: 5eLoGwTmD0FRDzk99d1bqcw3SYY= + diff --git a/config.de/META-INF/MANIFEST.MF b/config.de/META-INF/MANIFEST.MF new file mode 100644 index 0000000..c3cf751 --- /dev/null +++ b/config.de/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: h3Uqc0VRdaHyQ6kktKHXTD/2Ohc= + +Name: assets/i18#lang_de/at.json +SHA1-Digest: WLNezs3RZb03R7c7mr+NQzyQjQY= + +Name: assets/i18#lang_de/ch.json +SHA1-Digest: 0m9B5Y+17iK51mX4AZz4g2i5qTM= + +Name: assets/i18#lang_de/default.json +SHA1-Digest: NwWn2yo5A1/HKsQtI+sO2AuovAE= + +Name: resources.arsc +SHA1-Digest: r87Tv/EUy2QQnB6uEQgh/KfYAyk= + diff --git a/config.de/assets/i18#lang_de/at.json b/config.de/assets/i18#lang_de/at.json new file mode 100644 index 0000000..3051117 --- /dev/null +++ b/config.de/assets/i18#lang_de/at.json @@ -0,0 +1,1015 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6827849641770487045", + "desc": "#foryou #foryoupage #mommylife #dropyourweapon", + "create_time": 1589732628, + "author": { + "uid": "6727587242724180998", + "short_id": "44750293112", + "nickname": "MellsanL", + "signature": "💗", + "avatar_thumb": { + "uri": "musically-maliva-obj/cfb477f2c9207fae27401139990f7cee", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/cfb477f2c9207fae27401139990f7cee~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/cfb477f2c9207fae27401139990f7cee", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/cfb477f2c9207fae27401139990f7cee~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mellsanl", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "SE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=20200618130947010115151099012423EC" + ], + "width": 720, + "height": 720 + } + ], + "language": "sv", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/cfb477f2c9207fae27401139990f7cee", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/cfb477f2c9207fae27401139990f7cee~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/cfb477f2c9207fae27401139990f7cee", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/cfb477f2c9207fae27401139990f7cee~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAHiCNa51zF2GOEvJvhz4ut9l9uE0yb3k0FnADSesFN9AOi6L5Og22h7I-xbOB95Dj", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6811968697339579000, + "id_str": "6811968697339579141", + "title": "original sound - kristynann85", + "author": "MizKristyn85", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663078503873590.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663078503873590.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 7, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6601044405204779014", + "owner_nickname": "MizKristyn85", + "is_original": false, + "mid": "6811968697339579141", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "kristynann85", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAKdMYJ2X7cRO-L-0wn0erJJS0C17lD4wZfRz03x6eD2a9iG-6uLpk-ZHHaAvUHxLx", + "avatar_thumb": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "42164", + "cha_name": "foryou", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=42164", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/42164.html?name=foryou&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=42164", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d30000br0ma3j5g71qtfhv2d50_h264_540p_1089954", + "data_size": 1097584 + }, + "cover": { + "uri": "tos-maliva-p-0068/400606431bb84a139ff51b67087433bf", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/400606431bb84a139ff51b67087433bf~noop.webp?x-expires=1592658000&x-signature=NBD81yRNxTxjTr9SE%2Bf3QryFy4Q%3D&l=20200618130947010115151099012423EC" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/b0afd07cd5d34a56a15d0ecd2f2d0dad_1589732630", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/b0afd07cd5d34a56a15d0ecd2f2d0dad_1589732630?x-expires=1592658000&x-signature=v3DZ8CNavIFb8sQzjC6BBVTMJgM%3D&l=20200618130947010115151099012423EC" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/11faa8ec909a4049b531fbf316147446_1589732630", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/11faa8ec909a4049b531fbf316147446_1589732630~noop.image?x-expires=1592658000&x-signature=1X5NV5AIsWU5sObl3UYLuPwoJVk%3D&l=20200618130947010115151099012423EC" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1155000 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1089954, + "play_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d30000br0ma3j5g71qtfhv2d50_h264_540p_1089954", + "data_size": 1097584 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 575946, + "play_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d30000br0ma3j5g71qtfhv2d50_h264_540p_575946", + "data_size": 579978 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 400966, + "play_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d30000br0ma3j5g71qtfhv2d50_h264_540p_400966", + "data_size": 403773 + }, + "is_h265": 0 + } + ], + "duration": 8055, + "download_suffix_logo_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1221864 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507395, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044d30000br0ma3j5g71qtfhv2d50\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1254899}}\n" + }, + "share_url": "https://m.tiktok.com/v/6827849641770487045.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827849641770487045", + "user_digged": 0, + "statistics": { + "aweme_id": "6827849641770487045", + "comment_count": 17707, + "digg_count": 1887903, + "download_count": 83320, + "play_count": 34991864, + "share_count": 100190, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 33200 + }, + "status": { + "aweme_id": "6827849641770487045", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 7, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 8, + "end": 19, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 20, + "end": 30, + "type": 1, + "hashtag_name": "mommylife", + "hashtag_id": "64098", + "is_commerce": false + }, + { + "start": 31, + "end": 46, + "type": 1, + "hashtag_name": "dropyourweapon", + "hashtag_id": "34307074", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=20200618130947010115151099012423EC" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6827849641770487045.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827849641770487045", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out MellsanL’s video! #TikTok > ", + "share_desc": "Check out MellsanL's video! #TikTok", + "share_title": "Check out MellsanL’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8055, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6727587242724181000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "SE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6827849641770487045", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6823747474319035654", + "desc": "Plz do not disturb 😅☀️🌊🍸", + "create_time": 1588777519, + "author": { + "uid": "6532736547437941760", + "short_id": "21779986136", + "nickname": "just sul", + "signature": "📸 FOLLOW ME ON IG\n👨🏾🏭engineer by day, pimp by night🤵🏾✨ \n📬 me@justsul.com", + "avatar_thumb": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "justsul", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "ZM", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=20200618130947010115151099012423EC" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mpak-suse1.akamaized.net/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mpak-suse1.akamaized.net/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA0RaIJJFUzImR5pOs56EBlwgh4pJ1rigLkrmfzeQDtMVrkqv77gfBMRiiLqWNJvQj", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6823747457067896000, + "id_str": "6823747457067895558", + "title": "original sound - justsul", + "author": "just sul", + "album": "", + "cover_hd": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/abfd8a1462e3a31b05735149d060b36c.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/abfd8a1462e3a31b05735149d060b36c.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 20, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6532736547437941760", + "owner_nickname": "just sul", + "is_original": false, + "mid": "6823747457067895558", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "justsul", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAA0RaIJJFUzImR5pOs56EBlwgh4pJ1rigLkrmfzeQDtMVrkqv77gfBMRiiLqWNJvQj", + "avatar_thumb": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "s3://musically-prod/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/357/icon_6532736547437941760-pZOW2tko4M.jpg" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v090448e0000bqpd45gp685h0p3p4cp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090448e0000bqpd45gp685h0p3p4cp0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090448e0000bqpd45gp685h0p3p4cp0_h264_540p_2029215", + "data_size": 5212293 + }, + "cover": { + "uri": "tos-maliva-p-0068/00766b13b48b47bbba2ea9b87bf4432f", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/00766b13b48b47bbba2ea9b87bf4432f~noop.webp?x-expires=1592658000&x-signature=pnRRJ3%2BWfNxTKnqCsR7c6mSSSoc%3D&l=20200618130947010115151099012423EC" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/9a2514454db34b148ca67a413074d10e_1588777521", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/9a2514454db34b148ca67a413074d10e_1588777521?x-expires=1592658000&x-signature=YkWUpV59%2FoVH0n%2Bf7HxyKubyJJk%3D&l=20200618130947010115151099012423EC" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/2b412c5b15b44dc4a6059034e75cb1ee_1588777521", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/2b412c5b15b44dc4a6059034e75cb1ee_1588777521~noop.image?x-expires=1592658000&x-signature=GrXg3yJ7uwhb4PUyc8zRo1MSX58%3D&l=20200618130947010115151099012423EC" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090448e0000bqpd45gp685h0p3p4cp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090448e0000bqpd45gp685h0p3p4cp0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5310515 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2029215, + "play_addr": { + "uri": "v090448e0000bqpd45gp685h0p3p4cp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090448e0000bqpd45gp685h0p3p4cp0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090448e0000bqpd45gp685h0p3p4cp0_h264_540p_2029215", + "data_size": 5212293 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1122476, + "play_addr": { + "uri": "v090448e0000bqpd45gp685h0p3p4cp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090448e0000bqpd45gp685h0p3p4cp0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090448e0000bqpd45gp685h0p3p4cp0_h264_540p_1122476", + "data_size": 2883220 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 751126, + "play_addr": { + "uri": "v090448e0000bqpd45gp685h0p3p4cp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090448e0000bqpd45gp685h0p3p4cp0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090448e0000bqpd45gp685h0p3p4cp0_h264_540p_751126", + "data_size": 1929363 + }, + "is_h265": 0 + } + ], + "duration": 20549, + "download_suffix_logo_addr": { + "uri": "v090448e0000bqpd45gp685h0p3p4cp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090448e0000bqpd45gp685h0p3p4cp0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5372812 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507408, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090448e0000bqpd45gp685h0p3p4cp0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090448e0000bqpd45gp685h0p3p4cp0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":5408524}}\n" + }, + "share_url": "https://m.tiktok.com/v/6823747474319035654.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6823747474319035654", + "user_digged": 0, + "statistics": { + "aweme_id": "6823747474319035654", + "comment_count": 2243, + "digg_count": 303858, + "download_count": 19701, + "play_count": 2868904, + "share_count": 18180, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 9460 + }, + "status": { + "aweme_id": "6823747474319035654", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=20200618130947010115151099012423EC" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6823747474319035654.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6823747474319035654", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out just sul’s video! #TikTok > ", + "share_desc": "Check out just sul's video! #TikTok", + "share_title": "Check out just sul’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 20549, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6532736547437941760,\"author_country\":\"Zambia\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6532736547437942000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "ZM", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6823747229950463237", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "20200618130947010115151099012423EC" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.de/assets/i18#lang_de/ch.json b/config.de/assets/i18#lang_de/ch.json new file mode 100644 index 0000000..ae0ee65 --- /dev/null +++ b/config.de/assets/i18#lang_de/ch.json @@ -0,0 +1,988 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837245528225484038", + "desc": "periodt!!! but like also stop @larrayeeee @bradypotter", + "create_time": 1591920286, + "author": { + "uid": "6703550784929793030", + "short_id": "43772482888", + "nickname": "addison rae", + "signature": "follow me on instagram for a kiss \nyoutube- Addison Rae", + "avatar_thumb": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "addisonre", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAVjQK614JSGmZVT3EVAiSDfznaBJOVfWPrtqDsQ9YxU368ewQrTyyEOb3OtJb4xCI", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6825734897517235000, + "id_str": "6825734897517234949", + "title": "GOOBA", + "author": "6ix9ine", + "album": "GOOBA", + "cover_hd": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/ac5e9f21d47503af5fb1a6d02ed57665.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/ac5e9f21d47503af5fb1a6d02ed57665.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"apple_song_id\":1511894046,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6825734897517234949", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1511894046", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 1.4, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_1938248", + "data_size": 2019413 + }, + "cover": { + "uri": "tos-maliva-p-0068/79fcf143dbc64359a07f70cb8b56c7df", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/79fcf143dbc64359a07f70cb8b56c7df~noop.webp?x-expires=1592658000&x-signature=lvfsSwS%2FU1GNxSxIrWrH4bGpYAA%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/99aad2bdbe754ccfb068e0f63915627b_1591920287", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/99aad2bdbe754ccfb068e0f63915627b_1591920287?x-expires=1592658000&x-signature=2PmjKblxkOEgGgUYB41573%2BttQw%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/98f55c6937e0462bb0551fb3c707a63c_1591920288", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/98f55c6937e0462bb0551fb3c707a63c_1591920288~noop.image?x-expires=1592658000&x-signature=CvYVJ3SBlx35pvK61d8dk2YTIug%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2060897 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1938248, + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_1938248", + "data_size": 2019413 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1146989, + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_1146989", + "data_size": 1195020 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 836445, + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_836445", + "data_size": 871472 + }, + "is_h265": 0 + } + ], + "duration": 8335, + "download_suffix_logo_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2128378 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507397, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brhccvlg8091hndrc43g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2169091}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837245528225484038.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837245528225484038", + "user_digged": 0, + "statistics": { + "aweme_id": "6837245528225484038", + "comment_count": 205829, + "digg_count": 12164765, + "download_count": 398012, + "play_count": 104645446, + "share_count": 670381, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 56814 + }, + "status": { + "aweme_id": "6837245528225484038", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 31, + "end": 42, + "user_id": "8757225", + "type": 0, + "sec_uid": "MS4wLjABAAAAEhVnyJg5jMwcWNGTz3Es0QS5Zgy8xSHYUx5tIslXo-w" + }, + { + "start": 43, + "end": 55, + "user_id": "6639537028701650949", + "type": 0, + "sec_uid": "MS4wLjABAAAAdWHA40lL5xikxdV7lOlzPk8AuMCe_OVA1EL2QTiA9efwXeDCL5XlVMO-ec8SOU21" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837245528225484038.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837245528225484038", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out addison rae’s video! #TikTok > ", + "share_desc": "Check out addison rae's video! #TikTok", + "share_title": "Check out addison rae’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8335, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6703550784929793000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837245528225484038", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575903, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309371\",\"mv_info\":{\"id\":\"309371\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040661823F883" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.de/assets/i18#lang_de/default.json b/config.de/assets/i18#lang_de/default.json new file mode 100644 index 0000000..7b39000 --- /dev/null +++ b/config.de/assets/i18#lang_de/default.json @@ -0,0 +1,1047 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838543641825283333", + "desc": "Übers Geländer?!😱🤯 #waitforit #fürdich #viral", + "create_time": 1592222521, + "author": { + "uid": "6664894458910425093", + "short_id": "45401983616", + "nickname": "SENDDICTED", + "signature": "Thomas | 23 🇩🇪\n🔥CEO of cliffjumping🤘🏼\n⬇️ Schaut auch auf YouTube vorbei!⬇️", + "avatar_thumb": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "senddicted", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "DE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1655085640501253", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1655085640501253" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + } + ], + "language": "de", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAwe5H3_gAb16KGIbHwmBGtMvaNc2wMWbKnlMOaRlrtKb0eaWu46vY6mU-AXH9xV7L", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6515231601595518000, + "id_str": "6515231601595517698", + "title": "Believer [NSG Remix]", + "author": "Romy Wave", + "album": "", + "cover_hd": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1590632695033858.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1590632695033858.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 141, + "start_time": 0, + "end_time": 0, + "duration": 44, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6515231601595517698", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617286365010966", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617286365010966" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 7, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "18474", + "cha_name": "waitforit", + "desc": "Wait till the end, to find out the surprise. 🤔", + "schema": "aweme://aweme/challenge/detail?cid=18474", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/18474.html?name=waitforit&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=18474", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #waitforit Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #waitforit Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: waitforit", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/fbe71967963542743b12940221371e62", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_3586752", + "data_size": 4603148 + }, + "cover": { + "uri": "tos-maliva-p-0068/6be2dabb7b244b0bade4b75abb1c05d8", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/6be2dabb7b244b0bade4b75abb1c05d8~noop.webp?x-expires=1592658000&x-signature=6Y%2BLWVVR4ySHsA7yfDfSSDQ4F2g%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/2c10c27ad20e49bd9a02f58e23757bb1_1592222523", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/2c10c27ad20e49bd9a02f58e23757bb1_1592222523?x-expires=1592658000&x-signature=9wMi6wiE1FIC8ciIR1KMy2p2%2FSo%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/4e17020e4de34d369b8a3ef3f98ed88a_1592222523", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/4e17020e4de34d369b8a3ef3f98ed88a_1592222523~noop.image?x-expires=1592658000&x-signature=v5H8Gu22kPJrNDd0boql25c8u44%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4663775 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 3586752, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_3586752", + "data_size": 4603148 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1934979, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_1934979", + "data_size": 2483304 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 1303777, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_1303777", + "data_size": 1673235 + }, + "is_h265": 0 + } + ], + "duration": 10267, + "download_suffix_logo_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4721548 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507402, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brjm6ck45u0f2vkvibv0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4794553}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838543641825283333.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838543641825283333", + "user_digged": 0, + "statistics": { + "aweme_id": "6838543641825283333", + "comment_count": 5760, + "digg_count": 705338, + "download_count": 10716, + "play_count": 22081082, + "share_count": 20459, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 10760 + }, + "status": { + "aweme_id": "6838543641825283333", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 21, + "end": 31, + "type": 1, + "hashtag_name": "waitforit", + "hashtag_id": "18474", + "is_commerce": false + }, + { + "start": 32, + "end": 40, + "type": 1, + "hashtag_name": "fürdich", + "hashtag_id": "5457735", + "is_commerce": false + }, + { + "start": 41, + "end": 47, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838543641825283333.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838543641825283333", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out SENDDICTED’s video! #TikTok > ", + "share_desc": "Check out SENDDICTED's video! #TikTok", + "share_title": "Check out SENDDICTED’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10267, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": true, + "risk_sink": false, + "type": 1, + "content": "The action in this video could result in serious injury." + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6664894458910425000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "DE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838543641825283333", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "de", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6807003825057189125", + "desc": "🦠 #stayhome", + "create_time": 1584879085, + "author": { + "uid": "270663756496687104", + "short_id": "21513944006", + "nickname": "donya dadrasan", + "signature": "Music chick | Pisces 💘", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "donya.dadrasan", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AU", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655786245686277~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA9mmAavWeZJMWEEo3EwmuxGSWvgv50rY-Qa2NEGKnmsWgCc8nT2tKOLEZ9T3eRHLJ", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6806994814832283000, + "id_str": "6806994814832282373", + "title": "original sound - donya.dadrasan", + "author": "donya dadrasan", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655786245686277~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655786245686277~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1661863534508069.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1661863534508069.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 59, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "270663756496687104", + "owner_nickname": "donya dadrasan", + "is_original": false, + "mid": "6806994814832282373", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "donya.dadrasan", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAA9mmAavWeZJMWEEo3EwmuxGSWvgv50rY-Qa2NEGKnmsWgCc8nT2tKOLEZ9T3eRHLJ", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655786245686277~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655786245686277~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "367950", + "cha_name": "stayhome", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=367950", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/367950.html?name=stayhome&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=367950", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #stayhome Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #stayhome Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: stayhome", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044930000bprlb59o1k5sp61i9mm0_h264_540p_1577364", + "data_size": 11642329 + }, + "cover": { + "uri": "tos-maliva-p-0068/89746f5dda8c417c8bd7c2ce4c78eced_1584879093", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/89746f5dda8c417c8bd7c2ce4c78eced_1584879093~noop.webp?x-expires=1592658000&x-signature=5msQOR49qUJGLHjCPPu6PGF4X2Y%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/ac937fc38a7846948f1e0f77b935745b_1584879091", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/ac937fc38a7846948f1e0f77b935745b_1584879091?x-expires=1592658000&x-signature=pxSFyVrS1H1ogSgNdRbQ3BIqtmc%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/ca6414be0605402abe1c660a6c59111f_1584879091", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ca6414be0605402abe1c660a6c59111f_1584879091~noop.image?x-expires=1592658000&x-signature=oaWNeCPtHnV%2BKhsFwvsb9oagaNc%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 9027133 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1577364, + "play_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044930000bprlb59o1k5sp61i9mm0_h264_540p_1577364", + "data_size": 11642329 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 891595, + "play_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044930000bprlb59o1k5sp61i9mm0_h264_540p_891595", + "data_size": 6580755 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 631606, + "play_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044930000bprlb59o1k5sp61i9mm0_h264_540p_631606", + "data_size": 4661809 + }, + "is_h265": 0 + } + ], + "duration": 59047, + "download_suffix_logo_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 9069244 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507451, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044930000bprlb59o1k5sp61i9mm0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":12223775}}\n" + }, + "share_url": "https://m.tiktok.com/v/6807003825057189125.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6807003825057189125", + "user_digged": 0, + "statistics": { + "aweme_id": "6807003825057189125", + "comment_count": 269, + "digg_count": 12231, + "download_count": 1486, + "play_count": 117852, + "share_count": 659, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 149 + }, + "status": { + "aweme_id": "6807003825057189125", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 3, + "end": 12, + "type": 1, + "hashtag_name": "stayhome", + "hashtag_id": "367950", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6807003825057189125.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6807003825057189125", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out donya dadrasan’s video! #TikTok > ", + "share_desc": "Check out donya dadrasan's video! #TikTok", + "share_title": "Check out donya dadrasan’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 59047, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":270663756496687104,\"author_country\":\"Australia\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 270663756496687100, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AU", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6807003825057189125", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485793000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309510101151331370A23DDB4" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.de/resources.arsc b/config.de/resources.arsc new file mode 100644 index 0000000..d1814c5 Binary files /dev/null and b/config.de/resources.arsc differ diff --git a/config.en/AndroidManifest.xml b/config.en/AndroidManifest.xml new file mode 100644 index 0000000..740bb2a Binary files /dev/null and b/config.en/AndroidManifest.xml differ diff --git a/config.en/META-INF/BNDLTOOL.RSA b/config.en/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..bb83294 Binary files /dev/null and b/config.en/META-INF/BNDLTOOL.RSA differ diff --git a/config.en/META-INF/BNDLTOOL.SF b/config.en/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..03117da --- /dev/null +++ b/config.en/META-INF/BNDLTOOL.SF @@ -0,0 +1,44 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: y46HAJ3HPnMdp7YM5/RzHb4usz0= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: 7JUAdyXGAhFrmUDIn8WBvyXrp7w= + +Name: assets/i18#lang_en/ae.json +SHA1-Digest: HoyOHCR5ImZKakH64z2U2C3sPKQ= + +Name: assets/i18#lang_en/au.json +SHA1-Digest: Fs5hqSzZ48Y/8drK73KAA6scEak= + +Name: assets/i18#lang_en/bd.json +SHA1-Digest: 6azVYjxYKn93Q5h2xivURfow5m0= + +Name: assets/i18#lang_en/ca.json +SHA1-Digest: +y9vKlHAPjhSFDrxJZilESU5g5Q= + +Name: assets/i18#lang_en/default.json +SHA1-Digest: xO77F0sfUaXzQWDwwh8o2QUD/bU= + +Name: assets/i18#lang_en/gb.json +SHA1-Digest: 8DTElbCt46+CVItiD18Qo3NLD1U= + +Name: assets/i18#lang_en/in.json +SHA1-Digest: xFgLlr3EXVYEx+OF6AGJHQ0/mF0= + +Name: assets/i18#lang_en/mm.json +SHA1-Digest: NRMi3cfWYbqxJ7DWDgtQqJrkQDg= + +Name: assets/i18#lang_en/my.json +SHA1-Digest: ycM8n7rMeJOpDGFOkl4qAT0ghp4= + +Name: assets/i18#lang_en/ph.json +SHA1-Digest: XsiO5mB+6UrETvpOcgmAijNDGU8= + +Name: assets/i18#lang_en/pk.json +SHA1-Digest: eN8CkuVaisStHudYEogv4IDXTsc= + +Name: resources.arsc +SHA1-Digest: 4g0Fiuh8QY1lpLK44gr2j44R26g= + diff --git a/config.en/META-INF/MANIFEST.MF b/config.en/META-INF/MANIFEST.MF new file mode 100644 index 0000000..ebbb514 --- /dev/null +++ b/config.en/META-INF/MANIFEST.MF @@ -0,0 +1,43 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: DEKjW0rXucB16LUlpvkCFVbYj4w= + +Name: assets/i18#lang_en/ae.json +SHA1-Digest: DAkEfFmro71iWYe7XCEk2bPu5RY= + +Name: assets/i18#lang_en/au.json +SHA1-Digest: uv/XMVbZUh4NTGJQZlW1WN6qtRA= + +Name: assets/i18#lang_en/bd.json +SHA1-Digest: SKukPLs1CI2bYzooLnofHU6X1qI= + +Name: assets/i18#lang_en/ca.json +SHA1-Digest: 1MRaME6amSk0e1t/d9govPRKv30= + +Name: assets/i18#lang_en/default.json +SHA1-Digest: dAsKbeyfIsx2YRmwQFI9qIDP8oM= + +Name: assets/i18#lang_en/gb.json +SHA1-Digest: BwA0Hrqux/FtmUCq8wkAnXybguk= + +Name: assets/i18#lang_en/in.json +SHA1-Digest: Kn9cAWP9K8Yai5WgQ9lIZ9bnnEw= + +Name: assets/i18#lang_en/mm.json +SHA1-Digest: NGKh3jVZGQp69aE9esjlOwlO0x8= + +Name: assets/i18#lang_en/my.json +SHA1-Digest: 1WwDimCrl4eZGt5rdevCFNsWZI8= + +Name: assets/i18#lang_en/ph.json +SHA1-Digest: AmpSsyyWunIjz3KmNt65v47rgGg= + +Name: assets/i18#lang_en/pk.json +SHA1-Digest: TaWX/6RcEguy0rjA37mqdgtSf+4= + +Name: resources.arsc +SHA1-Digest: qh7aB//jBqH4YE7azMga4jYRorE= + diff --git a/config.en/assets/i18#lang_en/ae.json b/config.en/assets/i18#lang_en/ae.json new file mode 100644 index 0000000..6778286 --- /dev/null +++ b/config.en/assets/i18#lang_en/ae.json @@ -0,0 +1,1116 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6829726651178405126", + "desc": "A Real Gold Nissan GTR !!! YouTube: Mo Vlogs ⭐️ #foryoupage #foryou #4u #tiktok", + "create_time": 1590169653, + "author": { + "uid": "6673856298192552965", + "short_id": "40408303864", + "nickname": "Lana Rose ", + "signature": "Lana.rose.business@gmail.com", + "avatar_thumb": { + "uri": "musically-maliva-obj/1666487686115334", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666487686115334~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1666487686115334", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666487686115334~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Public Figure", + "unique_id": "lana.rose786", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151331391B240D7E" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1666487686115334", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666487686115334~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1666487686115334", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666487686115334~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAgVMFSn2qgqYjvEbnIjMrSiSfNFhFnFpkO0ezhcrX8BHGUb8N_Bli0oOBZT4VJJ37", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6594233508997107000, + "id_str": "6594233508997106433", + "title": "Run free", + "author": "Deep Chills feat. IVIE", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1630338234147841.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1630338234147841.PNG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1630338234147841.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1630338234147841.PNG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1630338234147841.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tiktok-obj/1630338234147841.PNG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1630338234147841.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1630338234147841.PNG.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/2585a83fe4feaf841eb2fd066ee83983.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/2585a83fe4feaf841eb2fd066ee83983.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 74, + "start_time": 0, + "end_time": 0, + "duration": 12, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1640769805153283\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1640769805137927\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1640769813455940\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1640769813474312\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6594233508997106433", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/1617240276164615", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/1617240276164615" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "avatar_thumb": { + "uri": "tiktok-obj/1639183709144065", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1639183709144065.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1639183709144065", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1639183709144065.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1639183709144065", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1639183709144065.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 53.9, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "88764338", + "cha_name": "foryoupage", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=88764338", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/88764338.html?name=foryoupage&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=88764338", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryoupage Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryoupage Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryoupage", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044d80000br40ufm0bkbm2pdi50i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br40ufm0bkbm2pdi50i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d80000br40ufm0bkbm2pdi50i0_h264_540p_3217385", + "data_size": 4846187 + }, + "cover": { + "uri": "tos-maliva-p-0068/8ae79dfe35ce4464a155f23967a15bcb_1590169656", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8ae79dfe35ce4464a155f23967a15bcb_1590169656~noop.webp?x-expires=1592658000&x-signature=DIF%2B6M5Gc9GqUKzbz9mGvbsnHiE%3D&l=202006181309480101151331391B240D7E" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/f252ff3e25ee476e8bac30ba0c294c93_1590169656", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/f252ff3e25ee476e8bac30ba0c294c93_1590169656?x-expires=1592658000&x-signature=svl7qNzhBV0gLNXWsPZ2bEUXa5Y%3D&l=202006181309480101151331391B240D7E" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/1322001492e54e1ca8f759e2ec4918db_1590169656", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/1322001492e54e1ca8f759e2ec4918db_1590169656~noop.image?x-expires=1592658000&x-signature=61oj7MdUD22tZojQuTN8chKz8mE%3D&l=202006181309480101151331391B240D7E" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044d80000br40ufm0bkbm2pdi50i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br40ufm0bkbm2pdi50i0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4798544 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 3217385, + "play_addr": { + "uri": "v09044d80000br40ufm0bkbm2pdi50i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br40ufm0bkbm2pdi50i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d80000br40ufm0bkbm2pdi50i0_h264_540p_3217385", + "data_size": 4846187 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1866773, + "play_addr": { + "uri": "v09044d80000br40ufm0bkbm2pdi50i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br40ufm0bkbm2pdi50i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d80000br40ufm0bkbm2pdi50i0_h264_540p_1866773", + "data_size": 2811827 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 1246882, + "play_addr": { + "uri": "v09044d80000br40ufm0bkbm2pdi50i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br40ufm0bkbm2pdi50i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d80000br40ufm0bkbm2pdi50i0_h264_540p_1246882", + "data_size": 1878117 + }, + "is_h265": 0 + } + ], + "duration": 12050, + "download_suffix_logo_addr": { + "uri": "v09044d80000br40ufm0bkbm2pdi50i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br40ufm0bkbm2pdi50i0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4884860 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507402, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044d80000br40ufm0bkbm2pdi50i0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br40ufm0bkbm2pdi50i0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4957168}}\n" + }, + "share_url": "https://m.tiktok.com/v/6829726651178405126.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829726651178405126", + "user_digged": 0, + "statistics": { + "aweme_id": "6829726651178405126", + "comment_count": 4427, + "digg_count": 549401, + "download_count": 21991, + "play_count": 10227304, + "share_count": 11101, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 3907 + }, + "status": { + "aweme_id": "6829726651178405126", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 48, + "end": 59, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 60, + "end": 67, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 68, + "end": 71, + "type": 1, + "hashtag_name": "4u", + "hashtag_id": "43268", + "is_commerce": false + }, + { + "start": 72, + "end": 79, + "type": 1, + "hashtag_name": "tiktok", + "hashtag_id": "23428", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151331391B240D7E" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6829726651178405126.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829726651178405126", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Lana Rose ’s video! #TikTok > ", + "share_desc": "Check out Lana Rose 's video! #TikTok", + "share_title": "Check out Lana Rose ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12050, + "aweme_type": 55, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6673856298192553000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829726651178405126", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6821958772093684997", + "desc": "#lovedubai #illu #uae #tiktoklover #viral", + "create_time": 1588361054, + "author": { + "uid": "6574778872955699206", + "short_id": "30365734864", + "nickname": "Futaim ", + "signature": "", + "avatar_thumb": { + "uri": "musically-maliva-obj/6b3eaf2834fbfd9ff595f8311cdbf11a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/6b3eaf2834fbfd9ff595f8311cdbf11a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/6b3eaf2834fbfd9ff595f8311cdbf11a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/6b3eaf2834fbfd9ff595f8311cdbf11a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "fatimaali376", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151331391B240D7E" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/6b3eaf2834fbfd9ff595f8311cdbf11a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/6b3eaf2834fbfd9ff595f8311cdbf11a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/6b3eaf2834fbfd9ff595f8311cdbf11a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/6b3eaf2834fbfd9ff595f8311cdbf11a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAp6FxaHaNBjBXGmR3THAJPsX-jvNbC4yFmF4VhaxQN-x0stESQMIWdx-jSt25gok8", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6759144895614701000, + "id_str": "6759144895614700290", + "title": "original sound - ameer_hamza143", + "author": "Ameer Hamza", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1650192384660530.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1650192384660530.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 29, + "extra": "{\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6578371187621543941", + "owner_nickname": "Ameer Hamza", + "is_original": false, + "mid": "6759144895614700290", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "ameer_hamza143", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1653225099973634", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1653225099973634" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAdBp6i0C4UUOk1vA6OMvbDc1WaNROPP7mgoXUWiQxyQ3N3YcYM3VY_-thR92GchP3", + "avatar_thumb": { + "uri": "tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/25022f921c0353a1ad9026cf86ac3ff4.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "4096288", + "cha_name": "lovedubai", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=4096288", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/4096288.html?name=lovedubai&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=4096288", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #lovedubai Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #lovedubai Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: lovedubai", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044f50000bqm7e9lg809b5jlf28a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f50000bqm7e9lg809b5jlf28a0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f50000bqm7e9lg809b5jlf28a0_h264_540p_2500364", + "data_size": 3448628 + }, + "cover": { + "uri": "tos-maliva-p-0068/6615fcbbb2a74f6fa76bdf18edcdffd9", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/6615fcbbb2a74f6fa76bdf18edcdffd9~noop.webp?x-expires=1592658000&x-signature=PuTYt%2FnuqcEQaP5oCb7eiF%2Bp72g%3D&l=202006181309480101151331391B240D7E" + ], + "width": 720, + "height": 720 + }, + "height": 540, + "width": 960, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/90d997f46a844774abd06edb9d86c358_1588361056", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/90d997f46a844774abd06edb9d86c358_1588361056?x-expires=1592658000&x-signature=ojjWjSHBW6eR%2FMY03tPhLQZQriw%3D&l=202006181309480101151331391B240D7E" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/ab9d3c66bc00424485d1b3c7aee17349_1588361056", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ab9d3c66bc00424485d1b3c7aee17349_1588361056~noop.image?x-expires=1592658000&x-signature=HVI0S8ekn4%2BybB1Cpno%2BXREUIWQ%3D&l=202006181309480101151331391B240D7E" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044f50000bqm7e9lg809b5jlf28a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f50000bqm7e9lg809b5jlf28a0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3481463 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2500364, + "play_addr": { + "uri": "v09044f50000bqm7e9lg809b5jlf28a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f50000bqm7e9lg809b5jlf28a0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f50000bqm7e9lg809b5jlf28a0_h264_540p_2500364", + "data_size": 3448628 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1364868, + "play_addr": { + "uri": "v09044f50000bqm7e9lg809b5jlf28a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f50000bqm7e9lg809b5jlf28a0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f50000bqm7e9lg809b5jlf28a0_h264_540p_1364868", + "data_size": 1882495 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 959713, + "play_addr": { + "uri": "v09044f50000bqm7e9lg809b5jlf28a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f50000bqm7e9lg809b5jlf28a0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f50000bqm7e9lg809b5jlf28a0_h264_540p_959713", + "data_size": 1323685 + }, + "is_h265": 0 + } + ], + "duration": 11034, + "download_suffix_logo_addr": { + "uri": "v09044f50000bqm7e9lg809b5jlf28a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f50000bqm7e9lg809b5jlf28a0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3553341 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401 + }, + "share_url": "https://m.tiktok.com/v/6821958772093684997.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6821958772093684997", + "user_digged": 0, + "statistics": { + "aweme_id": "6821958772093684997", + "comment_count": 121, + "digg_count": 12153, + "download_count": 2763, + "play_count": 136207, + "share_count": 3143, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2409 + }, + "status": { + "aweme_id": "6821958772093684997", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 10, + "type": 1, + "hashtag_name": "lovedubai", + "hashtag_id": "4096288", + "is_commerce": false + }, + { + "start": 11, + "end": 16, + "type": 1, + "hashtag_name": "illu", + "hashtag_id": "5152318", + "is_commerce": false + }, + { + "start": 17, + "end": 21, + "type": 1, + "hashtag_name": "uae", + "hashtag_id": "11946", + "is_commerce": false + }, + { + "start": 22, + "end": 34, + "type": 1, + "hashtag_name": "tiktoklover", + "hashtag_id": "1610759778551814", + "is_commerce": false + }, + { + "start": 35, + "end": 41, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151331391B240D7E" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6821958772093684997.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6821958772093684997", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Futaim ’s video! #TikTok > ", + "share_desc": "Check out Futaim 's video! #TikTok", + "share_title": "Check out Futaim ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 11034, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6574778872955699206,\"author_country\":\"United Arab Emirates\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6574778872955699000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6821958772093684997", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101151331391B240D7E" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/assets/i18#lang_en/au.json b/config.en/assets/i18#lang_en/au.json new file mode 100644 index 0000000..d85b85e --- /dev/null +++ b/config.en/assets/i18#lang_en/au.json @@ -0,0 +1,1039 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6828356531696749829", + "desc": "reposting cause they took it down", + "create_time": 1589850647, + "author": { + "uid": "6631468310313943045", + "short_id": "42767209464", + "nickname": "LazarBeam ", + "signature": "follow me on Instagram for free vbucks", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "lazarbeam", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AU", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151761430C238C4C" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAcFeR8LSWKVqLO865lfOT243AxeICHFQJ1oWq4gJ4QxnuBB4lfAOZQz4RKYa88-U2", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6828356499736137000, + "id_str": "6828356499736136453", + "title": "original sound - lazarbeam", + "author": "LazarBeam ", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/f7ef14680f428fa99e9c8ef88f1a65ad.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/f7ef14680f428fa99e9c8ef88f1a65ad.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6631468310313943045", + "owner_nickname": "LazarBeam ", + "is_original": false, + "mid": "6828356499736136453", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "lazarbeam", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAcFeR8LSWKVqLO865lfOT243AxeICHFQJ1oWq4gJ4QxnuBB4lfAOZQz4RKYa88-U2", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1655939698549765", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655939698549765~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044830000br1j43k45u07pnsgito0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044830000br1j43k45u07pnsgito0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044830000br1j43k45u07pnsgito0_h264_540p_1224540", + "data_size": 1428580 + }, + "cover": { + "uri": "tos-maliva-p-0068/ec514c7bd1e64abf85ab0a0d79668982", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ec514c7bd1e64abf85ab0a0d79668982~noop.webp?x-expires=1592658000&x-signature=oolCX4tPgvqUTRwMU3LGA5UfrPk%3D&l=202006181309480101151761430C238C4C" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/7f80923909ae422eb768ba62fa924cf9_1589850650", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/7f80923909ae422eb768ba62fa924cf9_1589850650?x-expires=1592658000&x-signature=nYmvmpkC0qwVsODUuubejDMNJlY%3D&l=202006181309480101151761430C238C4C" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/be5a91c28524443687f5ba38532dd2a4_1589850650", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/be5a91c28524443687f5ba38532dd2a4_1589850650~noop.image?x-expires=1592658000&x-signature=Xzs%2Fcr9Czjbgd8plmYhFoQ5Z64A%3D&l=202006181309480101151761430C238C4C" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044830000br1j43k45u07pnsgito0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044830000br1j43k45u07pnsgito0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1483291 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1224540, + "play_addr": { + "uri": "v09044830000br1j43k45u07pnsgito0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044830000br1j43k45u07pnsgito0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044830000br1j43k45u07pnsgito0_h264_540p_1224540", + "data_size": 1428580 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 700429, + "play_addr": { + "uri": "v09044830000br1j43k45u07pnsgito0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044830000br1j43k45u07pnsgito0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044830000br1j43k45u07pnsgito0_h264_540p_700429", + "data_size": 817139 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 508746, + "play_addr": { + "uri": "v09044830000br1j43k45u07pnsgito0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044830000br1j43k45u07pnsgito0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044830000br1j43k45u07pnsgito0_h264_540p_508746", + "data_size": 593516 + }, + "is_h265": 0 + } + ], + "duration": 9333, + "download_suffix_logo_addr": { + "uri": "v09044830000br1j43k45u07pnsgito0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044830000br1j43k45u07pnsgito0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1550219 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044830000br1j43k45u07pnsgito0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044830000br1j43k45u07pnsgito0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1593627}}\n" + }, + "share_url": "https://m.tiktok.com/v/6828356531696749829.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6828356531696749829", + "user_digged": 0, + "statistics": { + "aweme_id": "6828356531696749829", + "comment_count": 38817, + "digg_count": 2947796, + "download_count": 34480, + "play_count": 18874997, + "share_count": 53485, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 4529 + }, + "status": { + "aweme_id": "6828356531696749829", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151761430C238C4C" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6828356531696749829.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6828356531696749829", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out LazarBeam ’s video! #TikTok > ", + "share_desc": "Check out LazarBeam 's video! #TikTok", + "share_title": "Check out LazarBeam ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9333, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6631468310313943000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AU", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6828356531696749829", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6836209773751422209", + "desc": "#dirilişertuğrul #viral #1million ##standwithkashmir #foryoupage #burhan_tv #kuchkuch", + "create_time": 1591679126, + "author": { + "uid": "6800836429708477442", + "short_id": "34320620897", + "nickname": "Dirilis ertugrul", + "signature": "💥جدوجہد ہماری مگر فتح اللہ کی 💥", + "avatar_thumb": { + "uri": "tiktok-obj/ae7b1b0ff16b6b300e1eca223b73501c", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/ae7b1b0ff16b6b300e1eca223b73501c.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/ae7b1b0ff16b6b300e1eca223b73501c", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/ae7b1b0ff16b6b300e1eca223b73501c.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "ertugrul__ghazi1", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151761430C238C4C" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/ae7b1b0ff16b6b300e1eca223b73501c", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/ae7b1b0ff16b6b300e1eca223b73501c~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/ae7b1b0ff16b6b300e1eca223b73501c", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/ae7b1b0ff16b6b300e1eca223b73501c~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAAg6KPg3Gv74RSkgvISDb69U94LsSA05Aw-hdDBnBs1dq8joYK6eAPQ6zt4Mecu0b", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6796233373980397000, + "id_str": "6796233373980396289", + "title": "original sound - saeedkhan0011", + "author": "saeed khan", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1659237091821618.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1659237091821618.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 10, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6684926235632567302", + "owner_nickname": "saeed khan", + "is_original": false, + "mid": "6796233373980396289", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "saeedkhan0011", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAW3bUwxfOkUr6aZutmCQEWDfekfobuTg2FTA-f08HytbkMKnEGrNuLTNDlcDFwQQ3", + "avatar_thumb": { + "uri": "tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/97b388738c05c5cbbc0d2b1c7f7953c4.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "23280551", + "cha_name": "dirilişertuğrul", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=23280551", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/23280551.html?name=dirili%C5%9Fertu%C4%9Frul&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=23280551", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #dirilişertuğrul Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #dirilişertuğrul Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: dirilişertuğrul", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044fa0000brfhfigdmjt06tacofd0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brfhfigdmjt06tacofd0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fa0000brfhfigdmjt06tacofd0_h264_540p_476986", + "data_size": 609171 + }, + "cover": { + "uri": "tos-maliva-p-0068/c181756f31784c65a71154858ac430bf", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/c181756f31784c65a71154858ac430bf~noop.webp?x-expires=1592658000&x-signature=Ff5nnKVhjkaJ3HEgpPqoa4CCXLI%3D&l=202006181309480101151761430C238C4C" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/d959332e02384d7a90887b5a883fa4c8_1591679128", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/d959332e02384d7a90887b5a883fa4c8_1591679128?x-expires=1592658000&x-signature=CDRqwMaYUr0R%2BAXHk5DL20RhpRY%3D&l=202006181309480101151761430C238C4C" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/28afc50252824cbdb5dccfeaff065a92_1591679128", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/28afc50252824cbdb5dccfeaff065a92_1591679128~noop.image?x-expires=1592658000&x-signature=ZR7kqPupB6IHU2FzEx%2F%2F18%2FKs%2Bc%3D&l=202006181309480101151761430C238C4C" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044fa0000brfhfigdmjt06tacofd0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brfhfigdmjt06tacofd0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 709018 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 476986, + "play_addr": { + "uri": "v09044fa0000brfhfigdmjt06tacofd0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brfhfigdmjt06tacofd0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fa0000brfhfigdmjt06tacofd0_h264_540p_476986", + "data_size": 609171 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 268714, + "play_addr": { + "uri": "v09044fa0000brfhfigdmjt06tacofd0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brfhfigdmjt06tacofd0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fa0000brfhfigdmjt06tacofd0_h264_540p_268714", + "data_size": 343182 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 185895, + "play_addr": { + "uri": "v09044fa0000brfhfigdmjt06tacofd0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brfhfigdmjt06tacofd0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fa0000brfhfigdmjt06tacofd0_h264_540p_185895", + "data_size": 237412 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v09044fa0000brfhfigdmjt06tacofd0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brfhfigdmjt06tacofd0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 777276 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399 + }, + "share_url": "https://m.tiktok.com/v/6836209773751422209.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836209773751422209", + "user_digged": 0, + "statistics": { + "aweme_id": "6836209773751422209", + "comment_count": 80, + "digg_count": 39789, + "download_count": 6068, + "play_count": 423783, + "share_count": 1720, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1407 + }, + "status": { + "aweme_id": "6836209773751422209", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 16, + "type": 1, + "hashtag_name": "dirilişertuğrul", + "hashtag_id": "23280551", + "is_commerce": false + }, + { + "start": 17, + "end": 23, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + }, + { + "start": 24, + "end": 33, + "type": 1, + "hashtag_name": "1million", + "hashtag_id": "1618875494896645", + "is_commerce": false + }, + { + "start": 35, + "end": 52, + "type": 1, + "hashtag_name": "standwithkashmir", + "hashtag_id": "1624626732781573", + "is_commerce": false + }, + { + "start": 53, + "end": 64, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 65, + "end": 75, + "type": 1, + "hashtag_name": "burhan_tv", + "hashtag_id": "1640911455753222", + "is_commerce": false + }, + { + "start": 76, + "end": 85, + "type": 1, + "hashtag_name": "kuchkuch", + "hashtag_id": "5389285", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151761430C238C4C" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6836209773751422209.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836209773751422209", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Dirilis ertugrul’s video! #TikTok > ", + "share_desc": "Check out Dirilis ertugrul's video! #TikTok", + "share_title": "Check out Dirilis ertugrul’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6800836429708477442,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6800836429708477000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836209773751422209", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"green_screen\":0,\"mv_id\":\"309379\",\"mv_info\":{\"id\":\"309379\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101151761430C238C4C" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/assets/i18#lang_en/bd.json b/config.en/assets/i18#lang_en/bd.json new file mode 100644 index 0000000..1eed4db --- /dev/null +++ b/config.en/assets/i18#lang_en/bd.json @@ -0,0 +1,1008 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6815462678069267718", + "desc": "", + "create_time": 1586848567, + "author": { + "uid": "6589505432171233286", + "short_id": "30667709976", + "nickname": "🍁🍁🍁omi🍁🍁🍁", + "signature": "actor❤ dancer❤ muser❤\n my Instagram 🆔 :omishamimaafrin.\n❤dhaka Bangladeshi❤", + "avatar_thumb": { + "uri": "tiktok-obj/deaf0214fc79d15ad472ce00c510e5fa", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/deaf0214fc79d15ad472ce00c510e5fa.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/deaf0214fc79d15ad472ce00c510e5fa", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/deaf0214fc79d15ad472ce00c510e5fa.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "shamimaafrinomi", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "BD", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101151192350A23AE81" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/deaf0214fc79d15ad472ce00c510e5fa", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/deaf0214fc79d15ad472ce00c510e5fa~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/deaf0214fc79d15ad472ce00c510e5fa", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/deaf0214fc79d15ad472ce00c510e5fa~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAxhoaZgnTexN15bGPAxANZWKGxZaIBCmvuOs-th36KO_RdzGaDhZsBe0Ov1NxJ-Sm", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6784311018169355000, + "id_str": "6784311018169355013", + "title": "original sound - alisayedfaruk", + "author": "RaKiB", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1656326761377813.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1656326761377813.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 14, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6584997513258319878", + "owner_nickname": "RaKiB", + "is_original": false, + "mid": "6784311018169355013", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "alisayedfaruk", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656537659065346", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656537659065346" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAfgvNQgx4gbYPHlAO3DVoMwEb56k_zO3guqm0jWK1mNvkYQxQanuFdbMxofkowmA5", + "avatar_thumb": { + "uri": "tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/661c4dae1b5eb0c5c38e88853c5ca5db.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v090448a0000bqam58c45u0600c75bbg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v090448a0000bqam58c45u0600c75bbg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090448a0000bqam58c45u0600c75bbg_h264_540p_2762237", + "data_size": 5163313 + }, + "cover": { + "uri": "tos-maliva-p-0068/702134531993449eb774eb54a820359c_1586848573", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/702134531993449eb774eb54a820359c_1586848573~noop.webp?x-expires=1592658000&x-signature=HAiP9iPya9JIpv1RY3mDFFbhhgY%3D&l=202006181309490101151192350A23AE81" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/375175d9397b4a529db8cfc40bd040cd_1586848573", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/375175d9397b4a529db8cfc40bd040cd_1586848573?x-expires=1592658000&x-signature=qLYcjp%2F881EQaUtdL83xSZJ%2BfDU%3D&l=202006181309490101151192350A23AE81" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/c5f674235afa4a9988d3798e430ae0b4_1586848572", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/c5f674235afa4a9988d3798e430ae0b4_1586848572~noop.image?x-expires=1592658000&x-signature=iEbqrNLjsBNECZV6DQQ9%2BQILtjU%3D&l=202006181309490101151192350A23AE81" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090448a0000bqam58c45u0600c75bbg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v090448a0000bqam58c45u0600c75bbg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090448a0000bqam58c45u0600c75bbg_h264_540p_2762237", + "data_size": 5163313 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1380254, + "play_addr": { + "uri": "v090448a0000bqam58c45u0600c75bbg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v090448a0000bqam58c45u0600c75bbg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090448a0000bqam58c45u0600c75bbg_h264_540p_1380254", + "data_size": 2580040 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 907257, + "play_addr": { + "uri": "v090448a0000bqam58c45u0600c75bbg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v090448a0000bqam58c45u0600c75bbg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090448a0000bqam58c45u0600c75bbg_h264_540p_907257", + "data_size": 1695892 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 659894, + "play_addr": { + "uri": "v090448a0000bqam58c45u0600c75bbg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v090448a0000bqam58c45u0600c75bbg&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090448a0000bqam58c45u0600c75bbg_h264_480p_659894", + "data_size": 1233508 + }, + "is_h265": 0 + } + ], + "duration": 14954, + "download_suffix_logo_addr": { + "uri": "v090448a0000bqam58c45u0600c75bbg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v090448a0000bqam58c45u0600c75bbg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3761418 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403 + }, + "share_url": "https://m.tiktok.com/v/6815462678069267718.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6815462678069267718", + "user_digged": 0, + "statistics": { + "aweme_id": "6815462678069267718", + "comment_count": 620, + "digg_count": 86088, + "download_count": 1740, + "play_count": 2097143, + "share_count": 1913, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 56 + }, + "status": { + "aweme_id": "6815462678069267718", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101151192350A23AE81" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6815462678069267718.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6815462678069267718", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 🍁🍁🍁omi🍁🍁🍁’s video! #TikTok > ", + "share_desc": "Check out 🍁🍁🍁omi🍁🍁🍁's video! #TikTok", + "share_title": "Check out 🍁🍁🍁omi🍁🍁🍁’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 14954, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6589505432171233000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "BD", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6815462678069267718", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "hi", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6829592898464500998", + "desc": "ওমর সানী#bdtiktok", + "create_time": 1590138515, + "author": { + "uid": "6824550101915386885", + "short_id": "49048435656", + "nickname": "Omar Sani", + "signature": "", + "avatar_thumb": { + "uri": "musically-maliva-obj/1666150272964613", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666150272964613~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1666150272964613", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666150272964613~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "omarsani03", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "BD", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101151192350A23AE81" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1666150272964613", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666150272964613~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1666150272964613", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666150272964613~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAqNc6qLMZRRSpdGdTXdI87-MdsbLKd5e7d7vAPiE3mvb04TJa6uuRu7d4JL6fYpJn", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6739400405068959000, + "id_str": "6739400405068958470", + "title": "original sound - the_raj_muser_king", + "author": "🔱...Tiger...🔱", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1659119848088582", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659119848088582~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1659119848088582", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659119848088582~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1659119848088582", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659119848088582~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1659119848088582", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659119848088582~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1645360437487622.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1645360437487622.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 17, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6561764260070146053", + "owner_nickname": "🔱...Tiger...🔱", + "is_original": false, + "mid": "6739400405068958470", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "the_raj_muser_king", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1645558847782914", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1645558847782914" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAowQG76Ks0ttX0sychn7Lkw0ApFB3BZTpgVVB5vTC7vsGtXjn10l7YwQOgvG6YKKI", + "avatar_thumb": { + "uri": "musically-maliva-obj/1659119848088582", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659119848088582~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1659119848088582", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659119848088582~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1659119848088582", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659119848088582~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1598916930144257", + "cha_name": "bdtiktok", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1598916930144257", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1598916930144257.html?name=bdtiktok&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1598916930144257", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #bdtiktok Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #bdtiktok Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: bdtiktok", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044880000br3pcvq6aghev3tuo5gg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v09044880000br3pcvq6aghev3tuo5gg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3pcvq6aghev3tuo5gg_h264_540p_1228777", + "data_size": 2749850 + }, + "cover": { + "uri": "tos-maliva-p-0068/ecf75014d97b4d8fb4c5cb579499e1cc", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ecf75014d97b4d8fb4c5cb579499e1cc~noop.webp?x-expires=1592658000&x-signature=7MfAE8pufSoFkVwiTgDVZPEvP98%3D&l=202006181309490101151192350A23AE81" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/f07347a11c82483c961877f934a1ce20_1590138518", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/f07347a11c82483c961877f934a1ce20_1590138518?x-expires=1592658000&x-signature=sORZuw7bR4ZKRswhYSYLMmhV0Ms%3D&l=202006181309490101151192350A23AE81" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/eed6203c5a4c49508f560e50a6b8561a_1590138517", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/eed6203c5a4c49508f560e50a6b8561a_1590138517~noop.image?x-expires=1592658000&x-signature=4XaZBbWVrUNOXTGrI37JYNCCAJg%3D&l=202006181309490101151192350A23AE81" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044880000br3pcvq6aghev3tuo5gg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v09044880000br3pcvq6aghev3tuo5gg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3pcvq6aghev3tuo5gg_h264_540p_1228777", + "data_size": 2749850 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 693263, + "play_addr": { + "uri": "v09044880000br3pcvq6aghev3tuo5gg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v09044880000br3pcvq6aghev3tuo5gg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3pcvq6aghev3tuo5gg_h264_540p_693263", + "data_size": 1551437 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 497343, + "play_addr": { + "uri": "v09044880000br3pcvq6aghev3tuo5gg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v09044880000br3pcvq6aghev3tuo5gg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3pcvq6aghev3tuo5gg_h264_540p_497343", + "data_size": 1112992 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 368801, + "play_addr": { + "uri": "v09044880000br3pcvq6aghev3tuo5gg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v09044880000br3pcvq6aghev3tuo5gg&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3pcvq6aghev3tuo5gg_h264_480p_368801", + "data_size": 825332 + }, + "is_h265": 0 + } + ], + "duration": 17903, + "download_suffix_logo_addr": { + "uri": "v09044880000br3pcvq6aghev3tuo5gg", + "url_list": [ + "https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v09044880000br3pcvq6aghev3tuo5gg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2962172 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507407, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044880000br3pcvq6aghev3tuo5gg\",\"url_list\":[\"https://0pbxmo.xzcs3zlph.com/aweme/v1/play/?video_id=v09044880000br3pcvq6aghev3tuo5gg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3057006}}\n" + }, + "share_url": "https://m.tiktok.com/v/6829592898464500998.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829592898464500998", + "user_digged": 0, + "statistics": { + "aweme_id": "6829592898464500998", + "comment_count": 1741, + "digg_count": 136309, + "download_count": 3097, + "play_count": 2402331, + "share_count": 2611, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 177 + }, + "status": { + "aweme_id": "6829592898464500998", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 8, + "end": 17, + "type": 1, + "hashtag_name": "bdtiktok", + "hashtag_id": "1598916930144257", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101151192350A23AE81" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6829592898464500998.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829592898464500998", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Omar Sani’s video! #TikTok > ", + "share_desc": "Check out Omar Sani's video! #TikTok", + "share_title": "Check out Omar Sani’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 17903, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6824550101915387000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "BD", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829592898464500998", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "bn", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309490101151192350A23AE81" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/assets/i18#lang_en/ca.json b/config.en/assets/i18#lang_en/ca.json new file mode 100644 index 0000000..8499540 --- /dev/null +++ b/config.en/assets/i18#lang_en/ca.json @@ -0,0 +1,1000 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837284920138697990", + "desc": "When she knows you too well @jenafrumes", + "create_time": 1591929459, + "author": { + "uid": "21609287", + "short_id": "21758544594", + "nickname": "Jason Derulo", + "signature": "IG: jasonderulo\nSavage Love OUT NOW", + "avatar_thumb": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "jasonderulo", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAC5mIlEsDQSlfaWV6PSINVnfJOJz-eGhbAffi9TDrURw", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6795008547961753000, + "id_str": "6795008547961752326", + "title": "Ultra Instinct", + "author": "AdamDevito", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6631791650333310981", + "owner_nickname": "AdamDevito", + "is_original": false, + "mid": "6795008547961752326", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "adamdevito", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhZfDfpjGD4wtumUrvXYWkXyptLg3ojx-QJLuFcKmJLuC7-_lWU3BWB7kH2U00Egz", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "cover": { + "uri": "tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462~noop.webp?x-expires=1592658000&x-signature=6dByh3utXF%2FtkxCOsraCGeNMHfI%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463?x-expires=1592658000&x-signature=u%2FP4vH0drvWb83WYAkNu27hTMio%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461~noop.image?x-expires=1592658000&x-signature=iSC%2Bii7l2mOHRif%2F9nm64AmEL%2B4%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2112636 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1924466, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1076800, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1076800", + "data_size": 1131313 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 763213, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_763213", + "data_size": 801851 + }, + "is_h265": 0 + } + ], + "duration": 8405, + "download_suffix_logo_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2181877 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507397, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brhekmc45u0f2vn03o5g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2238071}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "user_digged": 0, + "statistics": { + "aweme_id": "6837284920138697990", + "comment_count": 23400, + "digg_count": 5665744, + "download_count": 77381, + "play_count": 59110271, + "share_count": 136584, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 35030 + }, + "status": { + "aweme_id": "6837284920138697990", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 28, + "end": 39, + "user_id": "8021707", + "type": 0, + "sec_uid": "MS4wLjABAAAAQ7HxcSD0aFjrh-8XtCI7p5Fz5oqF1Iuxd_gU81_Y_sw" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Jason Derulo’s video! #TikTok > ", + "share_desc": "Check out Jason Derulo's video! #TikTok", + "share_title": "Check out Jason Derulo’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8405, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 21609287, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837284920138697990", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575904, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309341\",\"mv_info\":{\"id\":\"309341\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\",\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101151761471D23C5A1" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/assets/i18#lang_en/default.json b/config.en/assets/i18#lang_en/default.json new file mode 100644 index 0000000..cc1939c --- /dev/null +++ b/config.en/assets/i18#lang_en/default.json @@ -0,0 +1,1194 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837284920138697990", + "desc": "When she knows you too well @jenafrumes", + "create_time": 1591929459, + "author": { + "uid": "21609287", + "short_id": "21758544594", + "nickname": "Jason Derulo", + "signature": "IG: jasonderulo\nSavage Love OUT NOW", + "avatar_thumb": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "jasonderulo", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1656115901452294~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAC5mIlEsDQSlfaWV6PSINVnfJOJz-eGhbAffi9TDrURw", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6795008547961753000, + "id_str": "6795008547961752326", + "title": "Ultra Instinct", + "author": "AdamDevito", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6631791650333310981", + "owner_nickname": "AdamDevito", + "is_original": false, + "mid": "6795008547961752326", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "adamdevito", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhZfDfpjGD4wtumUrvXYWkXyptLg3ojx-QJLuFcKmJLuC7-_lWU3BWB7kH2U00Egz", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "cover": { + "uri": "tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462~noop.webp?x-expires=1592658000&x-signature=6dByh3utXF%2FtkxCOsraCGeNMHfI%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463?x-expires=1592658000&x-signature=u%2FP4vH0drvWb83WYAkNu27hTMio%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461~noop.image?x-expires=1592658000&x-signature=iSC%2Bii7l2mOHRif%2F9nm64AmEL%2B4%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2112636 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1924466, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1076800, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1076800", + "data_size": 1131313 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 763213, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_763213", + "data_size": 801851 + }, + "is_h265": 0 + } + ], + "duration": 8405, + "download_suffix_logo_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2181877 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507396, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brhekmc45u0f2vn03o5g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2238071}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "user_digged": 0, + "statistics": { + "aweme_id": "6837284920138697990", + "comment_count": 23400, + "digg_count": 5665744, + "download_count": 77381, + "play_count": 59110271, + "share_count": 136584, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 35030 + }, + "status": { + "aweme_id": "6837284920138697990", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 28, + "end": 39, + "user_id": "8021707", + "type": 0, + "sec_uid": "MS4wLjABAAAAQ7HxcSD0aFjrh-8XtCI7p5Fz5oqF1Iuxd_gU81_Y_sw" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Jason Derulo’s video! #TikTok > ", + "share_desc": "Check out Jason Derulo's video! #TikTok", + "share_title": "Check out Jason Derulo’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8405, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 21609287, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837284920138697990", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6829682692141927682", + "desc": "Spread the Word Of God ❤️ #xyzbca #fyp #viral #christian #makethisviral #christianlife #bible #JesusChrist #foryoupage#motivationph", + "create_time": 1590159420, + "author": { + "uid": "6806009756420867074", + "short_id": "34475225769", + "nickname": "🔱 Julian 🔱", + "signature": "TRY EVERYTHING ✊🏻❤️\nTeamYacult 🇵🇭", + "avatar_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "theboynextdoor17", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PH", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/f55c32a9831d751451d9ef0401eac582~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/f55c32a9831d751451d9ef0401eac582~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAISzScRJu4ca1DBwV0Uz0uDF1ya3fH57Uto0AYKk-H9M4gx5GzfeNmam5b1eHg-UQ", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6829682715177127000, + "id_str": "6829682715177126658", + "title": "original sound - theboynextdoor17", + "author": "🔱 Julian 🔱", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/244e3c5d284fb5c92fb259f8085f0d30.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/244e3c5d284fb5c92fb259f8085f0d30.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 59, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6806009756420867074", + "owner_nickname": "🔱 Julian 🔱", + "is_original": false, + "mid": "6829682715177126658", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "theboynextdoor17", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAISzScRJu4ca1DBwV0Uz0uDF1ya3fH57Uto0AYKk-H9M4gx5GzfeNmam5b1eHg-UQ", + "avatar_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1652484531221509", + "cha_name": "xyzbca", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1652484531221509", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1652484531221509.html?name=xyzbca&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1652484531221509", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #xyzbca Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #xyzbca Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: xyzbca", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_406634", + "data_size": 3001419 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/57e398ba015844eb9d0ddd9f649bad9d", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/57e398ba015844eb9d0ddd9f649bad9d.webp?x-expires=1592658000&x-signature=7z6fr0EM45xTOD0J2qcG0QV5pmY%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/a3232cc88b2b49108181bfadf713e093_1590159424", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/a3232cc88b2b49108181bfadf713e093_1590159424?x-expires=1592658000&x-signature=Vc%2FR9%2FXp%2F4W9bXTFBUTFLWeda8I%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/37684e30819e4a939384d4d25f7fd2b7_1590159423", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/37684e30819e4a939384d4d25f7fd2b7_1590159423.jpeg?x-expires=1592658000&x-signature=BhIptB7SUNUSmbCA3xuGuYy51wE%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6283469 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 406634, + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_406634", + "data_size": 3001419 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 281182, + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_281182", + "data_size": 2075441 + }, + "is_h265": 0 + } + ], + "duration": 59049, + "download_suffix_logo_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6347309 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507447, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v070256f0000br3udca8kv9o4hm5eg3g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":6611241}}\n" + }, + "share_url": "https://m.tiktok.com/v/6829682692141927682.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829682692141927682", + "user_digged": 0, + "statistics": { + "aweme_id": "6829682692141927682", + "comment_count": 247279, + "digg_count": 2154633, + "download_count": 85515, + "play_count": 7985990, + "share_count": 309395, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 5520 + }, + "status": { + "aweme_id": "6829682692141927682", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 26, + "end": 33, + "type": 1, + "hashtag_name": "xyzbca", + "hashtag_id": "1652484531221509", + "is_commerce": false + }, + { + "start": 34, + "end": 38, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 39, + "end": 45, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + }, + { + "start": 46, + "end": 56, + "type": 1, + "hashtag_name": "christian", + "hashtag_id": "46249", + "is_commerce": false + }, + { + "start": 57, + "end": 71, + "type": 1, + "hashtag_name": "makethisviral", + "hashtag_id": "335768", + "is_commerce": false + }, + { + "start": 72, + "end": 86, + "type": 1, + "hashtag_name": "christianlife", + "hashtag_id": "272517", + "is_commerce": false + }, + { + "start": 87, + "end": 93, + "type": 1, + "hashtag_name": "bible", + "hashtag_id": "10593", + "is_commerce": false + }, + { + "start": 94, + "end": 106, + "type": 1, + "hashtag_name": "JesusChrist", + "hashtag_id": "8521", + "is_commerce": false + }, + { + "start": 107, + "end": 118, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 118, + "end": 131, + "type": 1, + "hashtag_name": "motivationph", + "hashtag_id": "1656355848758273", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6829682692141927682.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829682692141927682", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 🔱 Julian 🔱’s video! #TikTok > ", + "share_desc": "Check out 🔱 Julian 🔱's video! #TikTok", + "share_title": "Check out 🔱 Julian 🔱’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 59049, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6806009756420867074,\"author_country\":\"Philippines\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6806009756420867000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PH", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829682692141927682", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-56.6667,\"end_time\":7100,\"p\":-1,\"y\":-259.9467,\"h\":0.091,\"start_time\":4666.6667,\"r\":0,\"w\":0.5936,\"s\":0.8849}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":-69.1741,\"end_time\":7633.3333,\"p\":-1,\"y\":92.5157,\"h\":0.0975,\"start_time\":6300,\"r\":0,\"w\":0.5004,\"s\":0.6445}]", + "attr": "" + }, + { + "type": 5, + "index": 2, + "track_info": "[{\"x\":44.88,\"end_time\":7333.3333,\"p\":-1,\"y\":10.6106,\"h\":0.0727,\"start_time\":5566.6667,\"r\":0,\"w\":0.6366,\"s\":0.7075}]", + "attr": "" + }, + { + "type": 5, + "index": 3, + "track_info": "[{\"x\":0,\"end_time\":2833.3333,\"p\":-1,\"y\":-244.7608,\"h\":0.1413,\"start_time\":0,\"r\":0,\"w\":0.8289,\"s\":0.9338}]", + "attr": "" + }, + { + "type": 5, + "index": 4, + "track_info": "[{\"x\":-1.8056,\"end_time\":10000,\"p\":-1,\"y\":128.4765,\"h\":0.1287,\"start_time\":8600,\"r\":0,\"w\":0.7731,\"s\":1.2517}]", + "attr": "" + }, + { + "type": 5, + "index": 5, + "track_info": "[{\"x\":43.1009,\"end_time\":16066.6667,\"p\":-1,\"y\":-1.1269,\"h\":0.0989,\"start_time\":14900,\"r\":0,\"w\":0.6277,\"s\":0.9623}]", + "attr": "" + }, + { + "type": 5, + "index": 6, + "track_info": "[{\"x\":-67.6883,\"end_time\":14800,\"p\":-1,\"y\":-51.4412,\"h\":0.1098,\"start_time\":12866.6667,\"r\":0,\"w\":0.5611,\"s\":0.7573}]", + "attr": "" + }, + { + "type": 5, + "index": 7, + "track_info": "[{\"x\":0,\"end_time\":19900,\"p\":-1,\"y\":-182.2443,\"h\":0.1222,\"start_time\":18133.3333,\"r\":0,\"w\":0.7868,\"s\":0.8434}]", + "attr": "" + }, + { + "type": 5, + "index": 8, + "track_info": "[{\"x\":1.8676,\"end_time\":17833.3333,\"p\":-1,\"y\":-263.4976,\"h\":0.1267,\"start_time\":16266.6667,\"r\":0,\"w\":0.7734,\"s\":0.8744}]", + "attr": "" + }, + { + "type": 5, + "index": 9, + "track_info": "[{\"x\":0,\"end_time\":21166.6667,\"p\":-1,\"y\":-155.2009,\"h\":0.1577,\"start_time\":20000,\"r\":0,\"w\":0.7674,\"s\":1.0425}]", + "attr": "" + }, + { + "type": 5, + "index": 10, + "track_info": "[{\"x\":-18.7926,\"end_time\":25000,\"p\":-1,\"y\":-206.074,\"h\":0.1387,\"start_time\":23966.6667,\"r\":0,\"w\":0.814,\"s\":0.8982}]", + "attr": "" + }, + { + "type": 5, + "index": 11, + "track_info": "[{\"x\":7.9925,\"end_time\":27466.6667,\"p\":-1,\"y\":113.0216,\"h\":0.1177,\"start_time\":25566.6667,\"r\":0,\"w\":0.6277,\"s\":0.7778}]", + "attr": "" + }, + { + "type": 5, + "index": 12, + "track_info": "[{\"x\":0,\"end_time\":33133.3333,\"p\":-1,\"y\":-105.1051,\"h\":0.1945,\"start_time\":29900,\"r\":0,\"w\":0.9415,\"s\":1.0225}]", + "attr": "" + }, + { + "type": 5, + "index": 13, + "track_info": "[{\"x\":-2.5062,\"end_time\":49466.6667,\"p\":-1,\"y\":-231.806,\"h\":0.1351,\"start_time\":35566.6667,\"r\":0,\"w\":0.7709,\"s\":0.8928}]", + "attr": "" + }, + { + "type": 5, + "index": 14, + "track_info": "[{\"x\":-115.5485,\"end_time\":50000,\"p\":-1,\"y\":-288.1337,\"h\":0.0999,\"start_time\":33000,\"r\":0,\"w\":0.4511,\"s\":1.0027}]", + "attr": "" + }, + { + "type": 5, + "index": 15, + "track_info": "[{\"x\":0,\"end_time\":12733.3333,\"p\":-1,\"y\":-247.28,\"h\":0.1697,\"start_time\":10433.3333,\"r\":0,\"w\":0.7301,\"s\":0.8495}]", + "attr": "" + }, + { + "type": 5, + "index": 16, + "track_info": "[{\"x\":-2.5,\"end_time\":49833.3333,\"p\":-1,\"y\":-174.28,\"h\":0.1265,\"start_time\":39366.6667,\"r\":0,\"w\":0.7439,\"s\":0.8365}]", + "attr": "" + }, + { + "type": 5, + "index": 17, + "track_info": "[{\"x\":0,\"end_time\":49633.3333,\"p\":-1,\"y\":-110.5673,\"h\":0.137,\"start_time\":46400,\"r\":0,\"w\":0.8027,\"s\":0.9059}]", + "attr": "" + }, + { + "type": 5, + "index": 18, + "track_info": "[{\"x\":28.3888,\"end_time\":53566.6667,\"p\":-1,\"y\":-45.7408,\"h\":0.1406,\"start_time\":52166.6667,\"r\":0,\"w\":0.8441,\"s\":0.9298}]", + "attr": "" + }, + { + "type": 5, + "index": 19, + "track_info": "[{\"x\":-58.9199,\"end_time\":52300,\"p\":-1,\"y\":-182.3874,\"h\":0.1358,\"start_time\":50666.6667,\"r\":0,\"w\":0.6862,\"s\":0.9373}]", + "attr": "" + }, + { + "type": 5, + "index": 20, + "track_info": "[{\"x\":-5.6135,\"end_time\":56133.3333,\"p\":-1,\"y\":89.1711,\"h\":0.1558,\"start_time\":53866.6667,\"r\":0,\"w\":0.7726,\"s\":1.5632}]", + "attr": "" + }, + { + "type": 5, + "index": 21, + "track_info": "[{\"x\":-48.9282,\"end_time\":23233.3333,\"p\":-1,\"y\":-13.2555,\"h\":0.1332,\"start_time\":21333.3333,\"r\":0,\"w\":0.7328,\"s\":0.8807}]", + "attr": "" + }, + { + "type": 5, + "index": 22, + "track_info": "[{\"x\":40.0669,\"end_time\":29633.3333,\"p\":-1,\"y\":-113.6177,\"h\":0.1343,\"start_time\":27800,\"r\":0,\"w\":0.7314,\"s\":0.8876}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040561C23DEA0" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/assets/i18#lang_en/gb.json b/config.en/assets/i18#lang_en/gb.json new file mode 100644 index 0000000..cfdf4ed --- /dev/null +++ b/config.en/assets/i18#lang_en/gb.json @@ -0,0 +1,873 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6831555842794392837", + "desc": "Lockdowns really weighing me down 🤦🏻‍♂️😫🤣", + "create_time": 1590595545, + "author": { + "uid": "8817005", + "short_id": "21615402976", + "nickname": "OllyMurs", + "signature": "", + "avatar_thumb": { + "uri": "musically-maliva-obj/943930e609878888f62611138046578b", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/943930e609878888f62611138046578b~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/943930e609878888f62611138046578b", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/943930e609878888f62611138046578b~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "ollymurs", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "GB", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813095201011522808204246EEB" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/943930e609878888f62611138046578b", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/943930e609878888f62611138046578b~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/943930e609878888f62611138046578b", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/943930e609878888f62611138046578b~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAABFHfdHctIl4BxGMZmBq0BGWxRRqtCDJ961SnHjDxJF0", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 271971535991648260, + "id_str": "271971535991648257", + "title": "original sound - moliiiner", + "author": "Moliii🧡", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/5534dce7a537492659946dd468248775", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/5534dce7a537492659946dd468248775~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/5534dce7a537492659946dd468248775", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/5534dce7a537492659946dd468248775~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/5534dce7a537492659946dd468248775", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/5534dce7a537492659946dd468248775~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/5534dce7a537492659946dd468248775", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/5534dce7a537492659946dd468248775~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://mpak-suse1.muscdn.com/track/reg02/2017/09/12/11/271971535983226880_LyGPtLhxIF.mp3", + "url_list": [ + "https://mpak-suse1.muscdn.com/track/reg02/2017/09/12/11/271971535983226880_LyGPtLhxIF.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 14, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "249022654156861440", + "owner_nickname": "Moliii🧡", + "is_original": false, + "mid": "271971535991648257", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "moliiiner", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617286763127813", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617286763127813" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAASJBFE0BZroODH1Wf6sUkXnj1QeRPOtxOlz0L0FFm9kwzH7ILd_8XdiN0cTcLA9rM", + "avatar_thumb": { + "uri": "musically-maliva-obj/5534dce7a537492659946dd468248775", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/5534dce7a537492659946dd468248775~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/5534dce7a537492659946dd468248775", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/5534dce7a537492659946dd468248775~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/5534dce7a537492659946dd468248775", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/5534dce7a537492659946dd468248775~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044880000br78vga73oo12v93lmsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br78vga73oo12v93lmsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br78vga73oo12v93lmsg_h264_540p_1132216", + "data_size": 2014355 + }, + "cover": { + "uri": "tos-maliva-p-0068/9eec1942cbab4665ab7190426b6c9be3_1590595547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/9eec1942cbab4665ab7190426b6c9be3_1590595547~noop.webp?x-expires=1592658000&x-signature=e9T9vdsSvHfGj7ZHgIcLZwWWvWw%3D&l=2020061813095201011522808204246EEB" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/6a666658e86c4694898ce92877f39d94_1590595548", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/6a666658e86c4694898ce92877f39d94_1590595548?x-expires=1592658000&x-signature=eACv4JjjgfD%2FlF5vqHhll9RJ%2BQA%3D&l=2020061813095201011522808204246EEB" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/51cc2bd5793f4bc388aca9fc4ad27e74_1590595547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/51cc2bd5793f4bc388aca9fc4ad27e74_1590595547~noop.image?x-expires=1592658000&x-signature=z1%2BICTwlf3EvebmKPledDfvugM8%3D&l=2020061813095201011522808204246EEB" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044880000br78vga73oo12v93lmsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br78vga73oo12v93lmsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2086751 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1132216, + "play_addr": { + "uri": "v09044880000br78vga73oo12v93lmsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br78vga73oo12v93lmsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br78vga73oo12v93lmsg_h264_540p_1132216", + "data_size": 2014355 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 632627, + "play_addr": { + "uri": "v09044880000br78vga73oo12v93lmsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br78vga73oo12v93lmsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br78vga73oo12v93lmsg_h264_540p_632627", + "data_size": 1125524 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 446793, + "play_addr": { + "uri": "v09044880000br78vga73oo12v93lmsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br78vga73oo12v93lmsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br78vga73oo12v93lmsg_h264_540p_446793", + "data_size": 794902 + }, + "is_h265": 0 + } + ], + "duration": 14233, + "download_suffix_logo_addr": { + "uri": "v09044880000br78vga73oo12v93lmsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br78vga73oo12v93lmsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2153282 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507408, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044880000br78vga73oo12v93lmsg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br78vga73oo12v93lmsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2211984}}\n" + }, + "share_url": "https://m.tiktok.com/v/6831555842794392837.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831555842794392837", + "user_digged": 0, + "statistics": { + "aweme_id": "6831555842794392837", + "comment_count": 6481, + "digg_count": 469212, + "download_count": 7600, + "play_count": 6354811, + "share_count": 15542, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 8234 + }, + "status": { + "aweme_id": "6831555842794392837", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813095201011522808204246EEB" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6831555842794392837.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831555842794392837", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out OllyMurs’s video! #TikTok > ", + "share_desc": "Check out OllyMurs's video! #TikTok", + "share_title": "Check out OllyMurs’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 14233, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 8817005, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "GB", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6831555842794392837", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6838134577224027393", + "desc": "ini ngapa sih lidahnya kaya gitu hadeh🙈#fypシ", + "create_time": 1592127277, + "author": { + "uid": "6697021771499209730", + "short_id": "32016778385", + "nickname": "@susy🍃", + "signature": "tetap bersyukur dengan apa yang kita miliki🕊", + "avatar_thumb": { + "uri": "tiktok-obj/1664830168906754", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664830168906754.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664830168906754", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664830168906754.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "unyil07_00", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "ID", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813095201011522808204246EEB" + ], + "width": 720, + "height": 720 + } + ], + "language": "in", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1664830168906754", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664830168906754~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1664830168906754", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664830168906754~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAjOpnJOWMwessLmtzNbUOfDIAeHl5CRH-M8S9HXJcttLO6HBsIt9mq82_L2mJppua", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "cha_list": [ + { + "cid": "1637342470396934", + "cha_name": "fypシ", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1637342470396934", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1637342470396934.html?name=fyp%E3%82%B7&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1637342470396934", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #fypシ Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #fypシ Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: fypシ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025570000briuu13dctmnv9jvf620", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025570000briuu13dctmnv9jvf620&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025570000briuu13dctmnv9jvf620_h264_540p_499984", + "data_size": 931722 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/f5fe908a05b5419fba329d5f319f8053", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/f5fe908a05b5419fba329d5f319f8053.webp?x-expires=1592658000&x-signature=eSRsLTCU%2Fb7sOvlmzv32XmATfbk%3D&l=2020061813095201011522808204246EEB" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "v0201/b593a426a9264f8ea0209c19970f5951_1592127744", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/b593a426a9264f8ea0209c19970f5951_1592127744?x-expires=1592658000&x-signature=b2Dv6cv16WAPy7mkvpqS7h6ovjU%3D&l=2020061813095201011522808204246EEB" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/bba565abf47f47c196d6ed0d612042e6_1592127743", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/bba565abf47f47c196d6ed0d612042e6_1592127743.jpeg?x-expires=1592658000&x-signature=bOwpHcqKh3h6khYnNo4%2BiFfLU2o%3D&l=2020061813095201011522808204246EEB" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025570000briuu13dctmnv9jvf620", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025570000briuu13dctmnv9jvf620&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1724596 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 499984, + "play_addr": { + "uri": "v07025570000briuu13dctmnv9jvf620", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025570000briuu13dctmnv9jvf620&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025570000briuu13dctmnv9jvf620_h264_540p_499984", + "data_size": 931722 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 356846, + "play_addr": { + "uri": "v07025570000briuu13dctmnv9jvf620", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025570000briuu13dctmnv9jvf620&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025570000briuu13dctmnv9jvf620_h264_540p_356846", + "data_size": 664984 + }, + "is_h265": 0 + } + ], + "duration": 14908, + "download_suffix_logo_addr": { + "uri": "v07025570000briuu13dctmnv9jvf620", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025570000briuu13dctmnv9jvf620&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1789781 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507408 + }, + "share_url": "https://m.tiktok.com/v/6838134577224027393.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838134577224027393", + "user_digged": 0, + "statistics": { + "aweme_id": "6838134577224027393", + "comment_count": 132, + "digg_count": 3999, + "download_count": 111, + "play_count": 50347, + "share_count": 40, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 28 + }, + "status": { + "aweme_id": "6838134577224027393", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 40, + "end": 45, + "type": 1, + "hashtag_name": "fypシ", + "hashtag_id": "1637342470396934", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813095201011522808204246EEB" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838134577224027393.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838134577224027393", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out @susy🍃’s video! #TikTok > ", + "share_desc": "Check out @susy🍃's video! #TikTok", + "share_title": "Check out @susy🍃’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 14908, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6697021771499209730,\"author_country\":\"Indonesia\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6697021771499210000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "ID", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838133449740651778", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "id", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485794000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813095201011522808204246EEB" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/assets/i18#lang_en/in.json b/config.en/assets/i18#lang_en/in.json new file mode 100644 index 0000000..a72b378 --- /dev/null +++ b/config.en/assets/i18#lang_en/in.json @@ -0,0 +1,1097 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838127971094514946", + "desc": "Bullet Rani 🔥#foryou #foryoupage #tiktok #tiktokindia #bulletlover @tiktok_india", + "create_time": 1592125739, + "author": { + "uid": "6553102256403742725", + "short_id": "21815329413", + "nickname": "kRashmi18", + "signature": "MH 20 \nTarget 1m \nLet’s talk on Instagram ❤️", + "avatar_thumb": { + "uri": "tiktok-obj/534928d6c7121b07c348562cc768dde0", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/534928d6c7121b07c348562cc768dde0.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/534928d6c7121b07c348562cc768dde0", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/534928d6c7121b07c348562cc768dde0.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "rashmi_k18", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/534928d6c7121b07c348562cc768dde0", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/534928d6c7121b07c348562cc768dde0~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/534928d6c7121b07c348562cc768dde0", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/534928d6c7121b07c348562cc768dde0~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA9bU3W0B8Q_sdWcwa1qrXxq7B8ha9CUyCm-pmjy-EOZFuM4oFfpaM9FWprxd_I20F", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6777458121347567000, + "id_str": "6777458121347566337", + "title": "Moto", + "author": "Diler Kharkiya", + "album": "Moto - Single", + "cover_hd": { + "uri": "tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/f421cf36e20957377b61d1da9013c8c6.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/f421cf36e20957377b61d1da9013c8c6.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1493767746,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6777458121347566337", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1493767746", + "external_song_key": "apple_song_id" + }, + { + "h5_url": "https://s1.ipstatp.com/resso/campaign/tiktok/resso/index.html?id=6780640412233078786&channel=tt&&play_source=dailymix&tiktok_tid=6777458121347566337&hide_nav_bar=1&should_full_screen=1&status_bar_style_type=1&disableBounces=1&callback=snssdk1180://", + "partner_name": "resso", + "partner_song_id": "6780640412233078786", + "external_song_key": "resso_song_id" + } + ], + "preview_start_time": 11.4, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "42164", + "cha_name": "foryou", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=42164", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/42164.html?name=foryou&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=42164", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044570000briuhs87di7ek1jsk6o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000briuhs87di7ek1jsk6o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000briuhs87di7ek1jsk6o0_h264_540p_970713", + "data_size": 1887795 + }, + "cover": { + "uri": "tos-maliva-p-0068/23e7453d11b64b18aa7baa10183fa5ed", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/23e7453d11b64b18aa7baa10183fa5ed~noop.webp?x-expires=1592658000&x-signature=TxDKyUVH2jxWOOFB78A6S5UF4yQ%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/8aa1214c8b8d419c9cb4b90e801e4115_1592125742", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/8aa1214c8b8d419c9cb4b90e801e4115_1592125742?x-expires=1592658000&x-signature=x9Yn41CJlLMyNNOSn7aLKEUt640%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/675a5fbc19c342dfb8484abc625f48b6_1592125742", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/675a5fbc19c342dfb8484abc625f48b6_1592125742~noop.image?x-expires=1592658000&x-signature=fgV6e%2FU%2FV7%2FJWLyTm1xqD4JTSi8%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000briuhs87di7ek1jsk6o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000briuhs87di7ek1jsk6o0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5842829 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 970713, + "play_addr": { + "uri": "v09044570000briuhs87di7ek1jsk6o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000briuhs87di7ek1jsk6o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000briuhs87di7ek1jsk6o0_h264_540p_970713", + "data_size": 1887795 + }, + "is_h265": 0 + } + ], + "duration": 15558, + "download_suffix_logo_addr": { + "uri": "v09044570000briuhs87di7ek1jsk6o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000briuhs87di7ek1jsk6o0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5898590 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404 + }, + "share_url": "https://m.tiktok.com/v/6838127971094514946.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838127971094514946", + "user_digged": 0, + "statistics": { + "aweme_id": "6838127971094514946", + "comment_count": 2886, + "digg_count": 1004828, + "download_count": 76145, + "play_count": 32228950, + "share_count": 50351, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 32719 + }, + "status": { + "aweme_id": "6838127971094514946", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 68, + "end": 81, + "user_id": "8830005", + "type": 0, + "sec_uid": "MS4wLjABAAAA2-EqQ6sc7iAdSxY8qetlsooN771PjeEGfHLMssz7qig" + }, + { + "start": 14, + "end": 21, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 22, + "end": 33, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 34, + "end": 41, + "type": 1, + "hashtag_name": "tiktok", + "hashtag_id": "23428", + "is_commerce": false + }, + { + "start": 42, + "end": 54, + "type": 1, + "hashtag_name": "tiktokindia", + "hashtag_id": "57511693", + "is_commerce": false + }, + { + "start": 55, + "end": 67, + "type": 1, + "hashtag_name": "bulletlover", + "hashtag_id": "62918059", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838127971094514946.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838127971094514946", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out kRashmi18’s video! #TikTok > ", + "share_desc": "Check out kRashmi18's video! #TikTok", + "share_title": "Check out kRashmi18’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15558, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6553102256403743000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838127971094514946", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": [ + { + "keyword": "Play full song", + "schema": "aweme://webview?url=https%3A%2F%2Fs1.ipstatp.com%2Fresso%2Fcampaign%2Ftiktok%2Fresso%2Findex.html%3Fid%3D6780640412233078786%26channel%3Dtt%26%26play_source%3Ddailymix%26tiktok_tid%3D6777458121347566337%26hide_nav_bar%3D1%26should_full_screen%3D1%26status_bar_style_type%3D1%26disableBounces%3D1%26callback%3Dsnssdk1180%3A%2F%2F", + "id": "6780640412233078786", + "type": 23, + "icon": { + "uri": "tiktok-obj/20px_resso_movie.png", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/20px_resso_movie.png?l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "deep_link": "resso://resso.com/playing?track_id=6780640412233078786&channel=tt&play_source=dailymix&callback=snssdk1180://", + "universal_link": "https://h5.resso.app/track?id=6780640412233078786&channel=tt&play_source=dailymix&tiktok_tid=6777458121347566337&callback=snssdk1180://", + "log_extra": "{\"anchor_id\":\"6780640412233078786\",\"anchor_name\":\"\",\"anchor_type\":\"Resso\"}" + } + ], + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6835236532043975937", + "desc": "Mere Stunt Se Impress Hogyi Ladki Aur Khush Hogayi @bhavna_meharoliya #bmx #bmxboy #yusufbmx #sports #bmxlife #bmxyusuf #sports #professionalrider", + "create_time": 1591452524, + "author": { + "uid": "6564987053724844037", + "short_id": "21838871072", + "nickname": "yusufbmx", + "signature": "Professional Bmx Rider \n( India’s Gold Medalist🥇🏆)\nInstagram yusufbmx\nTeamd17", + "avatar_thumb": { + "uri": "tiktok-obj/1663802351152129", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1663802351152129.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1663802351152129", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1663802351152129.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "yusufbmx", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1663802351152129", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1663802351152129~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1663802351152129", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1663802351152129~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAfPi6ZAsJ5FYMDMZK5H0UHGhobOAUk259PzX_uiAku5kb44dUpyTIylnvwmF--hiq", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6703202347612458000, + "id_str": "6703202347612457733", + "title": "Dhola Aayo Re Remix", + "author": "siraj__shaa_04_Dc.👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1636525438520374.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1636525438520374.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 60, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6570759363563094021", + "owner_nickname": "siraj__shaa_04_Dc.👑", + "is_original": false, + "mid": "6703202347612457733", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "siraj__shaa_04_dc", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1636694265122822", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1636694265122822" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAjUn6Br9xD1sqppvvG5cOkVxE574LRc-ycKCxmlwc57eiGJm7Otsi6_0NZ81aDn80", + "avatar_thumb": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "5182", + "cha_name": "bmx", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=5182", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/5182.html?name=bmx&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=5182", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #bmx Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #bmx Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: bmx", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044190000brdq6p1sihv7pafugpgg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brdq6p1sihv7pafugpgg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000brdq6p1sihv7pafugpgg_h264_540p_783229", + "data_size": 1184341 + }, + "cover": { + "uri": "tos-maliva-p-0068/d5456f98fb124b40b61d5840e4641d72", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d5456f98fb124b40b61d5840e4641d72~noop.webp?x-expires=1592658000&x-signature=6waWSm83vF3rFqn40gfEyqHHQcw%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/196a6937185f4928a21fa12f0ddca861_1591452526", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/196a6937185f4928a21fa12f0ddca861_1591452526?x-expires=1592658000&x-signature=OihyMnLT%2B5MNinVMSn2cJCXAhec%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/8a5efe4bdd6c4f4f86e6871cb2c383a7_1591452526", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8a5efe4bdd6c4f4f86e6871cb2c383a7_1591452526~noop.image?x-expires=1592658000&x-signature=z2z2%2FbEa%2FWi0CKtujDXj3JsaQqY%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044190000brdq6p1sihv7pafugpgg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brdq6p1sihv7pafugpgg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2918438 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 783229, + "play_addr": { + "uri": "v09044190000brdq6p1sihv7pafugpgg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brdq6p1sihv7pafugpgg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000brdq6p1sihv7pafugpgg_h264_540p_783229", + "data_size": 1184341 + }, + "is_h265": 0 + } + ], + "duration": 12097, + "download_suffix_logo_addr": { + "uri": "v09044190000brdq6p1sihv7pafugpgg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brdq6p1sihv7pafugpgg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3002244 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044190000brdq6p1sihv7pafugpgg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brdq6p1sihv7pafugpgg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3108286}}\n" + }, + "share_url": "https://m.tiktok.com/v/6835236532043975937.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835236532043975937", + "user_digged": 0, + "statistics": { + "aweme_id": "6835236532043975937", + "comment_count": 5472, + "digg_count": 3448261, + "download_count": 46838, + "play_count": 62117001, + "share_count": 33787, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 14697 + }, + "status": { + "aweme_id": "6835236532043975937", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 51, + "end": 69, + "user_id": "304634295409774592", + "type": 0, + "sec_uid": "MS4wLjABAAAAYy_egCOu1c3WMTHWzulUTtdsifCweDZ93LD9NK6eqLl8PVng7YFpXvwqnuVWWzAM" + }, + { + "start": 70, + "end": 74, + "type": 1, + "hashtag_name": "bmx", + "hashtag_id": "5182", + "is_commerce": false + }, + { + "start": 75, + "end": 82, + "type": 1, + "hashtag_name": "bmxboy", + "hashtag_id": "10925395", + "is_commerce": false + }, + { + "start": 83, + "end": 92, + "type": 1, + "hashtag_name": "yusufbmx", + "hashtag_id": "1619195271390214", + "is_commerce": false + }, + { + "start": 93, + "end": 100, + "type": 1, + "hashtag_name": "sports", + "hashtag_id": "7887", + "is_commerce": false + }, + { + "start": 101, + "end": 109, + "type": 1, + "hashtag_name": "bmxlife", + "hashtag_id": "361108", + "is_commerce": false + }, + { + "start": 110, + "end": 119, + "type": 1, + "hashtag_name": "bmxyusuf", + "hashtag_id": "1655859758096386", + "is_commerce": false + }, + { + "start": 120, + "end": 127, + "type": 1, + "hashtag_name": "sports", + "hashtag_id": "7887", + "is_commerce": false + }, + { + "start": 128, + "end": 146, + "type": 1, + "hashtag_name": "professionalrider", + "hashtag_id": "30801144", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6835236532043975937.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835236532043975937", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out yusufbmx’s video! #TikTok > ", + "share_desc": "Check out yusufbmx's video! #TikTok", + "share_title": "Check out yusufbmx’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12097, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6564987053724844000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6797414166207548674", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "hi", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309490101151192371D23EEF3" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/assets/i18#lang_en/mm.json b/config.en/assets/i18#lang_en/mm.json new file mode 100644 index 0000000..680cd0f --- /dev/null +++ b/config.en/assets/i18#lang_en/mm.json @@ -0,0 +1,980 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6833693438668557574", + "desc": "", + "create_time": 1591093243, + "author": { + "uid": "22752735", + "short_id": "21456689058", + "nickname": "Than Thar Moe Theint", + "signature": "", + "avatar_thumb": { + "uri": "musically-maliva-obj/1652555829537798", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1652555829537798~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1652555829537798", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1652555829537798~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "thantharmoetheint", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "MM", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1652555829537798", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1652555829537798~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1652555829537798", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1652555829537798~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAPP1FwQsLTlge8reTvi8cBDlfr3PN8gTmBXFy-QZ-6Rw", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831469403498958000, + "id_str": "6831469403498957570", + "title": "original sound - Min Htet Khant", + "author": "Min Htet Khant", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/f0496cf8119fb012399a83c449c01ad9.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/f0496cf8119fb012399a83c449c01ad9.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 24, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6601431827494895622", + "owner_nickname": "Min Htet Khant", + "is_original": false, + "mid": "6831469403498957570", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "minhtetkhant1500", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAvv32tkr4vd0JZ0MPp5As0g8K1-vQjLozbX6g3vztFWCPV1a_FXhLlFEE0qYbRqEQ", + "avatar_thumb": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brb2f4r9if2et9k8iki0_h264_540p_1264720", + "data_size": 2389531 + }, + "cover": { + "uri": "tos-maliva-p-0068/3c2f5d0579ac4c61a7ad8a690abb280b", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/3c2f5d0579ac4c61a7ad8a690abb280b~noop.webp?x-expires=1592658000&x-signature=bqsZlN2Jq6XJ6qB0VQNrRmfPF3o%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/6608d78740b54fe8ad678dbeb2c8bc11_1591093247", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/6608d78740b54fe8ad678dbeb2c8bc11_1591093247?x-expires=1592658000&x-signature=Iq0j1P0re248kdtT9%2F3YKpXI1YA%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/8e0928cf4ba64407930fe9a1118b3f8e_1591093246", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8e0928cf4ba64407930fe9a1118b3f8e_1591093246~noop.image?x-expires=1592658000&x-signature=SCaTY2k%2FHJKKokLOz7OkxjHSjG4%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2479947 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1264720, + "play_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brb2f4r9if2et9k8iki0_h264_540p_1264720", + "data_size": 2389531 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 753451, + "play_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brb2f4r9if2et9k8iki0_h264_540p_753451", + "data_size": 1423552 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 557393, + "play_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brb2f4r9if2et9k8iki0_h264_540p_557393", + "data_size": 1053126 + }, + "is_h265": 0 + } + ], + "duration": 15115, + "download_suffix_logo_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2548127 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090444c0000brb2f4r9if2et9k8iki0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2620563}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6833693438668557574/?region=CN&mid=6831469403498957570&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833693438668557574", + "user_digged": 0, + "statistics": { + "aweme_id": "6833693438668557574", + "comment_count": 944, + "digg_count": 141384, + "download_count": 9578, + "play_count": 2318836, + "share_count": 3068, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 3 + }, + "status": { + "aweme_id": "6833693438668557574", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6833693438668557574/?region=CN&mid=6831469403498957570&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833693438668557574", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Than Thar Moe Theint’s video! #TikTok > ", + "share_desc": "Check out Than Thar Moe Theint's video! #TikTok", + "share_title": "Check out Than Thar Moe Theint’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15115, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 22752735, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "MM", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6833693438668557574", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6827221044663700742", + "desc": "#sketchers #remix out now!@dripreport", + "create_time": 1589586271, + "author": { + "uid": "6737419732012057606", + "short_id": "45531242208", + "nickname": "Tyga", + "signature": "T-Raww", + "avatar_thumb": { + "uri": "musically-maliva-obj/1649440773080070", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649440773080070~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1649440773080070", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649440773080070~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "tyga", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/1649440773080070", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649440773080070~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1649440773080070", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649440773080070~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAeHfFPnPBnjCA1bTwwwngsfwUiBHWbq-eqEjCH4MqOok4ojlOqQF1rc4KRt6ae1ZQ", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6824313089517701000, + "id_str": "6824313089517701121", + "title": "Skechers (feat. Tyga) (Remix)", + "author": "DripReport & Tyga", + "album": "Skechers (feat. Tyga) (Remix)", + "cover_hd": { + "uri": "tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/c4fc1b6a0e24517bd0c7b5f77c703f91.m4a", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/c4fc1b6a0e24517bd0c7b5f77c703f91.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 30, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6824313089517701121", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 34, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "394820", + "cha_name": "sketchers", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=394820", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/394820?name=sketchers&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=394820", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #sketchers Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #sketchers Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: sketchers", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449d0000bqviikhsihvdq9mknmcg_h264_540p_2449932", + "data_size": 4408348 + }, + "cover": { + "uri": "tos-maliva-p-0068/ca256c181c094cccbc7a75866f43d307_1589586274", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ca256c181c094cccbc7a75866f43d307_1589586274~noop.webp?x-expires=1592658000&x-signature=O1BK%2FW%2FKAs2slhmS%2FB9Daywdubw%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/66890ed77674482f9d449053a54bb45f_1589586273", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/66890ed77674482f9d449053a54bb45f_1589586273?x-expires=1592658000&x-signature=sFWlKdd%2F2vOxEVPOmfwYDQLWYZo%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/bdaa45e047de4005958ebc92fad719d6_1589586274", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/bdaa45e047de4005958ebc92fad719d6_1589586274~noop.image?x-expires=1592658000&x-signature=%2BxwQ%2BO%2FFiH9dITk5mJ3RiDrdArU%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4554519 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2449932, + "play_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449d0000bqviikhsihvdq9mknmcg_h264_540p_2449932", + "data_size": 4408348 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1406345, + "play_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449d0000bqviikhsihvdq9mknmcg_h264_540p_1406345", + "data_size": 2530543 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 1016565, + "play_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449d0000bqviikhsihvdq9mknmcg_h264_540p_1016565", + "data_size": 1829183 + }, + "is_h265": 0 + } + ], + "duration": 14395, + "download_suffix_logo_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4623467 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090449d0000bqviikhsihvdq9mknmcg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4683291}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6827221044663700742/?region=CN&mid=6824313089517701121&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827221044663700742", + "user_digged": 0, + "statistics": { + "aweme_id": "6827221044663700742", + "comment_count": 23427, + "digg_count": 2092742, + "download_count": 15652, + "play_count": 10967289, + "share_count": 26269, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 3750 + }, + "status": { + "aweme_id": "6827221044663700742", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 26, + "end": 37, + "user_id": "6613538952690827270", + "type": 0, + "sec_uid": "MS4wLjABAAAAFkqljjXDF8hzeUXiUUME1tBRKtyc7mP7oPT81J4kanKNn8Smtcmt097ZKEXeMxcT" + }, + { + "start": 0, + "end": 10, + "type": 1, + "hashtag_name": "sketchers", + "hashtag_id": "394820", + "is_commerce": false + }, + { + "start": 11, + "end": 17, + "type": 1, + "hashtag_name": "remix", + "hashtag_id": "5425", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6827221044663700742/?region=CN&mid=6824313089517701121&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827221044663700742", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Tyga’s video! #TikTok > ", + "share_desc": "Check out Tyga's video! #TikTok", + "share_title": "Check out Tyga’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 14395, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6737419732012058000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6827221044663700742", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101150040561D243EB1" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/assets/i18#lang_en/my.json b/config.en/assets/i18#lang_en/my.json new file mode 100644 index 0000000..2ea14d4 --- /dev/null +++ b/config.en/assets/i18#lang_en/my.json @@ -0,0 +1,1505 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6826642661441588482", + "desc": "#zoommyface", + "create_time": 1589451607, + "author": { + "uid": "77105514261684224", + "short_id": "21463362668", + "nickname": "Nadiraisaac", + "signature": "Instagram @nadiraisaac", + "avatar_thumb": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666462649114626.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666462649114626.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "nadiraisaac", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "MY", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "ms", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666462649114626~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666462649114626~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAegJOuW2ezJneXyREEzOIZrfR3e2U8W4BLv9bpwd0QVFVu1EvsCCn0uXzvACj9G5x", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6817319822334922000, + "id_str": "6817319822334921473", + "title": "Cari Mama Muda", + "author": "Bballgntng🚀", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664387989637121.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664387989637121.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 12, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6694206941936141313", + "owner_nickname": "Bballgntng🚀", + "is_original": false, + "mid": "6817319822334921473", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "bballmaniss_2710", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAUxPCq4ZhkyFB_osTlGng3zdurPSQOFyRdJajpzyETdt37775BQqhDsVUqU_PNiqI", + "avatar_thumb": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "81462767", + "cha_name": "zoommyface", + "desc": "which is your cutest expression? Try this trending effect with you!🔥🎬", + "schema": "aweme://aweme/challenge/detail?cid=81462767", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/81462767?name=zoommyface&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=81462767", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #zoommyface Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #zoommyface Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: zoommyface", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/c92e8f2dc4a4b60d2cca43b8a1e247a2", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1952003", + "data_size": 2996813 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/e7193304166d400abe63a6ed69410a3a", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/e7193304166d400abe63a6ed69410a3a.webp?x-expires=1592658000&x-signature=sxA7uoCQzjWDe1CoxuzoE72hcHI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/dceb4cfefcf944548e1ccfd7bb8036cf_1589451609", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/dceb4cfefcf944548e1ccfd7bb8036cf_1589451609?x-expires=1592658000&x-signature=WaZM%2FQAGOQMtZqK5cYETrMcuCbU%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/fe5536f44fe94fa6819f3554440f5209_1589451610", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/fe5536f44fe94fa6819f3554440f5209_1589451610.jpeg?x-expires=1592658000&x-signature=8wlE3UPU1xeOkrrBLLn6m24FuBw%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3048539 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1952003, + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1952003", + "data_size": 2996813 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1054082, + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1054082", + "data_size": 1618280 + }, + "is_h265": 0 + } + ], + "duration": 12282, + "download_suffix_logo_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3106638 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v070256e0000bquhmk5sk0etnap0a9pg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3162561}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6826642661441588482/?region=CN&mid=6817319822334921473&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826642661441588482", + "user_digged": 0, + "statistics": { + "aweme_id": "6826642661441588482", + "comment_count": 1151, + "digg_count": 92703, + "download_count": 7645, + "play_count": 2389579, + "share_count": 5016, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1938 + }, + "status": { + "aweme_id": "6826642661441588482", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 11, + "type": 1, + "hashtag_name": "zoommyface", + "hashtag_id": "81462767", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6826642661441588482/?region=CN&mid=6817319822334921473&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826642661441588482", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Nadiraisaac’s video! #TikTok > ", + "share_desc": "Check out Nadiraisaac's video! #TikTok", + "share_title": "Check out Nadiraisaac’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12282, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 77105514261684220, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "MY", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "stickers": "235261", + "group_id": "6826642661441588482", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "sticker_detail": { + "id": "235261", + "name": "Zoom Me", + "children": null, + "tags": null + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6839407117871664390", + "desc": "😳 Why would somebody do this? 💔 With @trifinn Come back tomorrow for part 2... #kittens", + "create_time": 1592423564, + "author": { + "uid": "6718992235998741510", + "short_id": "44477201384", + "nickname": "SCOTT 🔥 🔥 🔥", + "signature": "😳🔞Ending is on my insta (@tri.scott) ↗️\nFollow for more crazy pranks 😅", + "avatar_thumb": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "tri.scott", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "GB", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAQq58m31S-GAQ7zOvlqwAVJ39xsO_LwHgXYISlxlreKA1mPkDoQVbaBRYNBNKPMAz", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6777935271007619000, + "id_str": "6777935271007619074", + "title": "Surrender", + "author": "Natalie Taylor", + "album": "Surrender", + "cover_hd": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6616921c9a2fb7a099e9872cadc75fb0.m4a", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6616921c9a2fb7a099e9872cadc75fb0.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 60, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218666896392\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218677436429\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218666860551\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218677471245\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6777935271007619074", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656528675791873", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656528675791873" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 107.83, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "17709", + "cha_name": "kittens", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=17709", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/17709?name=kittens&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=17709", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #kittens Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #kittens Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: kittens", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_2706639", + "data_size": 5192349 + }, + "cover": { + "uri": "tos-maliva-p-0068/d0831e54eff64fa4a5bd0d52352de277", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d0831e54eff64fa4a5bd0d52352de277~noop.webp?x-expires=1592658000&x-signature=w3sjgpghqGwkALCxAsdVCwr6QUo%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/dd81511378304c1e973c990dc5f383b7_1592423566", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/dd81511378304c1e973c990dc5f383b7_1592423566?x-expires=1592658000&x-signature=JVi%2BopJ8pIlo9VlyHmH4GxsOVJc%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/d92e9043395645b9a952afd8fbe8a653_1592423568", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d92e9043395645b9a952afd8fbe8a653_1592423568~noop.image?x-expires=1592658000&x-signature=lDbifvE9vrwcVNHm8ub%2FO2%2BgWmE%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5342737 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2706639, + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_2706639", + "data_size": 5192349 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1455703, + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_1455703", + "data_size": 2792586 + }, + "is_h265": 0 + } + ], + "duration": 15347, + "download_suffix_logo_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5413811 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507407, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044e00000brl790gbiapcs9qmj0m0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":5519889}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6839407117871664390/?region=CN&mid=6777935271007619074&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839407117871664390", + "user_digged": 0, + "statistics": { + "aweme_id": "6839407117871664390", + "comment_count": 9173, + "digg_count": 426700, + "download_count": 24115, + "play_count": 9118163, + "share_count": 49199, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 22763 + }, + "status": { + "aweme_id": "6839407117871664390", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 39, + "end": 47, + "user_id": "6718768300996707334", + "type": 0, + "sec_uid": "MS4wLjABAAAA_-Y4Auotwdtok9sC0inkxtv4pOkZfQmZfxt-r_7iNpe_UJ0kvsn2CNAJS-glTroa" + }, + { + "start": 81, + "end": 89, + "type": 1, + "hashtag_name": "kittens", + "hashtag_id": "17709", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6839407117871664390/?region=CN&mid=6777935271007619074&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839407117871664390", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out SCOTT 🔥 🔥 🔥’s video! #TikTok > ", + "share_desc": "Check out SCOTT 🔥 🔥 🔥's video! #TikTok", + "share_title": "Check out SCOTT 🔥 🔥 🔥’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15347, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6718992235998742000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "GB", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6839407117871664390", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-28.2093,\"end_time\":9366.6667,\"p\":-1,\"y\":84.5312,\"h\":0.1105,\"start_time\":7333.3333,\"r\":0,\"w\":0.622,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":0,\"end_time\":2666.6667,\"p\":-1,\"y\":76.0035,\"h\":0.269,\"start_time\":166.6667,\"r\":0,\"w\":0.7569,\"s\":2.3519}]", + "attr": "" + }, + { + "type": 5, + "index": 2, + "track_info": "[{\"x\":-30.4684,\"end_time\":5666.6667,\"p\":-1,\"y\":86.4804,\"h\":0.1664,\"start_time\":2533.3333,\"r\":0,\"w\":0.7111,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 3, + "track_info": "[{\"x\":-117.243,\"end_time\":5633.3333,\"p\":-1,\"y\":186.1506,\"h\":0.1056,\"start_time\":0,\"r\":0,\"w\":0.3854,\"s\":0.9559}]", + "attr": "" + }, + { + "type": 5, + "index": 4, + "track_info": "[{\"x\":70.7108,\"end_time\":13966.6667,\"p\":-1,\"y\":-260.9235,\"h\":0.1068,\"start_time\":6500,\"r\":0,\"w\":0.3898,\"s\":0.9669}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6818716475365264642", + "desc": "눈감는거 진짜 너무 귀엽다구~~💕😆#뽕짝비트", + "create_time": 1587606150, + "author": { + "uid": "6624101169890639873", + "short_id": "31538989017", + "nickname": "최지원(Jiwon)", + "signature": "· 최지원 9살, 최주원 6살 + 아빠, 엄마\n· 관리는 엄마가 합니다.\n- 댓글은 거의 다 봐요❤️\n💖광고문의 soonent@daum.net", + "avatar_thumb": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666369713957890.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666369713957890.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "인기 틱톡커", + "unique_id": "jiw_juw", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "KR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "ko", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666369713957890~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666369713957890~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAADojbrID8PT6JiKZr888cyCGasWbtwo36WTQxRvCuO9rWNh8g5Pqg0ra8T8v09IGb", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6804093117843770000, + "id_str": "6804093117843770118", + "title": "Laxed (Siren Beat)", + "author": "Jawsh 685", + "album": "Laxed (Siren Beat)", + "cover_hd": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"apple_song_id\":1509920512,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353615373\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349662733\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353668615\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349691399\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6804093117843770118", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1509920512", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 71, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1664466174753794", + "cha_name": "뽕짝비트", + "desc": "🤛⬆️ (뽕짝) 🤜⬆️ (뽕짝) ✋⬆️🤚~~~🎵\n왠지 모르게 흥얼흥얼 콧노래가 나올 것 같은 뽕짝한 음악에 맞춰 #뽕짝비트 춤춰 보자! 🙆", + "schema": "aweme://aweme/challenge/detail?cid=1664466174753794", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1664466174753794?name=%EB%BD%95%EC%A7%9D%EB%B9%84%ED%8A%B8&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664466174753794", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #뽕짝비트 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #뽕짝비트 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 뽕짝비트", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025680000bqgf50c1a8b4ss0b7c70_h264_540p_805327", + "data_size": 1521565 + }, + "cover": { + "uri": "large/v0201/400c2d6b7ea24ea08061f99f857f63ba", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/400c2d6b7ea24ea08061f99f857f63ba.webp?x-expires=1592658000&x-signature=%2FwP0ZuC9xfqb1hLNZ9k6NZXWphE%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/4facabbe1c7e47a38f3449f8ee87020a_1587606154", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/4facabbe1c7e47a38f3449f8ee87020a_1587606154?x-expires=1592658000&x-signature=8ho06DZsoPkkTx6G5RRfOzMmYLI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/9c2ee2057d67416eae254f830b8c2523_1587606153", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/9c2ee2057d67416eae254f830b8c2523_1587606153.jpeg?x-expires=1592658000&x-signature=5MX4E1%2FnmUO3qDkZMth2h07d2BI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1627831 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 805327, + "play_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025680000bqgf50c1a8b4ss0b7c70_h264_540p_805327", + "data_size": 1521565 + }, + "is_h265": 0 + } + ], + "duration": 15115, + "download_suffix_logo_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1696449 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507407, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025680000bqgf50c1a8b4ss0b7c70\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1767018}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6818716475365264642/?region=CN&mid=6804093117843770118&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6818716475365264642", + "user_digged": 0, + "statistics": { + "aweme_id": "6818716475365264642", + "comment_count": 5488, + "digg_count": 488650, + "download_count": 4472, + "play_count": 6334744, + "share_count": 7925, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2447 + }, + "status": { + "aweme_id": "6818716475365264642", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 21, + "end": 26, + "type": 1, + "hashtag_name": "뽕짝비트", + "hashtag_id": "1664466174753794", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6818716475365264642/?region=CN&mid=6804093117843770118&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6818716475365264642", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 최지원(Jiwon)’s video! #TikTok > ", + "share_desc": "Check out 최지원(Jiwon)'s video! #TikTok", + "share_title": "Check out 최지원(Jiwon)’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15115, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6624101169890640000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "KR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6818716475365264642", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ko", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485792000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309510101152280680E23F803" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/assets/i18#lang_en/ph.json b/config.en/assets/i18#lang_en/ph.json new file mode 100644 index 0000000..148fd02 --- /dev/null +++ b/config.en/assets/i18#lang_en/ph.json @@ -0,0 +1,1597 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6832999910602788098", + "desc": "", + "create_time": 1590931769, + "author": { + "uid": "71638517914742784", + "short_id": "21539765061", + "nickname": "Kiarra Avery Tejada", + "signature": "Little Fighter Kiarra ❤️", + "avatar_thumb": { + "uri": "tiktok-obj/f4bc4c2815701aa24c1cb06d5fa17b80", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f4bc4c2815701aa24c1cb06d5fa17b80.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/f4bc4c2815701aa24c1cb06d5fa17b80", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f4bc4c2815701aa24c1cb06d5fa17b80.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "kiarraavery", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PH", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/f4bc4c2815701aa24c1cb06d5fa17b80", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/f4bc4c2815701aa24c1cb06d5fa17b80~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/f4bc4c2815701aa24c1cb06d5fa17b80", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/f4bc4c2815701aa24c1cb06d5fa17b80~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAAgbiH84Rrg3BZnFhJZZxKCWbJsr3ovX2i45NFwnowA9YPEXbAIUEC-LDS9iwA_qS", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6817319822334922000, + "id_str": "6817319822334921473", + "title": "Cari Mama Muda", + "author": "Bballgntng🚀", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664387989637121.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664387989637121.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 12, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6694206941936141313", + "owner_nickname": "Bballgntng🚀", + "is_original": false, + "mid": "6817319822334921473", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "bballmaniss_2710", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAUxPCq4ZhkyFB_osTlGng3zdurPSQOFyRdJajpzyETdt37775BQqhDsVUqU_PNiqI", + "avatar_thumb": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v07025b10000br9r2ba8kv9iip59c91g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000br9r2ba8kv9iip59c91g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000br9r2ba8kv9iip59c91g_h264_540p_1122626", + "data_size": 1723513 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/38dda3590391441f9b7244d0428e3e63", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/38dda3590391441f9b7244d0428e3e63.webp?x-expires=1592658000&x-signature=vilALfbXxAGDZUw%2FaWWmYsknoYE%3D&l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/818bb976864449dc9f2153614cd043fd_1590931773", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/818bb976864449dc9f2153614cd043fd_1590931773?x-expires=1592658000&x-signature=2fBuoARzAcAtugJuHPt7yDsYTTw%3D&l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/64087e2ce8f24c0cb323375c64b94afc_1590931772", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/64087e2ce8f24c0cb323375c64b94afc_1590931772.jpeg?x-expires=1592658000&x-signature=WSI8v4yeP%2FfJK35%2Fr%2BFZKXbycdw%3D&l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025b10000br9r2ba8kv9iip59c91g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000br9r2ba8kv9iip59c91g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1796369 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1122626, + "play_addr": { + "uri": "v07025b10000br9r2ba8kv9iip59c91g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000br9r2ba8kv9iip59c91g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000br9r2ba8kv9iip59c91g_h264_540p_1122626", + "data_size": 1723513 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 599645, + "play_addr": { + "uri": "v07025b10000br9r2ba8kv9iip59c91g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000br9r2ba8kv9iip59c91g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000br9r2ba8kv9iip59c91g_h264_540p_599645", + "data_size": 920605 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 427056, + "play_addr": { + "uri": "v07025b10000br9r2ba8kv9iip59c91g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000br9r2ba8kv9iip59c91g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000br9r2ba8kv9iip59c91g_h264_540p_427056", + "data_size": 655639 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 348457, + "play_addr": { + "uri": "v07025b10000br9r2ba8kv9iip59c91g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000br9r2ba8kv9iip59c91g&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000br9r2ba8kv9iip59c91g_h264_480p_348457", + "data_size": 534969 + }, + "is_h265": 0 + } + ], + "duration": 12282, + "is_h265": 0, + "cdn_url_expired": 1592507406, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025b10000br9r2ba8kv9iip59c91g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000br9r2ba8kv9iip59c91g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1871495}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6832999910602788098/?region=CN&mid=6817319822334921473&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832999910602788098", + "user_digged": 0, + "statistics": { + "aweme_id": "6832999910602788098", + "comment_count": 20436, + "digg_count": 2437975, + "download_count": 102517, + "play_count": 25100830, + "share_count": 47278, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1030 + }, + "status": { + "aweme_id": "6832999910602788098", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6832999910602788098/?region=CN&mid=6817319822334921473&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832999910602788098", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Kiarra Avery Tejada’s video! #TikTok > ", + "share_desc": "Check out Kiarra Avery Tejada's video! #TikTok", + "share_title": "Check out Kiarra Avery Tejada’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12282, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 71638517914742780, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PH", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "stickers": "235265", + "group_id": "6832999910602788098", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "sticker_detail": { + "id": "235265", + "name": "Face Zoom", + "children": null, + "tags": null + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6835767188218006785", + "desc": "Prank sa lola lo haha #salamatshopee", + "create_time": 1591576084, + "author": { + "uid": "6675113341159146497", + "short_id": "31857647057", + "nickname": "Kim.caparas", + "signature": "Happy happy lang😍 Criza joy😍☝🏻 pawer☝🏻 grandmother😘😎 \nYT: Kimpoy TV 😎😎😎", + "avatar_thumb": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "superkimpoy", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PH", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAo_GR_WpWKfG8AeNgO3LJteD6jGuf-P7F5JtAzc0HmalKuTpB2fh1ZPdpg8ppAjfH", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6835767158824357000, + "id_str": "6835767158824356609", + "title": "original sound - Kim.caparas", + "author": "Kim.caparas", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6835766864128314113.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6835766864128314113.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 57, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6675113341159146497", + "owner_nickname": "Kim.caparas", + "is_original": false, + "mid": "6835767158824356609", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "superkimpoy", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAo_GR_WpWKfG8AeNgO3LJteD6jGuf-P7F5JtAzc0HmalKuTpB2fh1ZPdpg8ppAjfH", + "avatar_thumb": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/6bdbc6fc48490884df8e8145b0ea52ce.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1665301350936578", + "cha_name": "salamatshopee", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1665301350936578", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1665301350936578?name=salamatshopee&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1665301350936578", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #salamatshopee Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #salamatshopee Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: salamatshopee", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025080000breoc0happv711vop0o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000breoc0happv711vop0o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000breoc0happv711vop0o0_h264_540p_1243335", + "data_size": 8974860 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/df911db03d4349c5ba16ef8d5bf4bbbc", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/df911db03d4349c5ba16ef8d5bf4bbbc.webp?x-expires=1592658000&x-signature=0jATovurWUMTvbqiB5pIhQ3ITe8%3D&l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/a741b3e37fe64e75a8ddf28c7e7351df_1591576088", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/a741b3e37fe64e75a8ddf28c7e7351df_1591576088?x-expires=1592658000&x-signature=XLJGk6fbxK1p7UUAztvQmwu3F%2BY%3D&l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/6b60c4b8a6c94702a123c6b6b04e7544_1591576086", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/6b60c4b8a6c94702a123c6b6b04e7544_1591576086.jpeg?x-expires=1592658000&x-signature=bwi9z3JCMvZVlNUnEJOtgFy%2BovY%3D&l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025080000breoc0happv711vop0o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000breoc0happv711vop0o0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 9485036 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1243335, + "play_addr": { + "uri": "v07025080000breoc0happv711vop0o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000breoc0happv711vop0o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000breoc0happv711vop0o0_h264_540p_1243335", + "data_size": 8974860 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 728025, + "play_addr": { + "uri": "v07025080000breoc0happv711vop0o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000breoc0happv711vop0o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000breoc0happv711vop0o0_h264_540p_728025", + "data_size": 5255158 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 532922, + "play_addr": { + "uri": "v07025080000breoc0happv711vop0o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000breoc0happv711vop0o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000breoc0happv711vop0o0_h264_540p_532922", + "data_size": 3846838 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 438973, + "play_addr": { + "uri": "v07025080000breoc0happv711vop0o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000breoc0happv711vop0o0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000breoc0happv711vop0o0_h264_480p_438973", + "data_size": 3168672 + }, + "is_h265": 0 + } + ], + "duration": 57747, + "download_suffix_logo_addr": { + "uri": "v07025080000breoc0happv711vop0o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000breoc0happv711vop0o0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 9553135 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507451, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025080000breoc0happv711vop0o0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000breoc0happv711vop0o0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":9899534}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6835767188218006785/?region=CN&mid=6835767158824356609&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835767188218006785", + "user_digged": 0, + "statistics": { + "aweme_id": "6835767188218006785", + "comment_count": 6203, + "digg_count": 621838, + "download_count": 28124, + "play_count": 9371212, + "share_count": 22563, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 318 + }, + "status": { + "aweme_id": "6835767188218006785", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 22, + "end": 36, + "type": 1, + "hashtag_name": "salamatshopee", + "hashtag_id": "1665301350936578", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6835767188218006785/?region=CN&mid=6835767158824356609&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835767188218006785", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Kim.caparas’s video! #TikTok > ", + "share_desc": "Check out Kim.caparas's video! #TikTok", + "share_title": "Check out Kim.caparas’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 57747, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6675113341159146000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PH", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6835767188218006785", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "it", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6815826123251813633", + "desc": "모자쓰고 춤추는건 처음이지? 어때? 어울려? 상콤이들은 어떤 모자 좋아해?", + "create_time": 1586933186, + "author": { + "uid": "6626231805266182145", + "short_id": "30919232305", + "nickname": "신사마shinsama", + "signature": "Happy Virus~😆\n안녕하세요~👋🏻Nice to meet you~❤️\n📮Business : Insta DM📮\n⬇️YouTube⬇️", + "avatar_thumb": { + "uri": "tiktok-obj/b86469a17fba5c0ae8f8053b6317b1e1", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/b86469a17fba5c0ae8f8053b6317b1e1.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/b86469a17fba5c0ae8f8053b6317b1e1", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/b86469a17fba5c0ae8f8053b6317b1e1.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "shinsama422", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "KR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "tiktok-obj/b2a8d18ef3329e434ee4ef5441d6f195", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/b2a8d18ef3329e434ee4ef5441d6f195" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + } + ], + "language": "ko", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/b86469a17fba5c0ae8f8053b6317b1e1", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/b86469a17fba5c0ae8f8053b6317b1e1~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/b86469a17fba5c0ae8f8053b6317b1e1", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/b86469a17fba5c0ae8f8053b6317b1e1~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAdJv9G_C1ik_aQsqh5dWccbk6TiG6OtKaPwmVtNPkKssi1Op-fhlsE4V6J3I3sv1R", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6805770169479089000, + "id_str": "6805770169479088897", + "title": "Oops!", + "author": "Paupau 🇵🇭", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/3278d7c915522ff5394598433713b2ba", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/3278d7c915522ff5394598433713b2ba.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/3278d7c915522ff5394598433713b2ba", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/3278d7c915522ff5394598433713b2ba.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/3278d7c915522ff5394598433713b2ba", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/3278d7c915522ff5394598433713b2ba.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/3278d7c915522ff5394598433713b2ba", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/3278d7c915522ff5394598433713b2ba.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1661566001311777.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1661566001311777.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 21, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6704731400031273986", + "owner_nickname": "Paupau 🇵🇭", + "is_original": false, + "mid": "6805770169479088897", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "itsmechoiii", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAiL478HssSwBu7HRarYTXQxoK2GMGxb3_kXg5hlJQNf3ZO1gbGM6Ro46fCIaCB2WS", + "avatar_thumb": { + "uri": "tiktok-obj/3278d7c915522ff5394598433713b2ba", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/3278d7c915522ff5394598433713b2ba.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/3278d7c915522ff5394598433713b2ba", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/3278d7c915522ff5394598433713b2ba.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/3278d7c915522ff5394598433713b2ba", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/3278d7c915522ff5394598433713b2ba.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v07025b10000bqbarcoo6gfdb7ccedag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqbarcoo6gfdb7ccedag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000bqbarcoo6gfdb7ccedag_h264_540p_1302113", + "data_size": 3488198 + }, + "cover": { + "uri": "large/v0201/0acd9fb3be3c45388e86e15c33a315e8", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/0acd9fb3be3c45388e86e15c33a315e8.webp?x-expires=1592658000&x-signature=Xfp%2FJeuU5BLIuu2Z7ckoFXEtxbs%3D&l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/dde6182db64941ed964f4db70f9ec356_1586933193", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/dde6182db64941ed964f4db70f9ec356_1586933193?x-expires=1592658000&x-signature=UHGAoe41GA%2FEFTse3%2FtrwoSkcW4%3D&l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/d414748c063b42809207981ec1cc1a05_1586933194", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/d414748c063b42809207981ec1cc1a05_1586933194.jpeg?x-expires=1592658000&x-signature=QlTgrJmOgaSd8JLF%2FFKMhCxMHr0%3D&l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025b10000bqbarcoo6gfdb7ccedag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqbarcoo6gfdb7ccedag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2183491 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1302113, + "play_addr": { + "uri": "v07025b10000bqbarcoo6gfdb7ccedag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqbarcoo6gfdb7ccedag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000bqbarcoo6gfdb7ccedag_h264_540p_1302113", + "data_size": 3488198 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 322163, + "play_addr": { + "uri": "v07025b10000bqbarcoo6gfdb7ccedag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqbarcoo6gfdb7ccedag&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000bqbarcoo6gfdb7ccedag_h264_480p_322163", + "data_size": 863036 + }, + "is_h265": 0 + } + ], + "duration": 21431, + "download_suffix_logo_addr": { + "uri": "v07025b10000bqbarcoo6gfdb7ccedag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqbarcoo6gfdb7ccedag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2228288 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507415, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025b10000bqbarcoo6gfdb7ccedag\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqbarcoo6gfdb7ccedag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3746548}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6815826123251813633/?region=CN&mid=6805770169479088897&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6815826123251813633", + "user_digged": 0, + "statistics": { + "aweme_id": "6815826123251813633", + "comment_count": 1620, + "digg_count": 402817, + "download_count": 5387, + "play_count": 6163515, + "share_count": 3811, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 423 + }, + "status": { + "aweme_id": "6815826123251813633", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309540101152280821123E986" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6815826123251813633/?region=CN&mid=6805770169479088897&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6815826123251813633", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 신사마shinsama’s video! #TikTok > ", + "share_desc": "Check out 신사마shinsama's video! #TikTok", + "share_title": "Check out 신사마shinsama’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 21431, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6626231805266182000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "KR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6815826123251813633", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ko", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-183,\"end_time\":21321.6667,\"p\":null,\"y\":-273,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":-183.6667,\"end_time\":21321.6667,\"p\":null,\"y\":-223,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 2, + "track_info": "[{\"x\":-185,\"end_time\":21321.6667,\"p\":null,\"y\":-174.6667,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 3, + "track_info": "[{\"x\":-184,\"end_time\":21321.6667,\"p\":null,\"y\":-124.3333,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 4, + "track_info": "[{\"x\":-182.6667,\"end_time\":21321.6667,\"p\":null,\"y\":-74.3333,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 5, + "track_info": "[{\"x\":-182,\"end_time\":21321.6667,\"p\":null,\"y\":-25.3333,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 6, + "track_info": "[{\"x\":-154.6667,\"end_time\":21321.6667,\"p\":null,\"y\":24,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.2995,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 7, + "track_info": "[{\"x\":-155,\"end_time\":21321.6667,\"p\":null,\"y\":74,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.2995,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 8, + "track_info": "[{\"x\":-181.6667,\"end_time\":21321.6667,\"p\":null,\"y\":123.3333,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 9, + "track_info": "[{\"x\":-167.6667,\"end_time\":21321.6667,\"p\":null,\"y\":172,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.2319,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 10, + "track_info": "[{\"x\":-180.3333,\"end_time\":21321.6667,\"p\":null,\"y\":222,\"h\":0.1064,\"start_time\":0,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 11, + "track_info": "[{\"x\":-144.5,\"end_time\":21300,\"p\":null,\"y\":-217.6667,\"h\":0.1064,\"start_time\":6266.6667,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 12, + "track_info": "[{\"x\":-144.6667,\"end_time\":21300,\"p\":null,\"y\":-168.3333,\"h\":0.1064,\"start_time\":7233.3333,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 13, + "track_info": "[{\"x\":-144,\"end_time\":21300,\"p\":null,\"y\":-113.6667,\"h\":0.1064,\"start_time\":9866.6667,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 14, + "track_info": "[{\"x\":-142.3333,\"end_time\":21300,\"p\":null,\"y\":-63,\"h\":0.1064,\"start_time\":10933.3333,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 15, + "track_info": "[{\"x\":-142.6667,\"end_time\":21300,\"p\":null,\"y\":-15,\"h\":0.1064,\"start_time\":11966.6667,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 16, + "track_info": "[{\"x\":-86.6667,\"end_time\":21300,\"p\":null,\"y\":32,\"h\":0.1064,\"start_time\":14233.3333,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 17, + "track_info": "[{\"x\":-88.3333,\"end_time\":21300,\"p\":null,\"y\":84.6667,\"h\":0.1064,\"start_time\":16333.3333,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 18, + "track_info": "[{\"x\":-141.3333,\"end_time\":21300,\"p\":null,\"y\":131,\"h\":0.1064,\"start_time\":18866.6667,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 19, + "track_info": "[{\"x\":-114.3333,\"end_time\":21300,\"p\":null,\"y\":183,\"h\":0.1064,\"start_time\":19433.3333,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 20, + "track_info": "[{\"x\":-140.3333,\"end_time\":21300,\"p\":null,\"y\":232.6667,\"h\":0.1064,\"start_time\":20300,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 21, + "track_info": "[{\"x\":-144.5,\"end_time\":21300,\"p\":null,\"y\":-263.6667,\"h\":0.1064,\"start_time\":5233.3333,\"r\":0,\"w\":0.1643,\"s\":1}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485794000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309540101152280821123E986" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/assets/i18#lang_en/pk.json b/config.en/assets/i18#lang_en/pk.json new file mode 100644 index 0000000..83f0499 --- /dev/null +++ b/config.en/assets/i18#lang_en/pk.json @@ -0,0 +1,1088 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6839242541741706498", + "desc": "Panadol 😊😀😅#famousmolvi #team07up #kuchkuch #marisafari #smilescore #kuldance", + "create_time": 1592385246, + "author": { + "uid": "6568872572489973765", + "short_id": "30121893232", + "nickname": "Malik Usman ", + "signature": " Follow me instagram usmanasim_66 Use my Tag #Famousmolvi ", + "avatar_thumb": { + "uri": "tiktok-obj/4f33c8c9e4747ce81d42f7fec8dc7db0", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/4f33c8c9e4747ce81d42f7fec8dc7db0.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/4f33c8c9e4747ce81d42f7fec8dc7db0", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/4f33c8c9e4747ce81d42f7fec8dc7db0.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "usmanasim66", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "tiktok-obj/cf6204ab4ae496e5f7a28e0a02fcbbca", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/cf6204ab4ae496e5f7a28e0a02fcbbca" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094701011517614914236286" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/4f33c8c9e4747ce81d42f7fec8dc7db0", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/4f33c8c9e4747ce81d42f7fec8dc7db0~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/4f33c8c9e4747ce81d42f7fec8dc7db0", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/4f33c8c9e4747ce81d42f7fec8dc7db0~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAnxfBteK4Gz3h9Wi1PL6lHQrIWJxLYVRfeGQKE-055C8p4QpG7WAumTeqzEtVgQFa", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6837361896681688000, + "id_str": "6837361896681687809", + "title": "original sound - waheedashraf07", + "author": "🔥Waheed Ashraf🔥", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/94b140e055427885603a841f0110af61", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/94b140e055427885603a841f0110af61.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/94b140e055427885603a841f0110af61", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/94b140e055427885603a841f0110af61.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/94b140e055427885603a841f0110af61", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/94b140e055427885603a841f0110af61.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/94b140e055427885603a841f0110af61", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/94b140e055427885603a841f0110af61.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6837361788846230274.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6837361788846230274.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 20, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6546469511137072128", + "owner_nickname": "🔥Waheed Ashraf🔥", + "is_original": false, + "mid": "6837361896681687809", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "waheedashraf07", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAVXLu7V0COrey42f7hAnNgUlsVlGO3748pyMSJS0jbyfdX0ZtzQ8-5DOeyoCk359c", + "avatar_thumb": { + "uri": "tiktok-obj/94b140e055427885603a841f0110af61", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/94b140e055427885603a841f0110af61.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/94b140e055427885603a841f0110af61", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/94b140e055427885603a841f0110af61.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/94b140e055427885603a841f0110af61", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/94b140e055427885603a841f0110af61.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1629073647459333", + "cha_name": "famousmolvi", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1629073647459333", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1629073647459333.html?name=famousmolvi&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1629073647459333", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #famousmolvi Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #famousmolvi Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: famousmolvi", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044f00000brktsvqasdpn44s2ir30", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brktsvqasdpn44s2ir30&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f00000brktsvqasdpn44s2ir30_h264_540p_1771181", + "data_size": 3135655 + }, + "cover": { + "uri": "tos-maliva-p-0068/4704b5d3f84047919db59b5a5d3dfefa", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/4704b5d3f84047919db59b5a5d3dfefa~noop.webp?x-expires=1592658000&x-signature=bkuf6MlXWhTT5qH8VDIdTTW4e88%3D&l=2020061813094701011517614914236286" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/5f83604ad7574b8695c24b161dd7dd1f_1592385249", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/5f83604ad7574b8695c24b161dd7dd1f_1592385249?x-expires=1592658000&x-signature=e%2F2gvnEhCdYhOSF%2FUoChS%2BTjNQ0%3D&l=2020061813094701011517614914236286" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/4a8d958cfd94429297805e4e38ea54cd_1592385249", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/4a8d958cfd94429297805e4e38ea54cd_1592385249~noop.image?x-expires=1592658000&x-signature=ibLJnQJ%2FxpYWgTmfAYynETWd9Rs%3D&l=2020061813094701011517614914236286" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044f00000brktsvqasdpn44s2ir30", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brktsvqasdpn44s2ir30&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3223039 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1000930, + "play_addr": { + "uri": "v09044f00000brktsvqasdpn44s2ir30", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brktsvqasdpn44s2ir30&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f00000brktsvqasdpn44s2ir30_h264_540p_1000930", + "data_size": 1772023 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 697497, + "play_addr": { + "uri": "v09044f00000brktsvqasdpn44s2ir30", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brktsvqasdpn44s2ir30&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f00000brktsvqasdpn44s2ir30_h264_540p_697497", + "data_size": 1234832 + }, + "is_h265": 0 + } + ], + "duration": 14163, + "download_suffix_logo_addr": { + "uri": "v09044f00000brktsvqasdpn44s2ir30", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brktsvqasdpn44s2ir30&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3291175 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507402, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044f00000brktsvqasdpn44s2ir30\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brktsvqasdpn44s2ir30&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3357505}}\n" + }, + "share_url": "https://m.tiktok.com/v/6839242541741706498.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839242541741706498", + "user_digged": 0, + "statistics": { + "aweme_id": "6839242541741706498", + "comment_count": 1998, + "digg_count": 303604, + "download_count": 94148, + "play_count": 9088645, + "share_count": 35900, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 30085 + }, + "status": { + "aweme_id": "6839242541741706498", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 15, + "end": 27, + "type": 1, + "hashtag_name": "famousmolvi", + "hashtag_id": "1629073647459333", + "is_commerce": false + }, + { + "start": 28, + "end": 37, + "type": 1, + "hashtag_name": "team07up", + "hashtag_id": "1618553818795013", + "is_commerce": false + }, + { + "start": 38, + "end": 47, + "type": 1, + "hashtag_name": "kuchkuch", + "hashtag_id": "5389285", + "is_commerce": false + }, + { + "start": 48, + "end": 59, + "type": 1, + "hashtag_name": "marisafari", + "hashtag_id": "39691351", + "is_commerce": false + }, + { + "start": 60, + "end": 71, + "type": 1, + "hashtag_name": "smilescore", + "hashtag_id": "1618538254433281", + "is_commerce": false + }, + { + "start": 72, + "end": 81, + "type": 1, + "hashtag_name": "kuldance", + "hashtag_id": "1618191390145541", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094701011517614914236286" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6839242541741706498.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839242541741706498", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Malik Usman ’s video! #TikTok > ", + "share_desc": "Check out Malik Usman 's video! #TikTok", + "share_title": "Check out Malik Usman ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 14163, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6568872572489974000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6839242541741706498", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "es", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6839567388720073986", + "desc": "next try ma acha ho ga #mrahsanarain #mr___ahsan___arain #arainbrandofficial #kuchkuch #sportlover", + "create_time": 1592460880, + "author": { + "uid": "6600632658551685125", + "short_id": "38773887824", + "nickname": "Ahsan aRaIn", + "signature": "arain brand\nguys plz keep supporting me \nlove u all frndz ❤\nIm a tatto artist", + "avatar_thumb": { + "uri": "tiktok-obj/1665025738396673", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1665025738396673.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1665025738396673", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1665025738396673.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mr_ahsan_arain", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094701011517614914236286" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1665025738396673", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1665025738396673~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1665025738396673", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1665025738396673~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAVpyVoqdD_TLQ2_ywHCBpLvWo_0iXL7o6dhm0QaMgZMxwR9fdY2VR0sb7jTaC5EvI", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6833960760125836000, + "id_str": "6833960760125836034", + "title": "original sound - dimple_boys", + "author": "dimpleboys", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1657449015385090", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1657449015385090.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1657449015385090", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1657449015385090.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1657449015385090", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1657449015385090.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1657449015385090", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1657449015385090.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6833960654102219521.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6833960654102219521.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6606609862565281797", + "owner_nickname": "dimpleboys", + "is_original": false, + "mid": "6833960760125836034", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "dimple_boys", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAg71IvQlqtIxE5HS6kvhQbZ_C6kj4FPCi0f1LZmycaP610TrwkKBzfFjhWN8Y-qBi", + "avatar_thumb": { + "uri": "tiktok-obj/1657449015385090", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1657449015385090.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1657449015385090", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1657449015385090.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1657449015385090", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1657449015385090.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1657790116765698", + "cha_name": "mrahsanarain", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1657790116765698", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1657790116765698.html?name=mrahsanarain&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1657790116765698", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #mrahsanarain Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #mrahsanarain Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: mrahsanarain", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044820000brlgc9na1pe57qaheqm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044820000brlgc9na1pe57qaheqm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044820000brlgc9na1pe57qaheqm0_h264_540p_1618047", + "data_size": 3071459 + }, + "cover": { + "uri": "tos-maliva-p-0068/c9922b0f62ce472f9471bb53aed5dcdc", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/c9922b0f62ce472f9471bb53aed5dcdc~noop.webp?x-expires=1592658000&x-signature=y3WtxUxbSWXI%2BUZNNKLR9DinWHw%3D&l=2020061813094701011517614914236286" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/d5d9b94784ff48f3ad5e7742e63b2935_1592460883", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/d5d9b94784ff48f3ad5e7742e63b2935_1592460883?x-expires=1592658000&x-signature=6aCxRBvOj2LEAkdph1vJ%2B3O4Ll4%3D&l=2020061813094701011517614914236286" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/ae982df6439f4ccebf256e8b62899ade_1592460882", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ae982df6439f4ccebf256e8b62899ade_1592460882~noop.image?x-expires=1592658000&x-signature=XDI4JNGZcHUVXkpL3ERrZlaoMGw%3D&l=2020061813094701011517614914236286" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044820000brlgc9na1pe57qaheqm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044820000brlgc9na1pe57qaheqm0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3210024 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 835202, + "play_addr": { + "uri": "v09044820000brlgc9na1pe57qaheqm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044820000brlgc9na1pe57qaheqm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044820000brlgc9na1pe57qaheqm0_h264_540p_835202", + "data_size": 1585424 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 571553, + "play_addr": { + "uri": "v09044820000brlgc9na1pe57qaheqm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044820000brlgc9na1pe57qaheqm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044820000brlgc9na1pe57qaheqm0_h264_540p_571553", + "data_size": 1084951 + }, + "is_h265": 0 + } + ], + "duration": 15186, + "download_suffix_logo_addr": { + "uri": "v09044820000brlgc9na1pe57qaheqm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044820000brlgc9na1pe57qaheqm0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3273972 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403 + }, + "share_url": "https://m.tiktok.com/v/6839567388720073986.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839567388720073986", + "user_digged": 0, + "statistics": { + "aweme_id": "6839567388720073986", + "comment_count": 720, + "digg_count": 130236, + "download_count": 8403, + "play_count": 5321436, + "share_count": 3282, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2360 + }, + "status": { + "aweme_id": "6839567388720073986", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 23, + "end": 36, + "type": 1, + "hashtag_name": "mrahsanarain", + "hashtag_id": "1657790116765698", + "is_commerce": false + }, + { + "start": 37, + "end": 56, + "type": 1, + "hashtag_name": "mr___ahsan___arain", + "hashtag_id": "1648740350614530", + "is_commerce": false + }, + { + "start": 57, + "end": 76, + "type": 1, + "hashtag_name": "arainbrandofficial", + "hashtag_id": "1659044079100929", + "is_commerce": false + }, + { + "start": 77, + "end": 86, + "type": 1, + "hashtag_name": "kuchkuch", + "hashtag_id": "5389285", + "is_commerce": false + }, + { + "start": 87, + "end": 98, + "type": 1, + "hashtag_name": "sportlover", + "hashtag_id": "8104856", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094701011517614914236286" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6839567388720073986.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839567388720073986", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Ahsan aRaIn’s video! #TikTok > ", + "share_desc": "Check out Ahsan aRaIn's video! #TikTok", + "share_title": "Check out Ahsan aRaIn’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15186, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6600632658551685000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6839567388720073986", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "hi", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485788000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813094701011517614914236286" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.en/resources.arsc b/config.en/resources.arsc new file mode 100644 index 0000000..4e8ef5a Binary files /dev/null and b/config.en/resources.arsc differ diff --git a/config.es/AndroidManifest.xml b/config.es/AndroidManifest.xml new file mode 100644 index 0000000..65d2e92 Binary files /dev/null and b/config.es/AndroidManifest.xml differ diff --git a/config.es/META-INF/BNDLTOOL.RSA b/config.es/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..e6982a4 Binary files /dev/null and b/config.es/META-INF/BNDLTOOL.RSA differ diff --git a/config.es/META-INF/BNDLTOOL.SF b/config.es/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..5c8e714 --- /dev/null +++ b/config.es/META-INF/BNDLTOOL.SF @@ -0,0 +1,44 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: Dwnf//NISi6Ayj1BQU+adAJSqu0= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: vEv5I9Orv0A5otkulsm/KWnKwIo= + +Name: assets/i18#lang_es/ar.json +SHA1-Digest: 0o6Dj7JYF2LInEpdkWa+2GD2SrE= + +Name: assets/i18#lang_es/cl.json +SHA1-Digest: Gr0KXeuci75qM+KdHCQcreWrD/M= + +Name: assets/i18#lang_es/co.json +SHA1-Digest: /ZGDLL2iLmJVN5YUu84HwAcyjLo= + +Name: assets/i18#lang_es/cr.json +SHA1-Digest: zhbdEAAc02HU+Ig8kzy1y2RFvQo= + +Name: assets/i18#lang_es/default.json +SHA1-Digest: /FXpTzgbGXzIMVcdOBkwcF6u/us= + +Name: assets/i18#lang_es/do.json +SHA1-Digest: hllH4e8wbJN3Ftu1d1sL6sD1KwI= + +Name: assets/i18#lang_es/ec.json +SHA1-Digest: NH74NnzG/CZfJoKge1o1sL/ni6I= + +Name: assets/i18#lang_es/es.json +SHA1-Digest: RizwIbXiowZl+skm4mSqbUqIQWw= + +Name: assets/i18#lang_es/pe.json +SHA1-Digest: xh4NWkjzEZj33zvy+R7UqISkv84= + +Name: assets/i18#lang_es/us.json +SHA1-Digest: fdxAWqzXljkHBa/OLOCrTily6L0= + +Name: assets/i18#lang_es/ve.json +SHA1-Digest: UefcMy1hhxhGWCmmZ3JjbsK7lLU= + +Name: resources.arsc +SHA1-Digest: 1zBEOglzbvxUj7ybLEjPxupeaf8= + diff --git a/config.es/META-INF/MANIFEST.MF b/config.es/META-INF/MANIFEST.MF new file mode 100644 index 0000000..c245a9b --- /dev/null +++ b/config.es/META-INF/MANIFEST.MF @@ -0,0 +1,43 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: Yh1rwYO7U09U7PkNOhPVH0Kopgk= + +Name: assets/i18#lang_es/ar.json +SHA1-Digest: d9rLqkTAq9benYN9SaV8k/0nQ5k= + +Name: assets/i18#lang_es/cl.json +SHA1-Digest: Djznf/ssb7+JRFjlEfhAiAQvPmY= + +Name: assets/i18#lang_es/co.json +SHA1-Digest: KUEoUEW++Vpqo9nGS5WMX2q57X4= + +Name: assets/i18#lang_es/cr.json +SHA1-Digest: ZRTTItWPnmvjCq4DEs8BVgD7FRM= + +Name: assets/i18#lang_es/default.json +SHA1-Digest: 6BQOPqKxfUG89t/jq46dE69fGXg= + +Name: assets/i18#lang_es/do.json +SHA1-Digest: +Epc0nL5OGSlng/Ll3MZgak1iLI= + +Name: assets/i18#lang_es/ec.json +SHA1-Digest: TT8+hhIj93pZrVgYjBZdz+CMANU= + +Name: assets/i18#lang_es/es.json +SHA1-Digest: i6PksnVYbIv5ZeuJ4D/gta3muRY= + +Name: assets/i18#lang_es/pe.json +SHA1-Digest: vG8DSGk7kwGbwubKh135DGtauNw= + +Name: assets/i18#lang_es/us.json +SHA1-Digest: dAsKbeyfIsx2YRmwQFI9qIDP8oM= + +Name: assets/i18#lang_es/ve.json +SHA1-Digest: HMaNed3k2ye3C9NWF5T0d7wVRUw= + +Name: resources.arsc +SHA1-Digest: txWVLG6nhRq0FP12radp9+j08bU= + diff --git a/config.es/assets/i18#lang_es/ar.json b/config.es/assets/i18#lang_es/ar.json new file mode 100644 index 0000000..d79b802 --- /dev/null +++ b/config.es/assets/i18#lang_es/ar.json @@ -0,0 +1,953 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6836058802383523078", + "desc": "La mejor distracción👁👄👁😎 insta:itayvargass @ofirvargass 💙", + "create_time": 1591643972, + "author": { + "uid": "145063685563133952", + "short_id": "21481975137", + "nickname": "Itayvargas✨", + "signature": "Síganme en Instagram👆🏻🤩\n•Dancer✨\n💛Amo a todos mis 10,1M💛 Amen👁👄👁", + "avatar_thumb": { + "uri": "musically-maliva-obj/1645123795939334", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1645123795939334~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1645123795939334", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1645123795939334~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "itayvargas", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "CL", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094801011513313914241F6A" + ], + "width": 720, + "height": 720 + } + ], + "language": "es", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1645123795939334", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1645123795939334~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1645123795939334", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1645123795939334~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAahEaTJvaO54MmxLwYfP7M_nfokLn9mHOlYQbi7SJmMt0KG_loMzIe91Enj41yzwH", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6832765450737274000, + "id_str": "6832765450737273605", + "title": "original sound - jexsoficial", + "author": "Jexs", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658204704680965~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658204704680965~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658204704680965~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658204704680965~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/9233fc7ee4f8fd48a274bc9c662f3071.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/9233fc7ee4f8fd48a274bc9c662f3071.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 10, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6768992373928657925", + "owner_nickname": "Jexs", + "is_original": false, + "mid": "6832765450737273605", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "jexsoficial", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAL984GxeGx4KTSdc-xj7L81-wE8orJsL3lR7R7d77K31q5b26qkiPQ5Zds1W5J8b8", + "avatar_thumb": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658204704680965~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658204704680965~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658204704680965~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brf8tkvdee92g4ncdhsg_h264_540p_1804037", + "data_size": 2471306 + }, + "cover": { + "uri": "tos-maliva-p-0068/18ec1a7680a4467e9d15ace29aacb6df", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/18ec1a7680a4467e9d15ace29aacb6df~noop.webp?x-expires=1592658000&x-signature=gN%2F1m%2BOOdMDQr1D7ERcCtZEMKBI%3D&l=2020061813094801011513313914241F6A" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/11e9c7adaccf496aa1aceecdf8e864c5_1591643975", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/11e9c7adaccf496aa1aceecdf8e864c5_1591643975?x-expires=1592658000&x-signature=Ydo924zphy3wswJo%2BvSVHDRpq%2F0%3D&l=2020061813094801011513313914241F6A" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/5200691e81c940fb9e049efa757c5a6c_1591643974", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/5200691e81c940fb9e049efa757c5a6c_1591643974~noop.image?x-expires=1592658000&x-signature=i%2F4%2B2nVtpKZr5R1nkVelIf1cMXU%3D&l=2020061813094801011513313914241F6A" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2552572 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1804037, + "play_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brf8tkvdee92g4ncdhsg_h264_540p_1804037", + "data_size": 2471306 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 980427, + "play_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brf8tkvdee92g4ncdhsg_h264_540p_980427", + "data_size": 1343063 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 696683, + "play_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brf8tkvdee92g4ncdhsg_h264_540p_696683", + "data_size": 954369 + }, + "is_h265": 0 + } + ], + "duration": 10959, + "download_suffix_logo_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2620175 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044490000brf8tkvdee92g4ncdhsg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2681380}}\n" + }, + "share_url": "https://m.tiktok.com/v/6836058802383523078.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836058802383523078", + "user_digged": 0, + "statistics": { + "aweme_id": "6836058802383523078", + "comment_count": 12480, + "digg_count": 2435862, + "download_count": 71070, + "play_count": 18409048, + "share_count": 29080, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 16640 + }, + "status": { + "aweme_id": "6836058802383523078", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 47, + "end": 59, + "user_id": "115013876009553920", + "type": 0, + "sec_uid": "MS4wLjABAAAADgBkjaM8qPbasbsn02L4_3XQpQ4wfFw6q7Hw5XWFqj4VyKKIKqo79NlO5019UtX6" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094801011513313914241F6A" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6836058802383523078.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836058802383523078", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Itayvargas✨’s video! #TikTok > ", + "share_desc": "Check out Itayvargas✨'s video! #TikTok", + "share_title": "Check out Itayvargas✨’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10959, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 145063685563133950, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "CL", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836058802383523078", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "es", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6838306490470714629", + "desc": "TYSM for 7.8M!!❤️🥺", + "create_time": 1592167304, + "author": { + "uid": "81563067905437696", + "short_id": "21541917340", + "nickname": "hannah", + "signature": "ceo of bucket hats\ninquiries: diversity.perth@hotmail.com\nsign the petitions👇🏻", + "avatar_thumb": { + "uri": "musically-maliva-obj/b88d17f0f67f4867fc00d28f240bf8eb", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/b88d17f0f67f4867fc00d28f240bf8eb~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/b88d17f0f67f4867fc00d28f240bf8eb", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/b88d17f0f67f4867fc00d28f240bf8eb~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": false, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "thexhan", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 0, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AU", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1659168052954118", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1659168052954118" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094801011513313914241F6A" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/b88d17f0f67f4867fc00d28f240bf8eb", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/b88d17f0f67f4867fc00d28f240bf8eb~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/b88d17f0f67f4867fc00d28f240bf8eb", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/b88d17f0f67f4867fc00d28f240bf8eb~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAsw6X2YHY6pP_xQiboQzoQSo46e8yH988YiB7I9s7db6dqDwhG0D9sn9a1L-R_AFe", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6696803679212719000, + "id_str": "6696803679212718854", + "title": "Hotel Room", + "author": "🎀🧸", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1650000357417990", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1650000357417990~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1650000357417990", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1650000357417990~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1650000357417990", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1650000357417990~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1650000357417990", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1650000357417990~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1634965239131158.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1634965239131158.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6673232429644137477", + "owner_nickname": "🎀🧸", + "is_original": false, + "mid": "6696803679212718854", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "qt.ducks", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1635001610679302", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1635001610679302" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAABQpGrS_rz1QE0hy8wBVe03qrOD3oLA-SNVixXkqBLkcLcOGGMp6SiqsniqTctIfw", + "avatar_thumb": { + "uri": "musically-maliva-obj/1650000357417990", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1650000357417990~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1650000357417990", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1650000357417990~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1650000357417990", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1650000357417990~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044f70000brj8mj4qq9h47hl9j3o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brj8mj4qq9h47hl9j3o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brj8mj4qq9h47hl9j3o0_h264_540p_1138254", + "data_size": 1265170 + }, + "cover": { + "uri": "tos-maliva-p-0068/181361c886c7409b912573b092210f78_1592167306", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/181361c886c7409b912573b092210f78_1592167306~noop.webp?x-expires=1592658000&x-signature=QXDy8ZvBK95GO8PNj8hfGRbKkxY%3D&l=2020061813094801011513313914241F6A" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1ed33f67595f4568875cc253e017a35d_1592167306", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1ed33f67595f4568875cc253e017a35d_1592167306?x-expires=1592658000&x-signature=Emerm57HkCotCJIucKV1cLMj1I0%3D&l=2020061813094801011513313914241F6A" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/f4359cb0fe3741e2acdba739f3db934e_1592167306", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/f4359cb0fe3741e2acdba739f3db934e_1592167306~noop.image?x-expires=1592658000&x-signature=chGkSoUfGfOZSyVAGIQxSSneAIs%3D&l=2020061813094801011513313914241F6A" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044f70000brj8mj4qq9h47hl9j3o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brj8mj4qq9h47hl9j3o0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1313369 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1138254, + "play_addr": { + "uri": "v09044f70000brj8mj4qq9h47hl9j3o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brj8mj4qq9h47hl9j3o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brj8mj4qq9h47hl9j3o0_h264_540p_1138254", + "data_size": 1265170 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 663114, + "play_addr": { + "uri": "v09044f70000brj8mj4qq9h47hl9j3o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brj8mj4qq9h47hl9j3o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brj8mj4qq9h47hl9j3o0_h264_540p_663114", + "data_size": 737052 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 482768, + "play_addr": { + "uri": "v09044f70000brj8mj4qq9h47hl9j3o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brj8mj4qq9h47hl9j3o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brj8mj4qq9h47hl9j3o0_h264_540p_482768", + "data_size": 536597 + }, + "is_h265": 0 + } + ], + "duration": 8892, + "download_suffix_logo_addr": { + "uri": "v09044f70000brj8mj4qq9h47hl9j3o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brj8mj4qq9h47hl9j3o0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1380790 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044f70000brj8mj4qq9h47hl9j3o0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brj8mj4qq9h47hl9j3o0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1422765}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838306490470714629.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838306490470714629", + "user_digged": 0, + "statistics": { + "aweme_id": "6838306490470714629", + "comment_count": 35042, + "digg_count": 4420837, + "download_count": 36683, + "play_count": 20534827, + "share_count": 18456, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 3886 + }, + "status": { + "aweme_id": "6838306490470714629", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094801011513313914241F6A" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838306490470714629.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838306490470714629", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out hannah’s video! #TikTok > ", + "share_desc": "Check out hannah's video! #TikTok", + "share_title": "Check out hannah’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8892, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":81563067905437696,\"author_country\":\"Australia\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 81563067905437700, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AU", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838306490470714629", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813094801011513313914241F6A" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/assets/i18#lang_es/cl.json b/config.es/assets/i18#lang_es/cl.json new file mode 100644 index 0000000..2f06402 --- /dev/null +++ b/config.es/assets/i18#lang_es/cl.json @@ -0,0 +1,1023 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6836058802383523078", + "desc": "La mejor distracción👁👄👁😎 insta:itayvargass @ofirvargass 💙", + "create_time": 1591643972, + "author": { + "uid": "145063685563133952", + "short_id": "21481975137", + "nickname": "Itayvargas✨", + "signature": "Síganme en Instagram👆🏻🤩\n•Dancer✨\n💛Amo a todos mis 10,1M💛 Amen👁👄👁", + "avatar_thumb": { + "uri": "musically-maliva-obj/1645123795939334", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1645123795939334~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1645123795939334", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1645123795939334~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "itayvargas", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "CL", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309500101151761340F2440D6" + ], + "width": 720, + "height": 720 + } + ], + "language": "es", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1645123795939334", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1645123795939334~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1645123795939334", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1645123795939334~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAahEaTJvaO54MmxLwYfP7M_nfokLn9mHOlYQbi7SJmMt0KG_loMzIe91Enj41yzwH", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6832765450737274000, + "id_str": "6832765450737273605", + "title": "original sound - jexsoficial", + "author": "Jexs", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658204704680965~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658204704680965~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658204704680965~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658204704680965~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/9233fc7ee4f8fd48a274bc9c662f3071.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/9233fc7ee4f8fd48a274bc9c662f3071.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 10, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6768992373928657925", + "owner_nickname": "Jexs", + "is_original": false, + "mid": "6832765450737273605", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "jexsoficial", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAL984GxeGx4KTSdc-xj7L81-wE8orJsL3lR7R7d77K31q5b26qkiPQ5Zds1W5J8b8", + "avatar_thumb": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658204704680965~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658204704680965~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1658204704680965", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658204704680965~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brf8tkvdee92g4ncdhsg_h264_540p_1804037", + "data_size": 2471306 + }, + "cover": { + "uri": "tos-maliva-p-0068/18ec1a7680a4467e9d15ace29aacb6df", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/18ec1a7680a4467e9d15ace29aacb6df~noop.webp?x-expires=1592658000&x-signature=gN%2F1m%2BOOdMDQr1D7ERcCtZEMKBI%3D&l=202006181309500101151761340F2440D6" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/11e9c7adaccf496aa1aceecdf8e864c5_1591643975", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/11e9c7adaccf496aa1aceecdf8e864c5_1591643975?x-expires=1592658000&x-signature=Ydo924zphy3wswJo%2BvSVHDRpq%2F0%3D&l=202006181309500101151761340F2440D6" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/5200691e81c940fb9e049efa757c5a6c_1591643974", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/5200691e81c940fb9e049efa757c5a6c_1591643974~noop.image?x-expires=1592658000&x-signature=i%2F4%2B2nVtpKZr5R1nkVelIf1cMXU%3D&l=202006181309500101151761340F2440D6" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2552572 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1804037, + "play_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brf8tkvdee92g4ncdhsg_h264_540p_1804037", + "data_size": 2471306 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 980427, + "play_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brf8tkvdee92g4ncdhsg_h264_540p_980427", + "data_size": 1343063 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 696683, + "play_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brf8tkvdee92g4ncdhsg_h264_540p_696683", + "data_size": 954369 + }, + "is_h265": 0 + } + ], + "duration": 10959, + "download_suffix_logo_addr": { + "uri": "v09044490000brf8tkvdee92g4ncdhsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2620175 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044490000brf8tkvdee92g4ncdhsg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brf8tkvdee92g4ncdhsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2681380}}\n" + }, + "share_url": "https://m.tiktok.com/v/6836058802383523078.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836058802383523078", + "user_digged": 0, + "statistics": { + "aweme_id": "6836058802383523078", + "comment_count": 12480, + "digg_count": 2435862, + "download_count": 71070, + "play_count": 18409060, + "share_count": 29080, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 16640 + }, + "status": { + "aweme_id": "6836058802383523078", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 47, + "end": 59, + "user_id": "115013876009553920", + "type": 0, + "sec_uid": "MS4wLjABAAAADgBkjaM8qPbasbsn02L4_3XQpQ4wfFw6q7Hw5XWFqj4VyKKIKqo79NlO5019UtX6" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309500101151761340F2440D6" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6836058802383523078.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836058802383523078", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Itayvargas✨’s video! #TikTok > ", + "share_desc": "Check out Itayvargas✨'s video! #TikTok", + "share_title": "Check out Itayvargas✨’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10959, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 145063685563133950, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "CL", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836058802383523078", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "es", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6812097963884580102", + "desc": "my best dressup with joker head💓💘 comment your best dressup😘🌹 #foryou😚 #keepsupporting🙏 #FreefireNepal😘🌹", + "create_time": 1586065156, + "author": { + "uid": "6776547527023084545", + "short_id": "33765279057", + "nickname": "❤Chimsey❤🔥", + "signature": "SaNdEep Gurung😊\nFrom:-Lamjung❤\n FreefireNamE:-꧁࿐丂สиd¡թꔪᴰᵍ\nLvL=71😊\nPeaCe😪🌹", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "sandeep_official10", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "NP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309500101151761340F2440D6" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAAW5JaQhopEyulQUMSwL3u3VTPw3QBw0q7oDonr6AqfNdajOi98iFLLm_k_54ExZI", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6791463192963878000, + "id_str": "6791463192963877637", + "title": "original sound - poozachetry4", + "author": "Raj----puja♥️♥️", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658080562814982.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658080562814982.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6650365703969701894", + "owner_nickname": "Raj----puja♥️♥️", + "is_original": false, + "mid": "6791463192963877637", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "poozachetry4", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658479508983810", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658479508983810" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhGpxSePlZBwp4bv7wOCkUPLRXu4YoD3Vh5mVkapkiCUG1a199XdUKtWlebRXypze", + "avatar_thumb": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1614592377069573", + "cha_name": "foryou😚", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1614592377069573", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1614592377069573.html?name=foryou%F0%9F%98%9A&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1614592377069573", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou😚 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou😚 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou😚", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_867816", + "data_size": 1108310 + }, + "cover": { + "uri": "tos-maliva-p-0068/368091d581ef4885ad80c7a53fdf65ca_1586065161", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/368091d581ef4885ad80c7a53fdf65ca_1586065161~noop.webp?x-expires=1592658000&x-signature=sANlKuyDyicRw61mMPQJ8ZKhKbE%3D&l=202006181309500101151761340F2440D6" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/100c6728d8534b23814228d628ffcdbb_1586065161", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/100c6728d8534b23814228d628ffcdbb_1586065161?x-expires=1592658000&x-signature=4tr1nksQbR9tL639taKC0HG3aFo%3D&l=202006181309500101151761340F2440D6" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/758b6771bda64915bb13576ffaa92f30_1586065161", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/758b6771bda64915bb13576ffaa92f30_1586065161~noop.image?x-expires=1592658000&x-signature=8RBWsxuPCXbtfylijGbh8C4tljs%3D&l=202006181309500101151761340F2440D6" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 757755 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 867816, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_867816", + "data_size": 1108310 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 428226, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_428226", + "data_size": 546899 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 292366, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_292366", + "data_size": 373389 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 803284 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401 + }, + "share_url": "https://m.tiktok.com/v/6812097963884580102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812097963884580102", + "user_digged": 0, + "statistics": { + "aweme_id": "6812097963884580102", + "comment_count": 77, + "digg_count": 12896, + "download_count": 969, + "play_count": 192774, + "share_count": 207, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 24 + }, + "status": { + "aweme_id": "6812097963884580102", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 67, + "end": 76, + "type": 1, + "hashtag_name": "foryou😚", + "hashtag_id": "1614592377069573", + "is_commerce": false + }, + { + "start": 77, + "end": 94, + "type": 1, + "hashtag_name": "keepsupporting🙏", + "hashtag_id": "1616815176991749", + "is_commerce": false + }, + { + "start": 95, + "end": 113, + "type": 1, + "hashtag_name": "freefirenepal😘🌹", + "hashtag_id": "1663109709893638", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309500101151761340F2440D6" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6812097963884580102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812097963884580102", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ❤Chimsey❤🔥’s video! #TikTok > ", + "share_desc": "Check out ❤Chimsey❤🔥's video! #TikTok", + "share_title": "Check out ❤Chimsey❤🔥’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6776547527023084545,\"author_country\":\"Nepal\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6776547527023085000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "NP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6812097963884580102", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309387\",\"mv_info\":{\"id\":\"309387\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485792000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309500101151761340F2440D6" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/assets/i18#lang_es/co.json b/config.es/assets/i18#lang_es/co.json new file mode 100644 index 0000000..fcf4070 --- /dev/null +++ b/config.es/assets/i18#lang_es/co.json @@ -0,0 +1,1009 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6836057291356212485", + "desc": "Este ritmo me gusta mucho 🙄 #FYP", + "create_time": 1591643621, + "author": { + "uid": "6712891649730020357", + "short_id": "46106718880", + "nickname": "Luisa Castro", + "signature": "19✨ \nColombiana 🇨🇴❤️", + "avatar_thumb": { + "uri": "musically-maliva-obj/1653009316211717", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1653009316211717~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1653009316211717", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1653009316211717~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "luisacastrogarcia1585", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "CO", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094701011515109711240259" + ], + "width": 720, + "height": 720 + } + ], + "language": "es", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/1653009316211717", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1653009316211717~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1653009316211717", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1653009316211717~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAimIeav6pDLoRCbdqnxJEEqvb0wZwy8EG8wanU3huETBU5miEF78ARCkebombRomy", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6712899612438466000, + "id_str": "6712899612438465286", + "title": "Coño (feat. Jhorrmountain x Adje)", + "author": "Puri", + "album": "luluuu777", + "cover_hd": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/3e90ce8a08ab9118d3247c8934ec2897.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/3e90ce8a08ab9118d3247c8934ec2897.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078036739076\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078040742915\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078036779011\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078040718340\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6712899612438465286", + "binded_challenge_id": 1662232588115974, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "229207", + "cha_name": "fyp", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=229207", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/229207.html?name=fyp&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=229207", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #fyp Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #fyp Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: fyp", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044500000brf8re39q0b868s227dg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brf8re39q0b868s227dg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044500000brf8re39q0b868s227dg_h264_540p_1433226", + "data_size": 2400117 + }, + "cover": { + "uri": "tos-maliva-p-0068/a8c39e0e3a8244218ebb30b592edbb0b", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/a8c39e0e3a8244218ebb30b592edbb0b~noop.webp?x-expires=1592658000&x-signature=EQE3wbrqhd7bcl%2FjqR1d33aeY4Q%3D&l=2020061813094701011515109711240259" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/6641280cc09242db8f6da4618ea80546_1591643623", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/6641280cc09242db8f6da4618ea80546_1591643623?x-expires=1592658000&x-signature=cFd4UbUadG3atZA5UND1stigEXM%3D&l=2020061813094701011515109711240259" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/40918eda43044fbf9da855775182a563_1591643623", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/40918eda43044fbf9da855775182a563_1591643623~noop.image?x-expires=1592658000&x-signature=DkihBbdl7pG1Vfu0MLmWbaIvzcM%3D&l=2020061813094701011515109711240259" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044500000brf8re39q0b868s227dg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brf8re39q0b868s227dg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2449821 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1433226, + "play_addr": { + "uri": "v09044500000brf8re39q0b868s227dg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brf8re39q0b868s227dg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044500000brf8re39q0b868s227dg_h264_540p_1433226", + "data_size": 2400117 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 785480, + "play_addr": { + "uri": "v09044500000brf8re39q0b868s227dg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brf8re39q0b868s227dg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044500000brf8re39q0b868s227dg_h264_540p_785480", + "data_size": 1315386 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 546729, + "play_addr": { + "uri": "v09044500000brf8re39q0b868s227dg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brf8re39q0b868s227dg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044500000brf8re39q0b868s227dg_h264_540p_546729", + "data_size": 915567 + }, + "is_h265": 0 + } + ], + "duration": 13397, + "download_suffix_logo_addr": { + "uri": "v09044500000brf8re39q0b868s227dg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brf8re39q0b868s227dg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2519055 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044500000brf8re39q0b868s227dg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brf8re39q0b868s227dg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2589744}}\n" + }, + "share_url": "https://m.tiktok.com/v/6836057291356212485.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836057291356212485", + "user_digged": 0, + "statistics": { + "aweme_id": "6836057291356212485", + "comment_count": 927, + "digg_count": 276123, + "download_count": 3236, + "play_count": 4287970, + "share_count": 2600, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 914 + }, + "status": { + "aweme_id": "6836057291356212485", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 29, + "end": 33, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094701011515109711240259" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6836057291356212485.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836057291356212485", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Luisa Castro’s video! #TikTok > ", + "share_desc": "Check out Luisa Castro's video! #TikTok", + "share_title": "Check out Luisa Castro’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13397, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6712891649730020000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "CO", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836057291356212485", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "es", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6829378131174903046", + "desc": "the tables have turned😳😂💙 @itsjonathanle #shluvhouse", + "create_time": 1590088508, + "author": { + "uid": "3777553", + "short_id": "21528855184", + "nickname": "Michael Le", + "signature": "💙SHLUV GANG💙\nBLACK LIVES MATTER✊🏿", + "avatar_thumb": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "justmaiko", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094701011515109711240259" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA6klSQuO9zZPMccWbBdMw9p-cfmr8NbpmXUQHfj6p6f8", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6807966889273347000, + "id_str": "6807966889273346822", + "title": "Dream Girl", + "author": "Ir Sais", + "album": "Dream Girl", + "cover_hd": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b81d748dbd14706e00c83a0df45571f1.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b81d748dbd14706e00c83a0df45571f1.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 10, + "extra": "{\"apple_song_id\":1463442940,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428402455566\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428398742535\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428402486286\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428398800903\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6807966889273346822", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1463442940", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 106.6, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1665874382141446", + "cha_name": "shluvhouse", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1665874382141446", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1665874382141446.html?name=shluvhouse&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1665874382141446", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #shluvhouse Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #shluvhouse Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: shluvhouse", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3d65q6aghev3t4c3lg_h264_540p_1110391", + "data_size": 1417970 + }, + "cover": { + "uri": "tos-maliva-p-0068/ecb40d5369544c259a41fd107ab870b4", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ecb40d5369544c259a41fd107ab870b4~noop.webp?x-expires=1592658000&x-signature=kUrUYB8qKnLW0JXt%2BcU1boYHuQY%3D&l=2020061813094701011515109711240259" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/690fc3d3f5e14725908db70cb8020182_1590088511", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/690fc3d3f5e14725908db70cb8020182_1590088511?x-expires=1592658000&x-signature=xRCNxfxFotcNCr78qSiGBHs6uH0%3D&l=2020061813094701011515109711240259" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/7ea5ab7ff6194ff6b35c3de34955efa3_1590088511", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/7ea5ab7ff6194ff6b35c3de34955efa3_1590088511~noop.image?x-expires=1592658000&x-signature=MQgnGFgIw25I%2BldxXdrV%2B3InmOY%3D&l=2020061813094701011515109711240259" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1504521 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1110391, + "play_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3d65q6aghev3t4c3lg_h264_540p_1110391", + "data_size": 1417970 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 645034, + "play_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3d65q6aghev3t4c3lg_h264_540p_645034", + "data_size": 823709 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 467451, + "play_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3d65q6aghev3t4c3lg_h264_540p_467451", + "data_size": 596935 + }, + "is_h265": 0 + } + ], + "duration": 10216, + "download_suffix_logo_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1573409 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044880000br3d65q6aghev3t4c3lg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1611780}}\n" + }, + "share_url": "https://m.tiktok.com/v/6829378131174903046.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829378131174903046", + "user_digged": 0, + "statistics": { + "aweme_id": "6829378131174903046", + "comment_count": 22635, + "digg_count": 5375917, + "download_count": 83896, + "play_count": 45384533, + "share_count": 46943, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 15450 + }, + "status": { + "aweme_id": "6829378131174903046", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 29, + "end": 43, + "user_id": "6751629568215467014", + "type": 0, + "sec_uid": "MS4wLjABAAAAHp78vT5smZmmQ0sJoL9BdVK2iTLC2l9rBwyxFsH76NWQyTjZ6IItaXtUPvHxmRBN" + }, + { + "start": 44, + "end": 55, + "type": 1, + "hashtag_name": "shluvhouse", + "hashtag_id": "1665874382141446", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094701011515109711240259" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6829378131174903046.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829378131174903046", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Michael Le’s video! #TikTok > ", + "share_desc": "Check out Michael Le's video! #TikTok", + "share_title": "Check out Michael Le’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10216, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":3777553,\"author_country\":\"United States\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 3777553, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829378131174903046", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813094701011515109711240259" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/assets/i18#lang_es/cr.json b/config.es/assets/i18#lang_es/cr.json new file mode 100644 index 0000000..bb6cdd7 --- /dev/null +++ b/config.es/assets/i18#lang_es/cr.json @@ -0,0 +1,932 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837123002526600454", + "desc": "THANK YOU FOR 25M💙 WE BACK BABYY🤪 @itsjonathanle", + "create_time": 1591891751, + "author": { + "uid": "3777553", + "short_id": "21528855184", + "nickname": "Michael Le", + "signature": "💙SHLUV GANG💙\nBLACK LIVES MATTER✊🏿", + "avatar_thumb": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "justmaiko", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150041691B23B1BA" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA6klSQuO9zZPMccWbBdMw9p-cfmr8NbpmXUQHfj6p6f8", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6807966889273347000, + "id_str": "6807966889273346822", + "title": "Dream Girl", + "author": "Ir Sais", + "album": "Dream Girl", + "cover_hd": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b81d748dbd14706e00c83a0df45571f1.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b81d748dbd14706e00c83a0df45571f1.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 10, + "extra": "{\"reviewed\":1,\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428398800903\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428402455566\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428398742535\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428402486286\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1463442940,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6807966889273346822", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1463442940", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 106.6, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044570000brh5e8o7di7ek1n60vu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brh5e8o7di7ek1n60vu0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brh5e8o7di7ek1n60vu0_h264_540p_1852266", + "data_size": 2365344 + }, + "cover": { + "uri": "tos-maliva-p-0068/8c95e79db89f447794411f078f52b0f1", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8c95e79db89f447794411f078f52b0f1~noop.webp?x-expires=1592658000&x-signature=e8czJa%2BlL0MluWLs664LWzTsOvw%3D&l=202006181309470101150041691B23B1BA" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/e1546e857c6a4b37ba6231fc290a6d22_1591891754", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/e1546e857c6a4b37ba6231fc290a6d22_1591891754?x-expires=1592658000&x-signature=G%2BTC%2FmCAHPB9zvbwlpOIjNepI7g%3D&l=202006181309470101150041691B23B1BA" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/79cdb2259ee6440ab8e0d841b65fdcc4_1591891753", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/79cdb2259ee6440ab8e0d841b65fdcc4_1591891753~noop.image?x-expires=1592658000&x-signature=sMuFq6vxg6E%2BHb3%2BHEo8CkiF8ZE%3D&l=202006181309470101150041691B23B1BA" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brh5e8o7di7ek1n60vu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brh5e8o7di7ek1n60vu0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2462493 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1852266, + "play_addr": { + "uri": "v09044570000brh5e8o7di7ek1n60vu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brh5e8o7di7ek1n60vu0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brh5e8o7di7ek1n60vu0_h264_540p_1852266", + "data_size": 2365344 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 949162, + "play_addr": { + "uri": "v09044570000brh5e8o7di7ek1n60vu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brh5e8o7di7ek1n60vu0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brh5e8o7di7ek1n60vu0_h264_540p_949162", + "data_size": 1212080 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 645321, + "play_addr": { + "uri": "v09044570000brh5e8o7di7ek1n60vu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brh5e8o7di7ek1n60vu0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brh5e8o7di7ek1n60vu0_h264_540p_645321", + "data_size": 824076 + }, + "is_h265": 0 + } + ], + "duration": 10216, + "download_suffix_logo_addr": { + "uri": "v09044570000brh5e8o7di7ek1n60vu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brh5e8o7di7ek1n60vu0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2530842 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brh5e8o7di7ek1n60vu0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brh5e8o7di7ek1n60vu0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2594009}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837123002526600454.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837123002526600454", + "user_digged": 0, + "statistics": { + "aweme_id": "6837123002526600454", + "comment_count": 43216, + "digg_count": 13683497, + "download_count": 194480, + "play_count": 121996518, + "share_count": 91610, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 34765 + }, + "status": { + "aweme_id": "6837123002526600454", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 36, + "end": 50, + "user_id": "6751629568215467014", + "type": 0, + "sec_uid": "MS4wLjABAAAAHp78vT5smZmmQ0sJoL9BdVK2iTLC2l9rBwyxFsH76NWQyTjZ6IItaXtUPvHxmRBN" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150041691B23B1BA" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837123002526600454.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837123002526600454", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Michael Le’s video! #TikTok > ", + "share_desc": "Check out Michael Le's video! #TikTok", + "share_title": "Check out Michael Le’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10216, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 3777553, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837123002526600454", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6836530056009960709", + "desc": "", + "create_time": 1591753695, + "author": { + "uid": "55334881676779520", + "short_id": "21459052939", + "nickname": "Lilith Cavaliere ", + "signature": "Follow my instagram Lilithcavalierex 💖 \nGo checkout my YouTube channel", + "avatar_thumb": { + "uri": "musically-maliva-obj/2c94e190f51cebad7132351e54dbfda4", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2c94e190f51cebad7132351e54dbfda4~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2c94e190f51cebad7132351e54dbfda4", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2c94e190f51cebad7132351e54dbfda4~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "lilithcavaliere", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AU", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150041691B23B1BA" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/2c94e190f51cebad7132351e54dbfda4", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2c94e190f51cebad7132351e54dbfda4~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2c94e190f51cebad7132351e54dbfda4", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2c94e190f51cebad7132351e54dbfda4~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA3216IKN9_Zj2JFVquaEY3Mi0Wp25artCxanHBP0vOdmFG9TLL-ql92zgEQoNFkHG", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6793014188441669000, + "id_str": "6793014188441668358", + "title": "THE BEAUTIFUL HAIR CHALLENGE", + "author": "Tyler Shelton", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1637614193268741", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1637614193268741~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1637614193268741", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1637614193268741~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1637614193268741", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1637614193268741~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1637614193268741", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1637614193268741~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658451354272773.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658451354272773.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6707665830966625286", + "owner_nickname": "Tyler Shelton", + "is_original": false, + "mid": "6793014188441668358", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "tylertraitors", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658634189417473", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658634189417473" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAA90LTHVeT5lC77EUCGnVXNZaV8XphECzDytUS_nYc4ezMOURlHwisLdmkGtIN6uGW", + "avatar_thumb": { + "uri": "musically-maliva-obj/1637614193268741", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1637614193268741~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1637614193268741", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1637614193268741~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1637614193268741", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1637614193268741~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044fa0000brg3nfqnvljfr8fvuhk0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brg3nfqnvljfr8fvuhk0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fa0000brg3nfqnvljfr8fvuhk0_h264_540p_1290312", + "data_size": 1516601 + }, + "cover": { + "uri": "tos-maliva-p-0068/3d5a513e755f4dfcb485ebcc1b573e60_1591753697", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/3d5a513e755f4dfcb485ebcc1b573e60_1591753697~noop.webp?x-expires=1592658000&x-signature=VHZm9G9eZO6d7k0Y9wrO%2FCqmA1A%3D&l=202006181309470101150041691B23B1BA" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/b504b8251a6742869b90c71e206934dc_1591753698", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/b504b8251a6742869b90c71e206934dc_1591753698?x-expires=1592658000&x-signature=YchND0fxDSuDx6KUW13tC1no3mU%3D&l=202006181309470101150041691B23B1BA" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/b572c60d46e64901aedfb728f035e852_1591753697", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b572c60d46e64901aedfb728f035e852_1591753697~noop.image?x-expires=1592658000&x-signature=bEPkEtFlaQTOdhuFHPsfjZOxJ%2Fw%3D&l=202006181309470101150041691B23B1BA" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044fa0000brg3nfqnvljfr8fvuhk0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brg3nfqnvljfr8fvuhk0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1548844 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1290312, + "play_addr": { + "uri": "v09044fa0000brg3nfqnvljfr8fvuhk0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brg3nfqnvljfr8fvuhk0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fa0000brg3nfqnvljfr8fvuhk0_h264_540p_1290312", + "data_size": 1516601 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 688287, + "play_addr": { + "uri": "v09044fa0000brg3nfqnvljfr8fvuhk0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brg3nfqnvljfr8fvuhk0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fa0000brg3nfqnvljfr8fvuhk0_h264_540p_688287", + "data_size": 808996 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 476512, + "play_addr": { + "uri": "v09044fa0000brg3nfqnvljfr8fvuhk0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brg3nfqnvljfr8fvuhk0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fa0000brg3nfqnvljfr8fvuhk0_h264_540p_476512", + "data_size": 560081 + }, + "is_h265": 0 + } + ], + "duration": 9403, + "download_suffix_logo_addr": { + "uri": "v09044fa0000brg3nfqnvljfr8fvuhk0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brg3nfqnvljfr8fvuhk0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1615286 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044fa0000brg3nfqnvljfr8fvuhk0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fa0000brg3nfqnvljfr8fvuhk0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1681195}}\n" + }, + "share_url": "https://m.tiktok.com/v/6836530056009960709.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836530056009960709", + "user_digged": 0, + "statistics": { + "aweme_id": "6836530056009960709", + "comment_count": 7805, + "digg_count": 492665, + "download_count": 21013, + "play_count": 9767201, + "share_count": 16116, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6792 + }, + "status": { + "aweme_id": "6836530056009960709", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150041691B23B1BA" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6836530056009960709.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836530056009960709", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Lilith Cavaliere ’s video! #TikTok > ", + "share_desc": "Check out Lilith Cavaliere 's video! #TikTok", + "share_title": "Check out Lilith Cavaliere ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9403, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":55334881676779520,\"author_country\":\"Australia\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 55334881676779520, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AU", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836530056009960709", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150041691B23B1BA" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/assets/i18#lang_es/default.json b/config.es/assets/i18#lang_es/default.json new file mode 100644 index 0000000..d44d932 --- /dev/null +++ b/config.es/assets/i18#lang_es/default.json @@ -0,0 +1,904 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837536632023878917", + "desc": "Amo ser Tu Mamá 🤤😍", + "create_time": 1591988057, + "author": { + "uid": "6747113208526193669", + "short_id": "45335745640", + "nickname": "Bárbara de regil", + "signature": "Mi poder es el AMOR ♥️ Tus palabras y pensamientos son PODEROSOS", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655501913499654", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655501913499654~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655501913499654", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655501913499654~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "barbara_deregil212", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "MX", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 1, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101152290641D23DF3F" + ], + "width": 720, + "height": 720 + } + ], + "language": "es", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/1655501913499654", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655501913499654~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1655501913499654", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655501913499654~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAZpz9sbYxyDfDVi9GU78LdenucMsz81fg8POYAK4qYbjFUGnm_tz8LsVcBlJj9r0g", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6799216883636636000, + "id_str": "6799216883636635649", + "title": "Yo Perreo Sola", + "author": "Bad Bunny", + "album": "YHLQMDLG", + "cover_hd": { + "uri": "tos-alisg-i-0000/52816d0668fb4c8ba3bf28d96590e9b7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/52816d0668fb4c8ba3bf28d96590e9b7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/52816d0668fb4c8ba3bf28d96590e9b7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/52816d0668fb4c8ba3bf28d96590e9b7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/52816d0668fb4c8ba3bf28d96590e9b7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/52816d0668fb4c8ba3bf28d96590e9b7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/52816d0668fb4c8ba3bf28d96590e9b7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/52816d0668fb4c8ba3bf28d96590e9b7.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/128cc4733cebb997ca0325d6fce6f34f.m4a", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/128cc4733cebb997ca0325d6fce6f34f.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 30, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1500776331,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6799216883636635649", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1500776331", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044470000brhsukgp685nll2iui3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhsukgp685nll2iui3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brhsukgp685nll2iui3g_h264_540p_1673170", + "data_size": 3156436 + }, + "cover": { + "uri": "tos-maliva-p-0068/9f20c1aa15784146a7ccbbd2eff0eb18", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/9f20c1aa15784146a7ccbbd2eff0eb18~noop.webp?x-expires=1592658000&x-signature=dxmZG%2FHEegkNrZ0D%2FC6PnzanoZU%3D&l=202006181309470101152290641D23DF3F" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/fc2be80dc9f749e2a0c132fd2987a6ac_1591988059", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/fc2be80dc9f749e2a0c132fd2987a6ac_1591988059?x-expires=1592658000&x-signature=micqVeMYx%2Bszpb4BTGAo7sTe5iY%3D&l=202006181309470101152290641D23DF3F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/b59ae5bf3e6f41bb93d965f8a98f59d8_1591988060", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b59ae5bf3e6f41bb93d965f8a98f59d8_1591988060~noop.image?x-expires=1592658000&x-signature=jmh77F8U0T6I8tbV7ibY56hMmtI%3D&l=202006181309470101152290641D23DF3F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044470000brhsukgp685nll2iui3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhsukgp685nll2iui3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3326788 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1673170, + "play_addr": { + "uri": "v09044470000brhsukgp685nll2iui3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhsukgp685nll2iui3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brhsukgp685nll2iui3g_h264_540p_1673170", + "data_size": 3156436 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 987681, + "play_addr": { + "uri": "v09044470000brhsukgp685nll2iui3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhsukgp685nll2iui3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brhsukgp685nll2iui3g_h264_540p_987681", + "data_size": 1863261 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 707008, + "play_addr": { + "uri": "v09044470000brhsukgp685nll2iui3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhsukgp685nll2iui3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brhsukgp685nll2iui3g_h264_540p_707008", + "data_size": 1333772 + }, + "is_h265": 0 + } + ], + "duration": 15092, + "download_suffix_logo_addr": { + "uri": "v09044470000brhsukgp685nll2iui3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhsukgp685nll2iui3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3395500 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044470000brhsukgp685nll2iui3g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brhsukgp685nll2iui3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3482427}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837536632023878917.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837536632023878917", + "user_digged": 0, + "statistics": { + "aweme_id": "6837536632023878917", + "comment_count": 10716, + "digg_count": 1193096, + "download_count": 10402, + "play_count": 12805377, + "share_count": 5201, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2129 + }, + "status": { + "aweme_id": "6837536632023878917", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101152290641D23DF3F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837536632023878917.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837536632023878917", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Bárbara de regil’s video! #TikTok > ", + "share_desc": "Check out Bárbara de regil's video! #TikTok", + "share_title": "Check out Bárbara de regil’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15092, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6747113208526194000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "MX", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837536632023878917", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "es", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":0,\"end_time\":15033.3333,\"p\":-1,\"y\":31.88,\"h\":0.1001,\"start_time\":0,\"r\":0,\"w\":0.0964,\"s\":1}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6835343937742785798", + "desc": "", + "create_time": 1591477530, + "author": { + "uid": "6766817196423414789", + "short_id": "45995249592", + "nickname": "riiiaaannnn", + "signature": "black lives matter", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665908400805894", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665908400805894~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665908400805894", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665908400805894~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "riiiaaannnn", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "CA", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101152290641D23DF3F" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665908400805894", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665908400805894~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665908400805894", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665908400805894~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAS4eYz1366WumW4SNlF68w3IYXqivPZWKxEQxZxaNYSx-BC3F1Z-mZWZ5LNIdAfrv", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6807639165665020000, + "id_str": "6807639165665019906", + "title": "Break My Heart", + "author": "Dua Lipa", + "album": "Break My Heart", + "cover_hd": { + "uri": "tos-alisg-i-0000/3a70ddb0a5eb4bdf81cbd76fe5a93285", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/3a70ddb0a5eb4bdf81cbd76fe5a93285.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/3a70ddb0a5eb4bdf81cbd76fe5a93285", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/3a70ddb0a5eb4bdf81cbd76fe5a93285.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/3a70ddb0a5eb4bdf81cbd76fe5a93285", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/3a70ddb0a5eb4bdf81cbd76fe5a93285.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/3a70ddb0a5eb4bdf81cbd76fe5a93285", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/3a70ddb0a5eb4bdf81cbd76fe5a93285.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/d5a80b5ed8563eee8759622537132763.m4a", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/d5a80b5ed8563eee8759622537132763.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 30, + "extra": "{\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1662203669700611\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1662203675776003\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1662203675741195\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1662203669669899\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1495799742,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6807639165665019906", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1495799742", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 131, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044190000bre0a58biap28fbh2bug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bre0a58biap28fbh2bug&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000bre0a58biap28fbh2bug_h264_540p_1671723", + "data_size": 3173349 + }, + "cover": { + "uri": "tos-maliva-p-0068/c8c0e417e7774dbabf4089aa5bd4c6bf", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/c8c0e417e7774dbabf4089aa5bd4c6bf~noop.webp?x-expires=1592658000&x-signature=Nxir3m5yTGPU3RgonbcocmLk1Xs%3D&l=202006181309470101152290641D23DF3F" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/2599b1597b3c40e5aaff4021c9e8d9cf_1591477533", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/2599b1597b3c40e5aaff4021c9e8d9cf_1591477533?x-expires=1592658000&x-signature=cHr%2FkS8TQqn8ISAcblZlxZ7jWsY%3D&l=202006181309470101152290641D23DF3F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/d67435f840b14c52bc96c652b3ecc704_1591477532", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d67435f840b14c52bc96c652b3ecc704_1591477532~noop.image?x-expires=1592658000&x-signature=6Bz%2B3TrN9z%2BUDCGxU8p07Sn1s%2Fc%3D&l=202006181309470101152290641D23DF3F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044190000bre0a58biap28fbh2bug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bre0a58biap28fbh2bug&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3223951 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1671723, + "play_addr": { + "uri": "v09044190000bre0a58biap28fbh2bug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bre0a58biap28fbh2bug&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000bre0a58biap28fbh2bug_h264_540p_1671723", + "data_size": 3173349 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 984375, + "play_addr": { + "uri": "v09044190000bre0a58biap28fbh2bug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bre0a58biap28fbh2bug&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000bre0a58biap28fbh2bug_h264_540p_984375", + "data_size": 1868590 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 712715, + "play_addr": { + "uri": "v09044190000bre0a58biap28fbh2bug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bre0a58biap28fbh2bug&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000bre0a58biap28fbh2bug_h264_540p_712715", + "data_size": 1352913 + }, + "is_h265": 0 + } + ], + "duration": 15186, + "download_suffix_logo_addr": { + "uri": "v09044190000bre0a58biap28fbh2bug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bre0a58biap28fbh2bug&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3287500 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044190000bre0a58biap28fbh2bug\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bre0a58biap28fbh2bug&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3387990}}\n" + }, + "share_url": "https://m.tiktok.com/v/6835343937742785798.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835343937742785798", + "user_digged": 0, + "statistics": { + "aweme_id": "6835343937742785798", + "comment_count": 2012, + "digg_count": 245537, + "download_count": 3593, + "play_count": 1866106, + "share_count": 9654, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2810 + }, + "status": { + "aweme_id": "6835343937742785798", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101152290641D23DF3F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6835343937742785798.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835343937742785798", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out riiiaaannnn’s video! #TikTok > ", + "share_desc": "Check out riiiaaannnn's video! #TikTok", + "share_title": "Check out riiiaaannnn’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15186, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6766817196423414789,\"author_country\":\"Canada\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6766817196423415000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "CA", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6835343937742785798", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101152290641D23DF3F" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/assets/i18#lang_es/do.json b/config.es/assets/i18#lang_es/do.json new file mode 100644 index 0000000..d9f9724 --- /dev/null +++ b/config.es/assets/i18#lang_es/do.json @@ -0,0 +1,1023 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6817208957552266502", + "desc": "@ashlymontero - DIGANME QUE NO ES SOLO AMI QUE SE ME QUEDA ESTA CANCION ❤️😂 #ashver", + "create_time": 1587255150, + "author": { + "uid": "6650537177690341382", + "short_id": "35797150544", + "nickname": "Elver Sánchez 🤍🔥", + "signature": "PRIMERO DIOS 🙏\nHABLAME POR INSTAGRAM 👆🏼\nNO USO FACEBOOK 🚫\nSUSCRÍBETE 👇🏽😍", + "avatar_thumb": { + "uri": "musically-maliva-obj/739df2d3b307270aa28bc15785ae67b8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/739df2d3b307270aa28bc15785ae67b8~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/739df2d3b307270aa28bc15785ae67b8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/739df2d3b307270aa28bc15785ae67b8~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "elvertsanchez", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "DO", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151331390B23FEDA" + ], + "width": 720, + "height": 720 + } + ], + "language": "es", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/739df2d3b307270aa28bc15785ae67b8", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/739df2d3b307270aa28bc15785ae67b8~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/739df2d3b307270aa28bc15785ae67b8", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/739df2d3b307270aa28bc15785ae67b8~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAHged34xfn1T50vyMJPCnRAX1Bs5f20O8Y03vH9LrK7twvqljUmxJ_wh3ZWaseN8E", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6804093117843770000, + "id_str": "6804093117843770118", + "title": "Laxed (Siren Beat)", + "author": "Jawsh 685", + "album": "Laxed (Siren Beat)", + "cover_hd": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1509920512,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353615373\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349662733\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353668615\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349691399\"}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6804093117843770118", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1509920512", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 71, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "29910756", + "cha_name": "ashver", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=29910756", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/29910756.html?name=ashver&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=29910756", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #ashver Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #ashver Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: ashver", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044530000bqdpegrvbv4ouuj04h10", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqdpegrvbv4ouuj04h10&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044530000bqdpegrvbv4ouuj04h10_h264_540p_1534050", + "data_size": 2902808 + }, + "cover": { + "uri": "tos-maliva-p-0068/7dbd3e3514d149578332b818643875b2_1587255153", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/7dbd3e3514d149578332b818643875b2_1587255153~noop.webp?x-expires=1592658000&x-signature=MKIywtnICcHDmEJvkhgPFLpcy7w%3D&l=202006181309470101151331390B23FEDA" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/a363026fd2dc4af59f083d7208d5d032_1587255154", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/a363026fd2dc4af59f083d7208d5d032_1587255154?x-expires=1592658000&x-signature=74i%2BmjB4HpjbAu%2FIX7tUJ7sTIck%3D&l=202006181309470101151331390B23FEDA" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/bd04f8e91099419b8f4b360905b5cd2c_1587255154", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/bd04f8e91099419b8f4b360905b5cd2c_1587255154~noop.image?x-expires=1592658000&x-signature=UTFkhNwnana8Z1YB2v3ZrVvVhh0%3D&l=202006181309470101151331390B23FEDA" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044530000bqdpegrvbv4ouuj04h10", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqdpegrvbv4ouuj04h10&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2931855 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1534050, + "play_addr": { + "uri": "v09044530000bqdpegrvbv4ouuj04h10", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqdpegrvbv4ouuj04h10&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044530000bqdpegrvbv4ouuj04h10_h264_540p_1534050", + "data_size": 2902808 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 848936, + "play_addr": { + "uri": "v09044530000bqdpegrvbv4ouuj04h10", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqdpegrvbv4ouuj04h10&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044530000bqdpegrvbv4ouuj04h10_h264_540p_848936", + "data_size": 1606401 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 604218, + "play_addr": { + "uri": "v09044530000bqdpegrvbv4ouuj04h10", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqdpegrvbv4ouuj04h10&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044530000bqdpegrvbv4ouuj04h10_h264_540p_604218", + "data_size": 1143332 + }, + "is_h265": 0 + } + ], + "duration": 15138, + "download_suffix_logo_addr": { + "uri": "v09044530000bqdpegrvbv4ouuj04h10", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqdpegrvbv4ouuj04h10&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2998556 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044530000bqdpegrvbv4ouuj04h10\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqdpegrvbv4ouuj04h10&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3068371}}\n" + }, + "share_url": "https://m.tiktok.com/v/6817208957552266502.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6817208957552266502", + "user_digged": 0, + "statistics": { + "aweme_id": "6817208957552266502", + "comment_count": 1353, + "digg_count": 171903, + "download_count": 6453, + "play_count": 2270444, + "share_count": 2050, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 614 + }, + "status": { + "aweme_id": "6817208957552266502", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 13, + "user_id": "109919731062542336", + "type": 0, + "sec_uid": "MS4wLjABAAAAwdf6-OmCdF33HCnqDrr_WMq0FdnJme7mi-8_scwwYm2CtHZkpYTnBMh9RqPu76SC" + }, + { + "start": 77, + "end": 84, + "type": 1, + "hashtag_name": "ashver", + "hashtag_id": "29910756", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151331390B23FEDA" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6817208957552266502.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6817208957552266502", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Elver Sánchez 🤍🔥’s video! #TikTok > ", + "share_desc": "Check out Elver Sánchez 🤍🔥's video! #TikTok", + "share_title": "Check out Elver Sánchez 🤍🔥’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15138, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6650537177690341000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "DO", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6817208957552266502", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "es", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6829378131174903046", + "desc": "the tables have turned😳😂💙 @itsjonathanle #shluvhouse", + "create_time": 1590088508, + "author": { + "uid": "3777553", + "short_id": "21528855184", + "nickname": "Michael Le", + "signature": "💙SHLUV GANG💙\nBLACK LIVES MATTER✊🏿", + "avatar_thumb": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "justmaiko", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151331390B23FEDA" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/f6c81a0d116527053074eab458edfe08", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/f6c81a0d116527053074eab458edfe08~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA6klSQuO9zZPMccWbBdMw9p-cfmr8NbpmXUQHfj6p6f8", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6807966889273347000, + "id_str": "6807966889273346822", + "title": "Dream Girl", + "author": "Ir Sais", + "album": "Dream Girl", + "cover_hd": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/1bc9ccdb71024095b7ef22a9271cf1e7.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b81d748dbd14706e00c83a0df45571f1.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b81d748dbd14706e00c83a0df45571f1.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 10, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1463442940,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428398800903\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428402455566\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428398742535\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1669428402486286\"},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6807966889273346822", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1463442940", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 106.6, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1665874382141446", + "cha_name": "shluvhouse", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1665874382141446", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1665874382141446.html?name=shluvhouse&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1665874382141446", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #shluvhouse Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #shluvhouse Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: shluvhouse", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3d65q6aghev3t4c3lg_h264_540p_1110391", + "data_size": 1417970 + }, + "cover": { + "uri": "tos-maliva-p-0068/ecb40d5369544c259a41fd107ab870b4", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ecb40d5369544c259a41fd107ab870b4~noop.webp?x-expires=1592658000&x-signature=kUrUYB8qKnLW0JXt%2BcU1boYHuQY%3D&l=202006181309470101151331390B23FEDA" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/690fc3d3f5e14725908db70cb8020182_1590088511", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/690fc3d3f5e14725908db70cb8020182_1590088511?x-expires=1592658000&x-signature=xRCNxfxFotcNCr78qSiGBHs6uH0%3D&l=202006181309470101151331390B23FEDA" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/7ea5ab7ff6194ff6b35c3de34955efa3_1590088511", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/7ea5ab7ff6194ff6b35c3de34955efa3_1590088511~noop.image?x-expires=1592658000&x-signature=MQgnGFgIw25I%2BldxXdrV%2B3InmOY%3D&l=202006181309470101151331390B23FEDA" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1504521 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1110391, + "play_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3d65q6aghev3t4c3lg_h264_540p_1110391", + "data_size": 1417970 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 645034, + "play_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3d65q6aghev3t4c3lg_h264_540p_645034", + "data_size": 823709 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 467451, + "play_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br3d65q6aghev3t4c3lg_h264_540p_467451", + "data_size": 596935 + }, + "is_h265": 0 + } + ], + "duration": 10216, + "download_suffix_logo_addr": { + "uri": "v09044880000br3d65q6aghev3t4c3lg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1573409 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044880000br3d65q6aghev3t4c3lg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br3d65q6aghev3t4c3lg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1611780}}\n" + }, + "share_url": "https://m.tiktok.com/v/6829378131174903046.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829378131174903046", + "user_digged": 0, + "statistics": { + "aweme_id": "6829378131174903046", + "comment_count": 22635, + "digg_count": 5375918, + "download_count": 83896, + "play_count": 45384539, + "share_count": 46943, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 15450 + }, + "status": { + "aweme_id": "6829378131174903046", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 29, + "end": 43, + "user_id": "6751629568215467014", + "type": 0, + "sec_uid": "MS4wLjABAAAAHp78vT5smZmmQ0sJoL9BdVK2iTLC2l9rBwyxFsH76NWQyTjZ6IItaXtUPvHxmRBN" + }, + { + "start": 44, + "end": 55, + "type": 1, + "hashtag_name": "shluvhouse", + "hashtag_id": "1665874382141446", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151331390B23FEDA" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6829378131174903046.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829378131174903046", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Michael Le’s video! #TikTok > ", + "share_desc": "Check out Michael Le's video! #TikTok", + "share_title": "Check out Michael Le’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10216, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":3777553,\"author_country\":\"United States\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 3777553, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829378131174903046", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101151331390B23FEDA" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/assets/i18#lang_es/ec.json b/config.es/assets/i18#lang_es/ec.json new file mode 100644 index 0000000..49d5d92 --- /dev/null +++ b/config.es/assets/i18#lang_es/ec.json @@ -0,0 +1,1015 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6822410528493669637", + "desc": "Cuál es tu golosina favorita ? 😂♥️ ig: bustabrothers_ofc 😂🍭 #ecuador #mexico #comedia #hermanos", + "create_time": 1588466237, + "author": { + "uid": "149047399355711488", + "short_id": "21646838064", + "nickname": "Kelly y David ", + "signature": "Ecuatorianos 🇪🇨♥️ \nInstagram: @bustabrothers_ofc 💥\nMúsica y comedia 🤩", + "avatar_thumb": { + "uri": "musically-maliva-obj/1657195626062853", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657195626062853~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1657195626062853", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657195626062853~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "busta_brothers", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "EC", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101150040621824098F" + ], + "width": 720, + "height": 720 + } + ], + "language": "es", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1657195626062853", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657195626062853~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1657195626062853", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657195626062853~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAhut1pkjoRo4c4ieQkJ72z-mU3gDBjhZPvanfM8wpfF5a9J2R1lUpcTS-QwBceBJw", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6812916530779573000, + "id_str": "6812916530779572998", + "title": "original sound - manlikeisaac", + "author": "Isaac", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663309922141222.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663309922141222.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 11, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "9878293", + "owner_nickname": "Isaac", + "is_original": false, + "mid": "6812916530779572998", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "manlikeisaac", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAbntVsv4uFKr6zo-FmUc1POJmuSCkm26nIwIVPKy7u5A", + "avatar_thumb": { + "uri": "musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/98aaa2830cddee4f3b042080bfd8b7f6~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "31306", + "cha_name": "ecuador", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=31306", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/31306.html?name=ecuador&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=31306", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #ecuador Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #ecuador Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: ecuador", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090441b0000bqn13qtb9tbsq7ic8q0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090441b0000bqn13qtb9tbsq7ic8q0g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090441b0000bqn13qtb9tbsq7ic8q0g_h264_540p_1305936", + "data_size": 1910259 + }, + "cover": { + "uri": "tos-maliva-p-0068/78ab1b062c264c7197d67280a700f7fc_1588466240", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/78ab1b062c264c7197d67280a700f7fc_1588466240~noop.webp?x-expires=1592658000&x-signature=BCy6wH7%2FuSAMJG36jULr7k8iw7M%3D&l=202006181309490101150040621824098F" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/d09aa3ba162147d0a9f2b0c96490d12e_1588466239", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/d09aa3ba162147d0a9f2b0c96490d12e_1588466239?x-expires=1592658000&x-signature=gufMBGmjUDRX9IkdAZTfeW1%2BPd4%3D&l=202006181309490101150040621824098F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/79ad533d637f4cf5bc902d4a80ac34fd_1588466238", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/79ad533d637f4cf5bc902d4a80ac34fd_1588466238~noop.image?x-expires=1592658000&x-signature=0lLowEnHpXaebenmj4IqspARKj8%3D&l=202006181309490101150040621824098F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090441b0000bqn13qtb9tbsq7ic8q0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090441b0000bqn13qtb9tbsq7ic8q0g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1999436 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1305936, + "play_addr": { + "uri": "v090441b0000bqn13qtb9tbsq7ic8q0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090441b0000bqn13qtb9tbsq7ic8q0g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090441b0000bqn13qtb9tbsq7ic8q0g_h264_540p_1305936", + "data_size": 1910259 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 715547, + "play_addr": { + "uri": "v090441b0000bqn13qtb9tbsq7ic8q0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090441b0000bqn13qtb9tbsq7ic8q0g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090441b0000bqn13qtb9tbsq7ic8q0g_h264_540p_715547", + "data_size": 1046667 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 509439, + "play_addr": { + "uri": "v090441b0000bqn13qtb9tbsq7ic8q0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090441b0000bqn13qtb9tbsq7ic8q0g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090441b0000bqn13qtb9tbsq7ic8q0g_h264_540p_509439", + "data_size": 745182 + }, + "is_h265": 0 + } + ], + "duration": 11702, + "download_suffix_logo_addr": { + "uri": "v090441b0000bqn13qtb9tbsq7ic8q0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090441b0000bqn13qtb9tbsq7ic8q0g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2067872 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090441b0000bqn13qtb9tbsq7ic8q0g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090441b0000bqn13qtb9tbsq7ic8q0g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2136258}}\n" + }, + "share_url": "https://m.tiktok.com/v/6822410528493669637.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6822410528493669637", + "user_digged": 0, + "statistics": { + "aweme_id": "6822410528493669637", + "comment_count": 16378, + "digg_count": 2122757, + "download_count": 95771, + "play_count": 26075853, + "share_count": 38761, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 21803 + }, + "status": { + "aweme_id": "6822410528493669637", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 63, + "end": 71, + "type": 1, + "hashtag_name": "ecuador", + "hashtag_id": "31306", + "is_commerce": false + }, + { + "start": 72, + "end": 79, + "type": 1, + "hashtag_name": "mexico", + "hashtag_id": "8181", + "is_commerce": false + }, + { + "start": 80, + "end": 88, + "type": 1, + "hashtag_name": "comedia", + "hashtag_id": "143516", + "is_commerce": false + }, + { + "start": 89, + "end": 98, + "type": 1, + "hashtag_name": "hermanos", + "hashtag_id": "28794", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101150040621824098F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6822410528493669637.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6822410528493669637", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Kelly y David ’s video! #TikTok > ", + "share_desc": "Check out Kelly y David 's video! #TikTok", + "share_title": "Check out Kelly y David ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 11702, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 149047399355711500, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "EC", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6822410528493669637", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "es", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832845022359080198", + "desc": "Ocio...", + "create_time": 1590895709, + "author": { + "uid": "216902970226110464", + "short_id": "21500838094", + "nickname": "Danna Paola", + "signature": "Small town girl...", + "avatar_thumb": { + "uri": "musically-maliva-obj/9b692eb89eba8fb21d1cf682588bb8db", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/9b692eb89eba8fb21d1cf682588bb8db~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/9b692eb89eba8fb21d1cf682588bb8db", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/9b692eb89eba8fb21d1cf682588bb8db~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "dannapaola", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "MX", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101150040621824098F" + ], + "width": 720, + "height": 720 + } + ], + "language": "es", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/9b692eb89eba8fb21d1cf682588bb8db", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/9b692eb89eba8fb21d1cf682588bb8db~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/9b692eb89eba8fb21d1cf682588bb8db", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/9b692eb89eba8fb21d1cf682588bb8db~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAai9WTNmYTBN8fUdgjjhnMptbMa3F6OcLoml2xMfP4HJJ30jld1owhFKvYVc7pKC_", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6826835492781182000, + "id_str": "6826835492781181701", + "title": "Nyquest_ Trend Mix", + "author": "NYQUEST🥁", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6a73c9a9bfdfb69f6668cb402150d97e.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6a73c9a9bfdfb69f6668cb402150d97e.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 23, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "291117568453435392", + "owner_nickname": "NYQUEST🥁", + "is_original": false, + "mid": "6826835492781181701", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "nyquest_", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAqWkKiH5XtXHpEpuErx4Kns4-fmceO3iQoThl178WHJgcmnZb9H_8fhqSmSJLdELm", + "avatar_thumb": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044ac0000br9i8k8lths1g4437160", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br9i8k8lths1g4437160&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000br9i8k8lths1g4437160_h264_540p_2313592", + "data_size": 4364592 + }, + "cover": { + "uri": "tos-maliva-p-0068/cee4cc45838e46b1a9c64b070ee14777", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/cee4cc45838e46b1a9c64b070ee14777~noop.webp?x-expires=1592658000&x-signature=4xWserbPpP9%2Fc%2B40hF%2B%2F0g9Uxt4%3D&l=202006181309490101150040621824098F" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/28e591239d504b42b1c9e48a7de32f8b_1590895712", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/28e591239d504b42b1c9e48a7de32f8b_1590895712?x-expires=1592658000&x-signature=0f8MbB0rtg9Y%2FV143LJxLbUS14I%3D&l=202006181309490101150040621824098F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/bb5e819ececf433ca4902599324d67bc_1590895710", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/bb5e819ececf433ca4902599324d67bc_1590895710~noop.image?x-expires=1592658000&x-signature=Oyp29SKA%2B8fGlmQz2PyOTJOsOT0%3D&l=202006181309490101150040621824098F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044ac0000br9i8k8lths1g4437160", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br9i8k8lths1g4437160&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4491957 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2313592, + "play_addr": { + "uri": "v09044ac0000br9i8k8lths1g4437160", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br9i8k8lths1g4437160&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000br9i8k8lths1g4437160_h264_540p_2313592", + "data_size": 4364592 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1328244, + "play_addr": { + "uri": "v09044ac0000br9i8k8lths1g4437160", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br9i8k8lths1g4437160&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000br9i8k8lths1g4437160_h264_540p_1328244", + "data_size": 2505733 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 914809, + "play_addr": { + "uri": "v09044ac0000br9i8k8lths1g4437160", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br9i8k8lths1g4437160&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000br9i8k8lths1g4437160_h264_540p_914809", + "data_size": 1725789 + }, + "is_h265": 0 + } + ], + "duration": 15092, + "download_suffix_logo_addr": { + "uri": "v09044ac0000br9i8k8lths1g4437160", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br9i8k8lths1g4437160&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4559154 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507405, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044ac0000br9i8k8lths1g4437160\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br9i8k8lths1g4437160&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4635033}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832845022359080198.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832845022359080198", + "user_digged": 0, + "statistics": { + "aweme_id": "6832845022359080198", + "comment_count": 13771, + "digg_count": 4028171, + "download_count": 89235, + "play_count": 47687477, + "share_count": 55978, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 25257 + }, + "status": { + "aweme_id": "6832845022359080198", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101150040621824098F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832845022359080198.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832845022359080198", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Danna Paola’s video! #TikTok > ", + "share_desc": "Check out Danna Paola's video! #TikTok", + "share_title": "Check out Danna Paola’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15092, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":216902970226110464,\"author_country\":\"Mexico\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 216902970226110460, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "MX", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832845022359080198", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 3, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "es", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485791000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309490101150040621824098F" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/assets/i18#lang_es/es.json b/config.es/assets/i18#lang_es/es.json new file mode 100644 index 0000000..56dd9f6 --- /dev/null +++ b/config.es/assets/i18#lang_es/es.json @@ -0,0 +1,1000 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6830145115093306629", + "desc": "Fase 2!! 😂😂😂", + "create_time": 1590267084, + "author": { + "uid": "6807791878206817285", + "short_id": "47833590088", + "nickname": "Joaquin Sánchez", + "signature": "Del puerto de Sta Maria, del arte, del vino...\nAndalucía, pa vivir y mori", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665513175522310", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665513175522310~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665513175522310", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665513175522310~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "joaquinarte_", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "ES", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040640223FA96" + ], + "width": 720, + "height": 720 + } + ], + "language": "es", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665513175522310", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665513175522310~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665513175522310", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665513175522310~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAWWZ7_2esfqQPFXORyxufzP4mbPDMnDY5pkwcfRcI3zXOSmv4xyFannDsklr9rFze", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6728178485732412000, + "id_str": "6728178485732412166", + "title": "original sound - rocalina_ramos", + "author": "rocalina_ramos", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1631513959710790", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1631513959710790~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1631513959710790", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1631513959710790~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1631513959710790", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1631513959710790~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1631513959710790", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1631513959710790~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1642651203375110.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1642651203375110.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 14, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6729004929883112454", + "owner_nickname": "rocalina_ramos", + "is_original": false, + "mid": "6728178485732412166", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "rocalina_ramos", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1645979322557441", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1645979322557441" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAALUzn4sB1r_8deRTyne3JHMQw0Dj-COy5tU3x1O7M2hCJLdfnIFDiAEzLXvvZ8nQr", + "avatar_thumb": { + "uri": "musically-maliva-obj/1631513959710790", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1631513959710790~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1631513959710790", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1631513959710790~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1631513959710790", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1631513959710790~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044b80000br4opi0fd3u6eaulu150", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br4opi0fd3u6eaulu150&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br4opi0fd3u6eaulu150_h264_540p_1327640", + "data_size": 2103813 + }, + "cover": { + "uri": "tos-maliva-p-0068/ab8b4ec80afa4082b7f0e8925a9f9895", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ab8b4ec80afa4082b7f0e8925a9f9895~noop.webp?x-expires=1592658000&x-signature=EvJVpYEllCd0n0AagWdXw69HjVs%3D&l=202006181309470101150040640223FA96" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/c001d17290624c048a85f7e5b11e7b91_1590267086", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/c001d17290624c048a85f7e5b11e7b91_1590267086?x-expires=1592658000&x-signature=LTU4KYLtux7RPagsn8sfFZ6a%2FEc%3D&l=202006181309470101150040640223FA96" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/405fbc46bc5a4866b9bde938e7e9605f_1590267085", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/405fbc46bc5a4866b9bde938e7e9605f_1590267085~noop.image?x-expires=1592658000&x-signature=%2BvV2pdgPBO5pH%2BP7khdvGTETxIc%3D&l=202006181309470101150040640223FA96" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044b80000br4opi0fd3u6eaulu150", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br4opi0fd3u6eaulu150&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2195076 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1327640, + "play_addr": { + "uri": "v09044b80000br4opi0fd3u6eaulu150", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br4opi0fd3u6eaulu150&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br4opi0fd3u6eaulu150_h264_540p_1327640", + "data_size": 2103813 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 754053, + "play_addr": { + "uri": "v09044b80000br4opi0fd3u6eaulu150", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br4opi0fd3u6eaulu150&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br4opi0fd3u6eaulu150_h264_540p_754053", + "data_size": 1194892 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 539041, + "play_addr": { + "uri": "v09044b80000br4opi0fd3u6eaulu150", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br4opi0fd3u6eaulu150&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br4opi0fd3u6eaulu150_h264_540p_539041", + "data_size": 854178 + }, + "is_h265": 0 + } + ], + "duration": 12677, + "download_suffix_logo_addr": { + "uri": "v09044b80000br4opi0fd3u6eaulu150", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br4opi0fd3u6eaulu150&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2261880 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044b80000br4opi0fd3u6eaulu150\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br4opi0fd3u6eaulu150&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2288455}}\n" + }, + "share_url": "https://m.tiktok.com/v/6830145115093306629.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830145115093306629", + "user_digged": 0, + "statistics": { + "aweme_id": "6830145115093306629", + "comment_count": 2082, + "digg_count": 304089, + "download_count": 29094, + "play_count": 5916030, + "share_count": 33073, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 27475 + }, + "status": { + "aweme_id": "6830145115093306629", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040640223FA96" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6830145115093306629.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830145115093306629", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Joaquin Sánchez’s video! #TikTok > ", + "share_desc": "Check out Joaquin Sánchez's video! #TikTok", + "share_title": "Check out Joaquin Sánchez’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12677, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6807791878206817000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "ES", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6830145115093306629", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "es", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040640223FA96" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309470101150040640223FA96" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309470101150040640223FA96" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309470101150040640223FA96" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575903, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040640223FA96" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309383\",\"mv_info\":{\"id\":\"309383\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040640223FA96" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/assets/i18#lang_es/pe.json b/config.es/assets/i18#lang_es/pe.json new file mode 100644 index 0000000..2921a78 --- /dev/null +++ b/config.es/assets/i18#lang_es/pe.json @@ -0,0 +1,1121 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6829681528390323461", + "desc": "Cata Dance 2 🥰 #remix #trend #fyp #mom #daughter #tiktokdance #pia", + "create_time": 1590159149, + "author": { + "uid": "6745437324740248581", + "short_id": "45290370144", + "nickname": "Maria Pia Copello", + "signature": "Perú 🇵🇪 \nConductora de TV\nCreadora de contenidos", + "avatar_thumb": { + "uri": "musically-maliva-obj/1664980653298693", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664980653298693~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1664980653298693", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664980653298693~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "piacopellotiktok", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1663820236711942", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663820236711942" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040620523DC03" + ], + "width": 720, + "height": 720 + } + ], + "language": "es", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1664980653298693", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664980653298693~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1664980653298693", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664980653298693~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAqaaTZMUw1mJPHt0hfmJ8nymaeecnnbfrvLP2jauPwqp7iA03YwmzeQuEPsO7SQnW", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6826835492781182000, + "id_str": "6826835492781181701", + "title": "Nyquest_ Trend Mix", + "author": "NYQUEST🥁", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6a73c9a9bfdfb69f6668cb402150d97e.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6a73c9a9bfdfb69f6668cb402150d97e.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 23, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "291117568453435392", + "owner_nickname": "NYQUEST🥁", + "is_original": false, + "mid": "6826835492781181701", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "nyquest_", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAqWkKiH5XtXHpEpuErx4Kns4-fmceO3iQoThl178WHJgcmnZb9H_8fhqSmSJLdELm", + "avatar_thumb": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/975c36dd5ab822840c9e8534900866a8", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/975c36dd5ab822840c9e8534900866a8~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "5425", + "cha_name": "remix", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=5425", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/5425.html?name=remix&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=5425", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #remix Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #remix Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: remix", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044e80000br3udpdg80978gp9hj2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br3udpdg80978gp9hj2g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br3udpdg80978gp9hj2g_h264_540p_1948677", + "data_size": 3738294 + }, + "cover": { + "uri": "tos-maliva-p-0068/cca17850c71c437fadacc81500df4252_1590159364", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/cca17850c71c437fadacc81500df4252_1590159364~noop.webp?x-expires=1592658000&x-signature=gbFvV1f6oDmyymdtMxcbS%2FiAdLA%3D&l=202006181309470101150040620523DC03" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/53511b85cfb846d0b684c51cfddc66eb_1590159363", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/53511b85cfb846d0b684c51cfddc66eb_1590159363?x-expires=1592658000&x-signature=beZafq9%2BqurcgpiIZ%2BF4eaGAIhg%3D&l=202006181309470101150040620523DC03" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/34c88986b9df4517bec26a8e649c1028_1590159362", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/34c88986b9df4517bec26a8e649c1028_1590159362~noop.image?x-expires=1592658000&x-signature=VmPbVxl2gQJGw7uCwsvqVDklkt0%3D&l=202006181309470101150040620523DC03" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044e80000br3udpdg80978gp9hj2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br3udpdg80978gp9hj2g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3839531 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1948677, + "play_addr": { + "uri": "v09044e80000br3udpdg80978gp9hj2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br3udpdg80978gp9hj2g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br3udpdg80978gp9hj2g_h264_540p_1948677", + "data_size": 3738294 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1122492, + "play_addr": { + "uri": "v09044e80000br3udpdg80978gp9hj2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br3udpdg80978gp9hj2g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br3udpdg80978gp9hj2g_h264_540p_1122492", + "data_size": 2153361 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 754838, + "play_addr": { + "uri": "v09044e80000br3udpdg80978gp9hj2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br3udpdg80978gp9hj2g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br3udpdg80978gp9hj2g_h264_540p_754838", + "data_size": 1448064 + }, + "is_h265": 0 + } + ], + "duration": 15347, + "download_suffix_logo_addr": { + "uri": "v09044e80000br3udpdg80978gp9hj2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br3udpdg80978gp9hj2g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3913333 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044e80000br3udpdg80978gp9hj2g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br3udpdg80978gp9hj2g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3984809}}\n" + }, + "share_url": "https://m.tiktok.com/v/6829681528390323461.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829681528390323461", + "user_digged": 0, + "statistics": { + "aweme_id": "6829681528390323461", + "comment_count": 836, + "digg_count": 228080, + "download_count": 12338, + "play_count": 4406611, + "share_count": 6493, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 4015 + }, + "status": { + "aweme_id": "6829681528390323461", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 16, + "end": 22, + "type": 1, + "hashtag_name": "remix", + "hashtag_id": "5425", + "is_commerce": false + }, + { + "start": 23, + "end": 29, + "type": 1, + "hashtag_name": "trend", + "hashtag_id": "44895", + "is_commerce": false + }, + { + "start": 30, + "end": 34, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 35, + "end": 39, + "type": 1, + "hashtag_name": "mom", + "hashtag_id": "6057", + "is_commerce": false + }, + { + "start": 40, + "end": 49, + "type": 1, + "hashtag_name": "daughter", + "hashtag_id": "3560", + "is_commerce": false + }, + { + "start": 50, + "end": 62, + "type": 1, + "hashtag_name": "tiktokdance", + "hashtag_id": "3452912", + "is_commerce": false + }, + { + "start": 63, + "end": 67, + "type": 1, + "hashtag_name": "pia", + "hashtag_id": "41969", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040620523DC03" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6829681528390323461.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829681528390323461", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Maria Pia Copello’s video! #TikTok > ", + "share_desc": "Check out Maria Pia Copello's video! #TikTok", + "share_title": "Check out Maria Pia Copello’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15347, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6745437324740249000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829471272569736454", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6812097963884580102", + "desc": "my best dressup with joker head💓💘 comment your best dressup😘🌹 #foryou😚 #keepsupporting🙏 #FreefireNepal😘🌹", + "create_time": 1586065156, + "author": { + "uid": "6776547527023084545", + "short_id": "33765279057", + "nickname": "❤Chimsey❤🔥", + "signature": "SaNdEep Gurung😊\nFrom:-Lamjung❤\n FreefireNamE:-꧁࿐丂สиd¡թꔪᴰᵍ\nLvL=71😊\nPeaCe😪🌹", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "sandeep_official10", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "NP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040620523DC03" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAAW5JaQhopEyulQUMSwL3u3VTPw3QBw0q7oDonr6AqfNdajOi98iFLLm_k_54ExZI", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6791463192963878000, + "id_str": "6791463192963877637", + "title": "original sound - poozachetry4", + "author": "Raj----puja♥️♥️", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658080562814982.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658080562814982.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6650365703969701894", + "owner_nickname": "Raj----puja♥️♥️", + "is_original": false, + "mid": "6791463192963877637", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "poozachetry4", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658479508983810", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658479508983810" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhGpxSePlZBwp4bv7wOCkUPLRXu4YoD3Vh5mVkapkiCUG1a199XdUKtWlebRXypze", + "avatar_thumb": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1614592377069573", + "cha_name": "foryou😚", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1614592377069573", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1614592377069573.html?name=foryou%F0%9F%98%9A&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1614592377069573", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou😚 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou😚 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou😚", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_867816", + "data_size": 1108310 + }, + "cover": { + "uri": "tos-maliva-p-0068/368091d581ef4885ad80c7a53fdf65ca_1586065161", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/368091d581ef4885ad80c7a53fdf65ca_1586065161~noop.webp?x-expires=1592658000&x-signature=sANlKuyDyicRw61mMPQJ8ZKhKbE%3D&l=202006181309470101150040620523DC03" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/100c6728d8534b23814228d628ffcdbb_1586065161", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/100c6728d8534b23814228d628ffcdbb_1586065161?x-expires=1592658000&x-signature=4tr1nksQbR9tL639taKC0HG3aFo%3D&l=202006181309470101150040620523DC03" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/758b6771bda64915bb13576ffaa92f30_1586065161", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/758b6771bda64915bb13576ffaa92f30_1586065161~noop.image?x-expires=1592658000&x-signature=8RBWsxuPCXbtfylijGbh8C4tljs%3D&l=202006181309470101150040620523DC03" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 757755 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 867816, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_867816", + "data_size": 1108310 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 428226, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_428226", + "data_size": 546899 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 292366, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_292366", + "data_size": 373389 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 803284 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399 + }, + "share_url": "https://m.tiktok.com/v/6812097963884580102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812097963884580102", + "user_digged": 0, + "statistics": { + "aweme_id": "6812097963884580102", + "comment_count": 77, + "digg_count": 12896, + "download_count": 969, + "play_count": 192774, + "share_count": 207, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 24 + }, + "status": { + "aweme_id": "6812097963884580102", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 67, + "end": 76, + "type": 1, + "hashtag_name": "foryou😚", + "hashtag_id": "1614592377069573", + "is_commerce": false + }, + { + "start": 77, + "end": 94, + "type": 1, + "hashtag_name": "keepsupporting🙏", + "hashtag_id": "1616815176991749", + "is_commerce": false + }, + { + "start": 95, + "end": 113, + "type": 1, + "hashtag_name": "freefirenepal😘🌹", + "hashtag_id": "1663109709893638", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040620523DC03" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6812097963884580102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812097963884580102", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ❤Chimsey❤🔥’s video! #TikTok > ", + "share_desc": "Check out ❤Chimsey❤🔥's video! #TikTok", + "share_title": "Check out ❤Chimsey❤🔥’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6776547527023084545,\"author_country\":\"Nepal\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6776547527023085000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "NP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6812097963884580102", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309387\",\"mv_info\":{\"id\":\"309387\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040620523DC03" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/assets/i18#lang_es/us.json b/config.es/assets/i18#lang_es/us.json new file mode 100644 index 0000000..cc1939c --- /dev/null +++ b/config.es/assets/i18#lang_es/us.json @@ -0,0 +1,1194 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837284920138697990", + "desc": "When she knows you too well @jenafrumes", + "create_time": 1591929459, + "author": { + "uid": "21609287", + "short_id": "21758544594", + "nickname": "Jason Derulo", + "signature": "IG: jasonderulo\nSavage Love OUT NOW", + "avatar_thumb": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "jasonderulo", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1656115901452294~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAC5mIlEsDQSlfaWV6PSINVnfJOJz-eGhbAffi9TDrURw", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6795008547961753000, + "id_str": "6795008547961752326", + "title": "Ultra Instinct", + "author": "AdamDevito", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6631791650333310981", + "owner_nickname": "AdamDevito", + "is_original": false, + "mid": "6795008547961752326", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "adamdevito", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhZfDfpjGD4wtumUrvXYWkXyptLg3ojx-QJLuFcKmJLuC7-_lWU3BWB7kH2U00Egz", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "cover": { + "uri": "tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462~noop.webp?x-expires=1592658000&x-signature=6dByh3utXF%2FtkxCOsraCGeNMHfI%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463?x-expires=1592658000&x-signature=u%2FP4vH0drvWb83WYAkNu27hTMio%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461~noop.image?x-expires=1592658000&x-signature=iSC%2Bii7l2mOHRif%2F9nm64AmEL%2B4%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2112636 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1924466, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1076800, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1076800", + "data_size": 1131313 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 763213, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_763213", + "data_size": 801851 + }, + "is_h265": 0 + } + ], + "duration": 8405, + "download_suffix_logo_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2181877 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507396, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brhekmc45u0f2vn03o5g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2238071}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "user_digged": 0, + "statistics": { + "aweme_id": "6837284920138697990", + "comment_count": 23400, + "digg_count": 5665744, + "download_count": 77381, + "play_count": 59110271, + "share_count": 136584, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 35030 + }, + "status": { + "aweme_id": "6837284920138697990", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 28, + "end": 39, + "user_id": "8021707", + "type": 0, + "sec_uid": "MS4wLjABAAAAQ7HxcSD0aFjrh-8XtCI7p5Fz5oqF1Iuxd_gU81_Y_sw" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Jason Derulo’s video! #TikTok > ", + "share_desc": "Check out Jason Derulo's video! #TikTok", + "share_title": "Check out Jason Derulo’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8405, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 21609287, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837284920138697990", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6829682692141927682", + "desc": "Spread the Word Of God ❤️ #xyzbca #fyp #viral #christian #makethisviral #christianlife #bible #JesusChrist #foryoupage#motivationph", + "create_time": 1590159420, + "author": { + "uid": "6806009756420867074", + "short_id": "34475225769", + "nickname": "🔱 Julian 🔱", + "signature": "TRY EVERYTHING ✊🏻❤️\nTeamYacult 🇵🇭", + "avatar_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "theboynextdoor17", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PH", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/f55c32a9831d751451d9ef0401eac582~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/f55c32a9831d751451d9ef0401eac582~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAISzScRJu4ca1DBwV0Uz0uDF1ya3fH57Uto0AYKk-H9M4gx5GzfeNmam5b1eHg-UQ", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6829682715177127000, + "id_str": "6829682715177126658", + "title": "original sound - theboynextdoor17", + "author": "🔱 Julian 🔱", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/244e3c5d284fb5c92fb259f8085f0d30.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/244e3c5d284fb5c92fb259f8085f0d30.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 59, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6806009756420867074", + "owner_nickname": "🔱 Julian 🔱", + "is_original": false, + "mid": "6829682715177126658", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "theboynextdoor17", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAISzScRJu4ca1DBwV0Uz0uDF1ya3fH57Uto0AYKk-H9M4gx5GzfeNmam5b1eHg-UQ", + "avatar_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1652484531221509", + "cha_name": "xyzbca", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1652484531221509", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1652484531221509.html?name=xyzbca&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1652484531221509", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #xyzbca Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #xyzbca Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: xyzbca", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_406634", + "data_size": 3001419 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/57e398ba015844eb9d0ddd9f649bad9d", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/57e398ba015844eb9d0ddd9f649bad9d.webp?x-expires=1592658000&x-signature=7z6fr0EM45xTOD0J2qcG0QV5pmY%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/a3232cc88b2b49108181bfadf713e093_1590159424", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/a3232cc88b2b49108181bfadf713e093_1590159424?x-expires=1592658000&x-signature=Vc%2FR9%2FXp%2F4W9bXTFBUTFLWeda8I%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/37684e30819e4a939384d4d25f7fd2b7_1590159423", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/37684e30819e4a939384d4d25f7fd2b7_1590159423.jpeg?x-expires=1592658000&x-signature=BhIptB7SUNUSmbCA3xuGuYy51wE%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6283469 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 406634, + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_406634", + "data_size": 3001419 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 281182, + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_281182", + "data_size": 2075441 + }, + "is_h265": 0 + } + ], + "duration": 59049, + "download_suffix_logo_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6347309 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507447, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v070256f0000br3udca8kv9o4hm5eg3g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":6611241}}\n" + }, + "share_url": "https://m.tiktok.com/v/6829682692141927682.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829682692141927682", + "user_digged": 0, + "statistics": { + "aweme_id": "6829682692141927682", + "comment_count": 247279, + "digg_count": 2154633, + "download_count": 85515, + "play_count": 7985990, + "share_count": 309395, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 5520 + }, + "status": { + "aweme_id": "6829682692141927682", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 26, + "end": 33, + "type": 1, + "hashtag_name": "xyzbca", + "hashtag_id": "1652484531221509", + "is_commerce": false + }, + { + "start": 34, + "end": 38, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 39, + "end": 45, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + }, + { + "start": 46, + "end": 56, + "type": 1, + "hashtag_name": "christian", + "hashtag_id": "46249", + "is_commerce": false + }, + { + "start": 57, + "end": 71, + "type": 1, + "hashtag_name": "makethisviral", + "hashtag_id": "335768", + "is_commerce": false + }, + { + "start": 72, + "end": 86, + "type": 1, + "hashtag_name": "christianlife", + "hashtag_id": "272517", + "is_commerce": false + }, + { + "start": 87, + "end": 93, + "type": 1, + "hashtag_name": "bible", + "hashtag_id": "10593", + "is_commerce": false + }, + { + "start": 94, + "end": 106, + "type": 1, + "hashtag_name": "JesusChrist", + "hashtag_id": "8521", + "is_commerce": false + }, + { + "start": 107, + "end": 118, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 118, + "end": 131, + "type": 1, + "hashtag_name": "motivationph", + "hashtag_id": "1656355848758273", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6829682692141927682.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829682692141927682", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 🔱 Julian 🔱’s video! #TikTok > ", + "share_desc": "Check out 🔱 Julian 🔱's video! #TikTok", + "share_title": "Check out 🔱 Julian 🔱’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 59049, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6806009756420867074,\"author_country\":\"Philippines\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6806009756420867000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PH", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829682692141927682", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-56.6667,\"end_time\":7100,\"p\":-1,\"y\":-259.9467,\"h\":0.091,\"start_time\":4666.6667,\"r\":0,\"w\":0.5936,\"s\":0.8849}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":-69.1741,\"end_time\":7633.3333,\"p\":-1,\"y\":92.5157,\"h\":0.0975,\"start_time\":6300,\"r\":0,\"w\":0.5004,\"s\":0.6445}]", + "attr": "" + }, + { + "type": 5, + "index": 2, + "track_info": "[{\"x\":44.88,\"end_time\":7333.3333,\"p\":-1,\"y\":10.6106,\"h\":0.0727,\"start_time\":5566.6667,\"r\":0,\"w\":0.6366,\"s\":0.7075}]", + "attr": "" + }, + { + "type": 5, + "index": 3, + "track_info": "[{\"x\":0,\"end_time\":2833.3333,\"p\":-1,\"y\":-244.7608,\"h\":0.1413,\"start_time\":0,\"r\":0,\"w\":0.8289,\"s\":0.9338}]", + "attr": "" + }, + { + "type": 5, + "index": 4, + "track_info": "[{\"x\":-1.8056,\"end_time\":10000,\"p\":-1,\"y\":128.4765,\"h\":0.1287,\"start_time\":8600,\"r\":0,\"w\":0.7731,\"s\":1.2517}]", + "attr": "" + }, + { + "type": 5, + "index": 5, + "track_info": "[{\"x\":43.1009,\"end_time\":16066.6667,\"p\":-1,\"y\":-1.1269,\"h\":0.0989,\"start_time\":14900,\"r\":0,\"w\":0.6277,\"s\":0.9623}]", + "attr": "" + }, + { + "type": 5, + "index": 6, + "track_info": "[{\"x\":-67.6883,\"end_time\":14800,\"p\":-1,\"y\":-51.4412,\"h\":0.1098,\"start_time\":12866.6667,\"r\":0,\"w\":0.5611,\"s\":0.7573}]", + "attr": "" + }, + { + "type": 5, + "index": 7, + "track_info": "[{\"x\":0,\"end_time\":19900,\"p\":-1,\"y\":-182.2443,\"h\":0.1222,\"start_time\":18133.3333,\"r\":0,\"w\":0.7868,\"s\":0.8434}]", + "attr": "" + }, + { + "type": 5, + "index": 8, + "track_info": "[{\"x\":1.8676,\"end_time\":17833.3333,\"p\":-1,\"y\":-263.4976,\"h\":0.1267,\"start_time\":16266.6667,\"r\":0,\"w\":0.7734,\"s\":0.8744}]", + "attr": "" + }, + { + "type": 5, + "index": 9, + "track_info": "[{\"x\":0,\"end_time\":21166.6667,\"p\":-1,\"y\":-155.2009,\"h\":0.1577,\"start_time\":20000,\"r\":0,\"w\":0.7674,\"s\":1.0425}]", + "attr": "" + }, + { + "type": 5, + "index": 10, + "track_info": "[{\"x\":-18.7926,\"end_time\":25000,\"p\":-1,\"y\":-206.074,\"h\":0.1387,\"start_time\":23966.6667,\"r\":0,\"w\":0.814,\"s\":0.8982}]", + "attr": "" + }, + { + "type": 5, + "index": 11, + "track_info": "[{\"x\":7.9925,\"end_time\":27466.6667,\"p\":-1,\"y\":113.0216,\"h\":0.1177,\"start_time\":25566.6667,\"r\":0,\"w\":0.6277,\"s\":0.7778}]", + "attr": "" + }, + { + "type": 5, + "index": 12, + "track_info": "[{\"x\":0,\"end_time\":33133.3333,\"p\":-1,\"y\":-105.1051,\"h\":0.1945,\"start_time\":29900,\"r\":0,\"w\":0.9415,\"s\":1.0225}]", + "attr": "" + }, + { + "type": 5, + "index": 13, + "track_info": "[{\"x\":-2.5062,\"end_time\":49466.6667,\"p\":-1,\"y\":-231.806,\"h\":0.1351,\"start_time\":35566.6667,\"r\":0,\"w\":0.7709,\"s\":0.8928}]", + "attr": "" + }, + { + "type": 5, + "index": 14, + "track_info": "[{\"x\":-115.5485,\"end_time\":50000,\"p\":-1,\"y\":-288.1337,\"h\":0.0999,\"start_time\":33000,\"r\":0,\"w\":0.4511,\"s\":1.0027}]", + "attr": "" + }, + { + "type": 5, + "index": 15, + "track_info": "[{\"x\":0,\"end_time\":12733.3333,\"p\":-1,\"y\":-247.28,\"h\":0.1697,\"start_time\":10433.3333,\"r\":0,\"w\":0.7301,\"s\":0.8495}]", + "attr": "" + }, + { + "type": 5, + "index": 16, + "track_info": "[{\"x\":-2.5,\"end_time\":49833.3333,\"p\":-1,\"y\":-174.28,\"h\":0.1265,\"start_time\":39366.6667,\"r\":0,\"w\":0.7439,\"s\":0.8365}]", + "attr": "" + }, + { + "type": 5, + "index": 17, + "track_info": "[{\"x\":0,\"end_time\":49633.3333,\"p\":-1,\"y\":-110.5673,\"h\":0.137,\"start_time\":46400,\"r\":0,\"w\":0.8027,\"s\":0.9059}]", + "attr": "" + }, + { + "type": 5, + "index": 18, + "track_info": "[{\"x\":28.3888,\"end_time\":53566.6667,\"p\":-1,\"y\":-45.7408,\"h\":0.1406,\"start_time\":52166.6667,\"r\":0,\"w\":0.8441,\"s\":0.9298}]", + "attr": "" + }, + { + "type": 5, + "index": 19, + "track_info": "[{\"x\":-58.9199,\"end_time\":52300,\"p\":-1,\"y\":-182.3874,\"h\":0.1358,\"start_time\":50666.6667,\"r\":0,\"w\":0.6862,\"s\":0.9373}]", + "attr": "" + }, + { + "type": 5, + "index": 20, + "track_info": "[{\"x\":-5.6135,\"end_time\":56133.3333,\"p\":-1,\"y\":89.1711,\"h\":0.1558,\"start_time\":53866.6667,\"r\":0,\"w\":0.7726,\"s\":1.5632}]", + "attr": "" + }, + { + "type": 5, + "index": 21, + "track_info": "[{\"x\":-48.9282,\"end_time\":23233.3333,\"p\":-1,\"y\":-13.2555,\"h\":0.1332,\"start_time\":21333.3333,\"r\":0,\"w\":0.7328,\"s\":0.8807}]", + "attr": "" + }, + { + "type": 5, + "index": 22, + "track_info": "[{\"x\":40.0669,\"end_time\":29633.3333,\"p\":-1,\"y\":-113.6177,\"h\":0.1343,\"start_time\":27800,\"r\":0,\"w\":0.7314,\"s\":0.8876}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040561C23DEA0" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/assets/i18#lang_es/ve.json b/config.es/assets/i18#lang_es/ve.json new file mode 100644 index 0000000..a6cfbe6 --- /dev/null +++ b/config.es/assets/i18#lang_es/ve.json @@ -0,0 +1,1046 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6830545350907006214", + "desc": "😂😂😂😂", + "create_time": 1590360271, + "author": { + "uid": "241517734189318144", + "short_id": "21506030609", + "nickname": "marko", + "signature": "Dicen que si haces mis audios tendrá sexo garantizado 😈😇", + "avatar_thumb": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "marko", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309520101151331371724069A" + ], + "width": 720, + "height": 720 + } + ], + "language": "es", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA2jLHa1AIg4k9Cnxdb4NyCArckNGq7d49aXtOwAfBHpBszjPq4y0nnM9PP_v9o7wh", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6830545312570953000, + "id_str": "6830545312570952453", + "title": "original sound - marko", + "author": "marko", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/9296b233a16cf00f6971b37eb56d47bf.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/9296b233a16cf00f6971b37eb56d47bf.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 10, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "241517734189318144", + "owner_nickname": "marko", + "is_original": false, + "mid": "6830545312570952453", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "marko", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAA2jLHa1AIg4k9Cnxdb4NyCArckNGq7d49aXtOwAfBHpBszjPq4y0nnM9PP_v9o7wh", + "avatar_thumb": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/0c04975eaebacdf58642cde3f6bb09a5~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044a80000br5fhir5g71ojcd191i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a80000br5fhir5g71ojcd191i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a80000br5fhir5g71ojcd191i0_h264_540p_1689900", + "data_size": 2285590 + }, + "cover": { + "uri": "tos-maliva-p-0068/af2e695fb2424d2bbb9a35dde467a838", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/af2e695fb2424d2bbb9a35dde467a838~noop.webp?x-expires=1592658000&x-signature=RKpkRDNcjQ1anpaw21MZB6Ho6sk%3D&l=202006181309520101151331371724069A" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1500a7f11b914f59862cab75f99c7e9a_1590360275", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1500a7f11b914f59862cab75f99c7e9a_1590360275?x-expires=1592658000&x-signature=z6TRBU6%2B5AxFMGgv4KNrs37US4A%3D&l=202006181309520101151331371724069A" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/fc194d02f3fe40adb107347238cb067f_1590360275", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fc194d02f3fe40adb107347238cb067f_1590360275~noop.image?x-expires=1592658000&x-signature=ogIAyVPG8LLDLWFKQpTtvfO5EuA%3D&l=202006181309520101151331371724069A" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044a80000br5fhir5g71ojcd191i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a80000br5fhir5g71ojcd191i0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2356787 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1689900, + "play_addr": { + "uri": "v09044a80000br5fhir5g71ojcd191i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a80000br5fhir5g71ojcd191i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a80000br5fhir5g71ojcd191i0_h264_540p_1689900", + "data_size": 2285590 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 944159, + "play_addr": { + "uri": "v09044a80000br5fhir5g71ojcd191i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a80000br5fhir5g71ojcd191i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a80000br5fhir5g71ojcd191i0_h264_540p_944159", + "data_size": 1276976 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 670765, + "play_addr": { + "uri": "v09044a80000br5fhir5g71ojcd191i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a80000br5fhir5g71ojcd191i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a80000br5fhir5g71ojcd191i0_h264_540p_670765", + "data_size": 907210 + }, + "is_h265": 0 + } + ], + "duration": 10820, + "download_suffix_logo_addr": { + "uri": "v09044a80000br5fhir5g71ojcd191i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a80000br5fhir5g71ojcd191i0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2425191 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044a80000br5fhir5g71ojcd191i0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a80000br5fhir5g71ojcd191i0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2486643}}\n" + }, + "share_url": "https://m.tiktok.com/v/6830545350907006214.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830545350907006214", + "user_digged": 0, + "statistics": { + "aweme_id": "6830545350907006214", + "comment_count": 387, + "digg_count": 61935, + "download_count": 10914, + "play_count": 706628, + "share_count": 6590, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 5308 + }, + "status": { + "aweme_id": "6830545350907006214", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309520101151331371724069A" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6830545350907006214.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830545350907006214", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out marko’s video! #TikTok > ", + "share_desc": "Check out marko's video! #TikTok", + "share_title": "Check out marko’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10820, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 241517734189318140, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6830545350907006214", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6834023256702405894", + "desc": "#tutorial easy trick to get a slowmo video ! #tiktokacademie #bts #creative #fyp #pourtoi", + "create_time": 1591170036, + "author": { + "uid": "6742481158136972294", + "short_id": "45201031192", + "nickname": "Wonguy", + "signature": "Follow me on Insta for more pictures 👆\nPhotographer 📸\nHow I edit my pics👇", + "avatar_thumb": { + "uri": "musically-maliva-obj/1657225022775301", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657225022775301~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1657225022775301", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657225022775301~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "wonguy", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "FR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309520101151331371724069A" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1657225022775301", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657225022775301~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1657225022775301", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1657225022775301~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAPqOWOPZxaYHBevVV4aT2Lw7GFbZ7BHjPW0eb9SFn6DNNPE9j8xUjKI0q2LS--4T4", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6701470173154561000, + "id_str": "6701470173154560773", + "title": "Bad Guy X Lovely", + "author": "rapidsongs ", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1654351754080261", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654351754080261~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1654351754080261", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654351754080261~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1654351754080261", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654351754080261~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1654351754080261", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654351754080261~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1636137404240917.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1636137404240917.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "101389484209885184", + "owner_nickname": "rapidsongs ", + "is_original": false, + "mid": "6701470173154560773", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "rapidsongs", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1636145926795285", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1636145926795285" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAy6WWiqlfWRP_UP1dhq1Q9jPZ_-LLoGOlKuIWG7uGrlDnz_HPlEFVhuBtkF6_jA1E", + "avatar_thumb": { + "uri": "musically-maliva-obj/1654351754080261", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654351754080261~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1654351754080261", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654351754080261~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1654351754080261", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654351754080261~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "8166", + "cha_name": "tutorial", + "desc": "Tips and tricks for making the best TikToks 🙌", + "schema": "aweme://aweme/challenge/detail?cid=8166", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/8166.html?name=tutorial&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=8166", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #tutorial Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #tutorial Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: tutorial", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090444c0000brbl7ppo1k5pqk7ahjf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbl7ppo1k5pqk7ahjf0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbl7ppo1k5pqk7ahjf0_h264_540p_1544816", + "data_size": 2241722 + }, + "cover": { + "uri": "tos-maliva-p-0068/191c829255654e4abf0c53cdd48cbe2b_1591170037", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/191c829255654e4abf0c53cdd48cbe2b_1591170037~noop.webp?x-expires=1592658000&x-signature=nhfZKxXEuq4ZtppILnx7sO5K0PE%3D&l=202006181309520101151331371724069A" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/7e16e4c212b94afa9d1b286dfda2432a_1591170038", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/7e16e4c212b94afa9d1b286dfda2432a_1591170038?x-expires=1592658000&x-signature=Hcy8gMhalhrdx08dT6pXdzaIzjE%3D&l=202006181309520101151331371724069A" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/3b5f83b775bf4641a9cfc4e387ea6c8e_1591170037", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/3b5f83b775bf4641a9cfc4e387ea6c8e_1591170037~noop.image?x-expires=1592658000&x-signature=0ekAwu3vJ8ZwP8MbkwqJHVmm2VA%3D&l=202006181309520101151331371724069A" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090444c0000brbl7ppo1k5pqk7ahjf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbl7ppo1k5pqk7ahjf0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2327811 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1544816, + "play_addr": { + "uri": "v090444c0000brbl7ppo1k5pqk7ahjf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbl7ppo1k5pqk7ahjf0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbl7ppo1k5pqk7ahjf0_h264_540p_1544816", + "data_size": 2241722 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 876599, + "play_addr": { + "uri": "v090444c0000brbl7ppo1k5pqk7ahjf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbl7ppo1k5pqk7ahjf0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbl7ppo1k5pqk7ahjf0_h264_540p_876599", + "data_size": 1272056 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 616662, + "play_addr": { + "uri": "v090444c0000brbl7ppo1k5pqk7ahjf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbl7ppo1k5pqk7ahjf0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbl7ppo1k5pqk7ahjf0_h264_540p_616662", + "data_size": 894855 + }, + "is_h265": 0 + } + ], + "duration": 11609, + "download_suffix_logo_addr": { + "uri": "v090444c0000brbl7ppo1k5pqk7ahjf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbl7ppo1k5pqk7ahjf0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2392752 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507405, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090444c0000brbl7ppo1k5pqk7ahjf0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbl7ppo1k5pqk7ahjf0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2448134}}\n" + }, + "share_url": "https://m.tiktok.com/v/6834023256702405894.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834023256702405894", + "user_digged": 0, + "statistics": { + "aweme_id": "6834023256702405894", + "comment_count": 2831, + "digg_count": 1784418, + "download_count": 14769, + "play_count": 17490708, + "share_count": 36898, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 15926 + }, + "status": { + "aweme_id": "6834023256702405894", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 9, + "type": 1, + "hashtag_name": "tutorial", + "hashtag_id": "8166", + "is_commerce": false + }, + { + "start": 45, + "end": 60, + "type": 1, + "hashtag_name": "tiktokacademie", + "hashtag_id": "1667834385943558", + "is_commerce": false + }, + { + "start": 61, + "end": 65, + "type": 1, + "hashtag_name": "bts", + "hashtag_id": "4175", + "is_commerce": false + }, + { + "start": 66, + "end": 75, + "type": 1, + "hashtag_name": "creative", + "hashtag_id": "22642", + "is_commerce": false + }, + { + "start": 76, + "end": 80, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 81, + "end": 89, + "type": 1, + "hashtag_name": "pourtoi", + "hashtag_id": "2852101", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309520101151331371724069A" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834023256702405894.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834023256702405894", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Wonguy’s video! #TikTok > ", + "share_desc": "Check out Wonguy's video! #TikTok", + "share_title": "Check out Wonguy’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 11609, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6742481158136972294,\"author_country\":\"France\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6742481158136972000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "FR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6834023256702405894", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":0,\"end_time\":2000,\"p\":-1,\"y\":233.5583,\"h\":0.1166,\"start_time\":0,\"r\":0,\"w\":0.6449,\"s\":0.7921}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485795000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309520101151331371724069A" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.es/resources.arsc b/config.es/resources.arsc new file mode 100644 index 0000000..27d4d2a Binary files /dev/null and b/config.es/resources.arsc differ diff --git a/config.fr/AndroidManifest.xml b/config.fr/AndroidManifest.xml new file mode 100644 index 0000000..f51d644 Binary files /dev/null and b/config.fr/AndroidManifest.xml differ diff --git a/config.fr/META-INF/BNDLTOOL.RSA b/config.fr/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..b7a2486 Binary files /dev/null and b/config.fr/META-INF/BNDLTOOL.RSA differ diff --git a/config.fr/META-INF/BNDLTOOL.SF b/config.fr/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..2b578f2 --- /dev/null +++ b/config.fr/META-INF/BNDLTOOL.SF @@ -0,0 +1,41 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: hAOUssQqn/niwaJNYzCe5ANM5sk= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: MRm8rn/jO7PRC30GJSH7vR9027I= + +Name: assets/i18#lang_fr/be.json +SHA1-Digest: XlU4xm9AXPeKcJsy+qnI9KjnlsY= + +Name: assets/i18#lang_fr/ca.json +SHA1-Digest: NkMUJH79HLTqcCRcgMIdRoGkbTw= + +Name: assets/i18#lang_fr/ch.json +SHA1-Digest: DdPTv+sOtn2mtPgtXd0s4D+HKhw= + +Name: assets/i18#lang_fr/ci.json +SHA1-Digest: GH0jfkFxe6n+ilBLHHR3/ChPo8A= + +Name: assets/i18#lang_fr/default.json +SHA1-Digest: aglr5ICMtBy7HE5sMPdfcxr4754= + +Name: assets/i18#lang_fr/dz.json +SHA1-Digest: cqFR0cm9HD3Q7CvRTYQG+FnF6wo= + +Name: assets/i18#lang_fr/ma.json +SHA1-Digest: JqmSUwfFnQO4HPe6Uo0K440QQt0= + +Name: assets/i18#lang_fr/re.json +SHA1-Digest: 1DUgWu92ZBvntkfPnR5HBeeVsOc= + +Name: assets/i18#lang_fr/sn.json +SHA1-Digest: BCiAPpBrByAgPR1+x8OsDA/J7Po= + +Name: assets/i18#lang_fr/tn.json +SHA1-Digest: K/2/Tc/eBOQBtVVwqigkdvs5IgU= + +Name: resources.arsc +SHA1-Digest: 9SS+N27TedqUvfdaA4BfT92L3Z0= + diff --git a/config.fr/META-INF/MANIFEST.MF b/config.fr/META-INF/MANIFEST.MF new file mode 100644 index 0000000..4c5d14e --- /dev/null +++ b/config.fr/META-INF/MANIFEST.MF @@ -0,0 +1,40 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: AYjCZVsrwMM9w6PI97Bn8A69nGM= + +Name: assets/i18#lang_fr/be.json +SHA1-Digest: MGHPiDObBtvm4pDeIwFhHo7rM2I= + +Name: assets/i18#lang_fr/ca.json +SHA1-Digest: 1MRaME6amSk0e1t/d9govPRKv30= + +Name: assets/i18#lang_fr/ch.json +SHA1-Digest: 0m9B5Y+17iK51mX4AZz4g2i5qTM= + +Name: assets/i18#lang_fr/ci.json +SHA1-Digest: ANW63iOxsUvNqF2IiaJhziIiies= + +Name: assets/i18#lang_fr/default.json +SHA1-Digest: B6vdxP+YLpJM5O70nz0n96mEj5s= + +Name: assets/i18#lang_fr/dz.json +SHA1-Digest: 5UT7W4P8GScuB+MsC5+16SVtiTw= + +Name: assets/i18#lang_fr/ma.json +SHA1-Digest: q200/BxRKvDWAv58p+09OEKqCwA= + +Name: assets/i18#lang_fr/re.json +SHA1-Digest: sr66iz7Ai6VEqen/mGAhf76iGZk= + +Name: assets/i18#lang_fr/sn.json +SHA1-Digest: EqjaMKbDd1qwkXqJsKr+B0hRuPM= + +Name: assets/i18#lang_fr/tn.json +SHA1-Digest: ZZkxcHepAdhy6VuBs/wJg5ug+nw= + +Name: resources.arsc +SHA1-Digest: +UChVclvDEPWiW0mXzsno406WXY= + diff --git a/config.fr/assets/i18#lang_fr/be.json b/config.fr/assets/i18#lang_fr/be.json new file mode 100644 index 0000000..9af7988 --- /dev/null +++ b/config.fr/assets/i18#lang_fr/be.json @@ -0,0 +1,1072 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6827849641770487045", + "desc": "#foryou #foryoupage #mommylife #dropyourweapon", + "create_time": 1589732628, + "author": { + "uid": "6727587242724180998", + "short_id": "44750293112", + "nickname": "MellsanL", + "signature": "💗", + "avatar_thumb": { + "uri": "musically-maliva-obj/cfb477f2c9207fae27401139990f7cee", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/cfb477f2c9207fae27401139990f7cee~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/cfb477f2c9207fae27401139990f7cee", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/cfb477f2c9207fae27401139990f7cee~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mellsanl", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "SE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040651D23FFEA" + ], + "width": 720, + "height": 720 + } + ], + "language": "sv", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/cfb477f2c9207fae27401139990f7cee", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/cfb477f2c9207fae27401139990f7cee~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/cfb477f2c9207fae27401139990f7cee", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/cfb477f2c9207fae27401139990f7cee~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAHiCNa51zF2GOEvJvhz4ut9l9uE0yb3k0FnADSesFN9AOi6L5Og22h7I-xbOB95Dj", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6811968697339579000, + "id_str": "6811968697339579141", + "title": "original sound - kristynann85", + "author": "MizKristyn85", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663078503873590.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663078503873590.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 7, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6601044405204779014", + "owner_nickname": "MizKristyn85", + "is_original": false, + "mid": "6811968697339579141", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "kristynann85", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAKdMYJ2X7cRO-L-0wn0erJJS0C17lD4wZfRz03x6eD2a9iG-6uLpk-ZHHaAvUHxLx", + "avatar_thumb": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2046f12e1e72a9360f042bc62b1e497e~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "42164", + "cha_name": "foryou", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=42164", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/42164.html?name=foryou&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=42164", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d30000br0ma3j5g71qtfhv2d50_h264_540p_1089954", + "data_size": 1097584 + }, + "cover": { + "uri": "tos-maliva-p-0068/400606431bb84a139ff51b67087433bf", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/400606431bb84a139ff51b67087433bf~noop.webp?x-expires=1592658000&x-signature=NBD81yRNxTxjTr9SE%2Bf3QryFy4Q%3D&l=202006181309470101150040651D23FFEA" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/b0afd07cd5d34a56a15d0ecd2f2d0dad_1589732630", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/b0afd07cd5d34a56a15d0ecd2f2d0dad_1589732630?x-expires=1592658000&x-signature=v3DZ8CNavIFb8sQzjC6BBVTMJgM%3D&l=202006181309470101150040651D23FFEA" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/11faa8ec909a4049b531fbf316147446_1589732630", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/11faa8ec909a4049b531fbf316147446_1589732630~noop.image?x-expires=1592658000&x-signature=1X5NV5AIsWU5sObl3UYLuPwoJVk%3D&l=202006181309470101150040651D23FFEA" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1155000 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1089954, + "play_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d30000br0ma3j5g71qtfhv2d50_h264_540p_1089954", + "data_size": 1097584 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 575946, + "play_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d30000br0ma3j5g71qtfhv2d50_h264_540p_575946", + "data_size": 579978 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 400966, + "play_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d30000br0ma3j5g71qtfhv2d50_h264_540p_400966", + "data_size": 403773 + }, + "is_h265": 0 + } + ], + "duration": 8055, + "download_suffix_logo_addr": { + "uri": "v09044d30000br0ma3j5g71qtfhv2d50", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1221864 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507395, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044d30000br0ma3j5g71qtfhv2d50\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d30000br0ma3j5g71qtfhv2d50&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1254899}}\n" + }, + "share_url": "https://m.tiktok.com/v/6827849641770487045.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827849641770487045", + "user_digged": 0, + "statistics": { + "aweme_id": "6827849641770487045", + "comment_count": 17707, + "digg_count": 1887903, + "download_count": 83320, + "play_count": 34991865, + "share_count": 100190, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 33200 + }, + "status": { + "aweme_id": "6827849641770487045", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 7, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 8, + "end": 19, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 20, + "end": 30, + "type": 1, + "hashtag_name": "mommylife", + "hashtag_id": "64098", + "is_commerce": false + }, + { + "start": 31, + "end": 46, + "type": 1, + "hashtag_name": "dropyourweapon", + "hashtag_id": "34307074", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040651D23FFEA" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6827849641770487045.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827849641770487045", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out MellsanL’s video! #TikTok > ", + "share_desc": "Check out MellsanL's video! #TikTok", + "share_title": "Check out MellsanL’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8055, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6727587242724181000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "SE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6827849641770487045", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040651D23FFEA" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309470101150040651D23FFEA" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309470101150040651D23FFEA" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309470101150040651D23FFEA" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575903, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040651D23FFEA" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309367\",\"mv_info\":{\"id\":\"309367\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040651D23FFEA" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.fr/assets/i18#lang_fr/ca.json b/config.fr/assets/i18#lang_fr/ca.json new file mode 100644 index 0000000..8499540 --- /dev/null +++ b/config.fr/assets/i18#lang_fr/ca.json @@ -0,0 +1,1000 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837284920138697990", + "desc": "When she knows you too well @jenafrumes", + "create_time": 1591929459, + "author": { + "uid": "21609287", + "short_id": "21758544594", + "nickname": "Jason Derulo", + "signature": "IG: jasonderulo\nSavage Love OUT NOW", + "avatar_thumb": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "jasonderulo", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAC5mIlEsDQSlfaWV6PSINVnfJOJz-eGhbAffi9TDrURw", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6795008547961753000, + "id_str": "6795008547961752326", + "title": "Ultra Instinct", + "author": "AdamDevito", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6631791650333310981", + "owner_nickname": "AdamDevito", + "is_original": false, + "mid": "6795008547961752326", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "adamdevito", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhZfDfpjGD4wtumUrvXYWkXyptLg3ojx-QJLuFcKmJLuC7-_lWU3BWB7kH2U00Egz", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "cover": { + "uri": "tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462~noop.webp?x-expires=1592658000&x-signature=6dByh3utXF%2FtkxCOsraCGeNMHfI%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463?x-expires=1592658000&x-signature=u%2FP4vH0drvWb83WYAkNu27hTMio%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461~noop.image?x-expires=1592658000&x-signature=iSC%2Bii7l2mOHRif%2F9nm64AmEL%2B4%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2112636 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1924466, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1076800, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1076800", + "data_size": 1131313 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 763213, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_763213", + "data_size": 801851 + }, + "is_h265": 0 + } + ], + "duration": 8405, + "download_suffix_logo_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2181877 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507397, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brhekmc45u0f2vn03o5g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2238071}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "user_digged": 0, + "statistics": { + "aweme_id": "6837284920138697990", + "comment_count": 23400, + "digg_count": 5665744, + "download_count": 77381, + "play_count": 59110271, + "share_count": 136584, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 35030 + }, + "status": { + "aweme_id": "6837284920138697990", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 28, + "end": 39, + "user_id": "8021707", + "type": 0, + "sec_uid": "MS4wLjABAAAAQ7HxcSD0aFjrh-8XtCI7p5Fz5oqF1Iuxd_gU81_Y_sw" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Jason Derulo’s video! #TikTok > ", + "share_desc": "Check out Jason Derulo's video! #TikTok", + "share_title": "Check out Jason Derulo’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8405, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 21609287, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837284920138697990", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575904, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151761471D23C5A1" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309341\",\"mv_info\":{\"id\":\"309341\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\",\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101151761471D23C5A1" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.fr/assets/i18#lang_fr/ch.json b/config.fr/assets/i18#lang_fr/ch.json new file mode 100644 index 0000000..ae0ee65 --- /dev/null +++ b/config.fr/assets/i18#lang_fr/ch.json @@ -0,0 +1,988 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837245528225484038", + "desc": "periodt!!! but like also stop @larrayeeee @bradypotter", + "create_time": 1591920286, + "author": { + "uid": "6703550784929793030", + "short_id": "43772482888", + "nickname": "addison rae", + "signature": "follow me on instagram for a kiss \nyoutube- Addison Rae", + "avatar_thumb": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "addisonre", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAVjQK614JSGmZVT3EVAiSDfznaBJOVfWPrtqDsQ9YxU368ewQrTyyEOb3OtJb4xCI", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6825734897517235000, + "id_str": "6825734897517234949", + "title": "GOOBA", + "author": "6ix9ine", + "album": "GOOBA", + "cover_hd": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/ac5e9f21d47503af5fb1a6d02ed57665.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/ac5e9f21d47503af5fb1a6d02ed57665.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"apple_song_id\":1511894046,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6825734897517234949", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1511894046", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 1.4, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_1938248", + "data_size": 2019413 + }, + "cover": { + "uri": "tos-maliva-p-0068/79fcf143dbc64359a07f70cb8b56c7df", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/79fcf143dbc64359a07f70cb8b56c7df~noop.webp?x-expires=1592658000&x-signature=lvfsSwS%2FU1GNxSxIrWrH4bGpYAA%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/99aad2bdbe754ccfb068e0f63915627b_1591920287", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/99aad2bdbe754ccfb068e0f63915627b_1591920287?x-expires=1592658000&x-signature=2PmjKblxkOEgGgUYB41573%2BttQw%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/98f55c6937e0462bb0551fb3c707a63c_1591920288", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/98f55c6937e0462bb0551fb3c707a63c_1591920288~noop.image?x-expires=1592658000&x-signature=CvYVJ3SBlx35pvK61d8dk2YTIug%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2060897 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1938248, + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_1938248", + "data_size": 2019413 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1146989, + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_1146989", + "data_size": 1195020 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 836445, + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_836445", + "data_size": 871472 + }, + "is_h265": 0 + } + ], + "duration": 8335, + "download_suffix_logo_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2128378 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507397, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brhccvlg8091hndrc43g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2169091}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837245528225484038.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837245528225484038", + "user_digged": 0, + "statistics": { + "aweme_id": "6837245528225484038", + "comment_count": 205829, + "digg_count": 12164765, + "download_count": 398012, + "play_count": 104645446, + "share_count": 670381, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 56814 + }, + "status": { + "aweme_id": "6837245528225484038", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 31, + "end": 42, + "user_id": "8757225", + "type": 0, + "sec_uid": "MS4wLjABAAAAEhVnyJg5jMwcWNGTz3Es0QS5Zgy8xSHYUx5tIslXo-w" + }, + { + "start": 43, + "end": 55, + "user_id": "6639537028701650949", + "type": 0, + "sec_uid": "MS4wLjABAAAAdWHA40lL5xikxdV7lOlzPk8AuMCe_OVA1EL2QTiA9efwXeDCL5XlVMO-ec8SOU21" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837245528225484038.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837245528225484038", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out addison rae’s video! #TikTok > ", + "share_desc": "Check out addison rae's video! #TikTok", + "share_title": "Check out addison rae’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8335, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6703550784929793000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837245528225484038", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575903, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309371\",\"mv_info\":{\"id\":\"309371\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040661823F883" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.fr/assets/i18#lang_fr/ci.json b/config.fr/assets/i18#lang_fr/ci.json new file mode 100644 index 0000000..5ec9993 --- /dev/null +++ b/config.fr/assets/i18#lang_fr/ci.json @@ -0,0 +1,999 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6834172651649469701", + "desc": "🤣🤣🤣🤣🤣🤣", + "create_time": 1591204819, + "author": { + "uid": "6794928003857777666", + "short_id": "48178439376", + "nickname": "Emma Lohoues", + "signature": "Libre, Épanouie et influente🔥 Queen.E👑", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663005104363526", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663005104363526~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663005104363526", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663005104363526~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "emmalohoues", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "CI", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040751C23A9DF" + ], + "width": 720, + "height": 720 + } + ], + "language": "fr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1663005104363526", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1663005104363526~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1663005104363526", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1663005104363526~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA-qKc1Jlu6Ae3DYLDXBM8rWtJLzWFEevfjJcWmGUCbzaoK5GWlwlwtUxGO59dVwQO", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6829467296965086000, + "id_str": "6829467296965085958", + "title": "original sound - ruths1217", + "author": "Ruth Mefodong", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/7f6d89e5405924be549a14fa214819d0", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7f6d89e5405924be549a14fa214819d0~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/7f6d89e5405924be549a14fa214819d0", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7f6d89e5405924be549a14fa214819d0~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/7f6d89e5405924be549a14fa214819d0", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7f6d89e5405924be549a14fa214819d0~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/7f6d89e5405924be549a14fa214819d0", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7f6d89e5405924be549a14fa214819d0~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/d3398def343e9d468076510a3c77ecc2.mp3", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/d3398def343e9d468076510a3c77ecc2.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 20, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6526917907186717696", + "owner_nickname": "Ruth Mefodong", + "is_original": false, + "mid": "6829467296965085958", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "ruths1217", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAFmDpryhi0wZ35Q1KItNA06lJzNMugGUA81RztGLwza7ACJBmbhNZkxPFVdMRMRFU", + "avatar_thumb": { + "uri": "musically-maliva-obj/7f6d89e5405924be549a14fa214819d0", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7f6d89e5405924be549a14fa214819d0~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/7f6d89e5405924be549a14fa214819d0", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7f6d89e5405924be549a14fa214819d0~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/7f6d89e5405924be549a14fa214819d0", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7f6d89e5405924be549a14fa214819d0~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v090444c0000brbtnghsihvcuf53mcj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbtnghsihvcuf53mcj0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbtnghsihvcuf53mcj0_h264_540p_1419365", + "data_size": 3637478 + }, + "cover": { + "uri": "tos-maliva-p-0068/024f2ac8c4194d8b80440ebcdc9c3f4e_1591204821", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/024f2ac8c4194d8b80440ebcdc9c3f4e_1591204821~noop.webp?x-expires=1592658000&x-signature=sWDDtZEbVQQZBuaP1CoPNOQW1fg%3D&l=202006181309470101150040751C23A9DF" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/c48e20d943674740a9bd906a650d076e_1591204821", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/c48e20d943674740a9bd906a650d076e_1591204821?x-expires=1592658000&x-signature=or7CUzSp1kJ7AD1gEdjDww3%2Fvpw%3D&l=202006181309470101150040751C23A9DF" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/33039aa06d4f4c5c9bd9500fdd4e4964_1591204821", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/33039aa06d4f4c5c9bd9500fdd4e4964_1591204821~noop.image?x-expires=1592658000&x-signature=WToDyVtY%2FYGzUzMCTQUYlMt%2BiDE%3D&l=202006181309470101150040751C23A9DF" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090444c0000brbtnghsihvcuf53mcj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbtnghsihvcuf53mcj0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3785089 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 831003, + "play_addr": { + "uri": "v090444c0000brbtnghsihvcuf53mcj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbtnghsihvcuf53mcj0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbtnghsihvcuf53mcj0_h264_540p_831003", + "data_size": 2129654 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 602740, + "play_addr": { + "uri": "v090444c0000brbtnghsihvcuf53mcj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbtnghsihvcuf53mcj0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbtnghsihvcuf53mcj0_h264_540p_602740", + "data_size": 1544672 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 495308, + "play_addr": { + "uri": "v090444c0000brbtnghsihvcuf53mcj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbtnghsihvcuf53mcj0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbtnghsihvcuf53mcj0_h264_480p_495308", + "data_size": 1269351 + }, + "is_h265": 0 + } + ], + "duration": 20502, + "download_suffix_logo_addr": { + "uri": "v090444c0000brbtnghsihvcuf53mcj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbtnghsihvcuf53mcj0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3852650 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507409, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090444c0000brbtnghsihvcuf53mcj0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbtnghsihvcuf53mcj0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3943614}}\n" + }, + "share_url": "https://m.tiktok.com/v/6834172651649469701.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834172651649469701", + "user_digged": 0, + "statistics": { + "aweme_id": "6834172651649469701", + "comment_count": 369, + "digg_count": 21577, + "download_count": 6736, + "play_count": 393743, + "share_count": 4229, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2655 + }, + "status": { + "aweme_id": "6834172651649469701", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040751C23A9DF" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834172651649469701.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834172651649469701", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Emma Lohoues’s video! #TikTok > ", + "share_desc": "Check out Emma Lohoues's video! #TikTok", + "share_title": "Check out Emma Lohoues’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 20502, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6794928003857778000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "CI", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6834169218787773702", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6808136069725424901", + "desc": "Part 2: The detective is here to work it all out 👀 #neymar #champions", + "create_time": 1585142706, + "author": { + "uid": "6649699478406217734", + "short_id": "37128685768", + "nickname": "brfootball", + "signature": "We see ⚽️ everywhere", + "avatar_thumb": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "brfootball", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "verified account", + "is_ad_fake": false, + "followers_detail": null, + "region": "GB", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040751C23A9DF" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAgqmzB4wNoLFymYhU1T0MrwPn0AWLlfoP29SFBHQ-exly2cH8Dc3Zd_0N9U6T1Cr2", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6808126258778492000, + "id_str": "6808126258778491654", + "title": "original sound - brfootball", + "author": "brfootball", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1662140701840405.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1662140701840405.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 57, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6649699478406217734", + "owner_nickname": "brfootball", + "is_original": false, + "mid": "6808126258778491654", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "brfootball", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAgqmzB4wNoLFymYhU1T0MrwPn0AWLlfoP29SFBHQ-exly2cH8Dc3Zd_0N9U6T1Cr2", + "avatar_thumb": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/8c46d8ea856eaeb2745a16336b41fbbd~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "83884", + "cha_name": "neymar", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=83884", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/83884.html?name=neymar&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=83884", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #neymar Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #neymar Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: neymar", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044b80000bptln9b9if23sbgtfcqg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000bptln9b9if23sbgtfcqg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000bptln9b9if23sbgtfcqg_h264_540p_375348", + "data_size": 2678912 + }, + "cover": { + "uri": "tos-maliva-p-0068/c27f2466e4c743318cd3b03e523a1a91_1585142714", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/c27f2466e4c743318cd3b03e523a1a91_1585142714~noop.webp?x-expires=1592658000&x-signature=sQOX6dXVuOjijdZjkKcfwZW2lCE%3D&l=202006181309470101150040751C23A9DF" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/d86362cacacc4c09ad3078c4967478df_1585142712", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/d86362cacacc4c09ad3078c4967478df_1585142712?x-expires=1592658000&x-signature=tE3Fbyk2df9jiCwn9tQORWoM3UM%3D&l=202006181309470101150040751C23A9DF" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/e95b5f71260c4fefbaad18aa064b32dd_1585142711", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/e95b5f71260c4fefbaad18aa064b32dd_1585142711~noop.image?x-expires=1592658000&x-signature=Zv9DE9CGsOPONSa6tygbcKYWTLo%3D&l=202006181309470101150040751C23A9DF" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044b80000bptln9b9if23sbgtfcqg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000bptln9b9if23sbgtfcqg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2300068 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 253378, + "play_addr": { + "uri": "v09044b80000bptln9b9if23sbgtfcqg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000bptln9b9if23sbgtfcqg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000bptln9b9if23sbgtfcqg_h264_540p_253378", + "data_size": 1808396 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 192524, + "play_addr": { + "uri": "v09044b80000bptln9b9if23sbgtfcqg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000bptln9b9if23sbgtfcqg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000bptln9b9if23sbgtfcqg_h264_540p_192524", + "data_size": 1374073 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 166995, + "play_addr": { + "uri": "v09044b80000bptln9b9if23sbgtfcqg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000bptln9b9if23sbgtfcqg&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000bptln9b9if23sbgtfcqg_h264_480p_166995", + "data_size": 1191866 + }, + "is_h265": 0 + } + ], + "duration": 57097, + "download_suffix_logo_addr": { + "uri": "v09044b80000bptln9b9if23sbgtfcqg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000bptln9b9if23sbgtfcqg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2341415 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507446, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044b80000bptln9b9if23sbgtfcqg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000bptln9b9if23sbgtfcqg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3499869}}\n" + }, + "share_url": "https://m.tiktok.com/v/6808136069725424901.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6808136069725424901", + "user_digged": 0, + "statistics": { + "aweme_id": "6808136069725424901", + "comment_count": 2131, + "digg_count": 433578, + "download_count": 50116, + "play_count": 3936154, + "share_count": 13167, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 4922 + }, + "status": { + "aweme_id": "6808136069725424901", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 52, + "end": 59, + "type": 1, + "hashtag_name": "neymar", + "hashtag_id": "83884", + "is_commerce": false + }, + { + "start": 60, + "end": 70, + "type": 1, + "hashtag_name": "champions", + "hashtag_id": "14014", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040751C23A9DF" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6808136069725424901.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6808136069725424901", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out brfootball’s video! #TikTok > ", + "share_desc": "Check out brfootball's video! #TikTok", + "share_title": "Check out brfootball’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 57097, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6649699478406217734,\"author_country\":\"United Kingdom\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6649699478406218000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "GB", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6808136069725424901", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040751C23A9DF" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.fr/assets/i18#lang_fr/default.json b/config.fr/assets/i18#lang_fr/default.json new file mode 100644 index 0000000..21c0350 --- /dev/null +++ b/config.fr/assets/i18#lang_fr/default.json @@ -0,0 +1,1004 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6834532770073677062", + "desc": "got the cash🤑🤑😅#terterians @xatchterterian 💞💞", + "create_time": 1591288670, + "author": { + "uid": "6679316835252372486", + "short_id": "40874896264", + "nickname": "Charlene", + "signature": "A R T\n🔆goal: billion followers🔆", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "charleneterterian", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "BE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1666203919057926", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1666203919057926" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101151192430C238DD3" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA6BPHtvkX2DA4LuvtABJG0tAtqNfcRTjfq77gt_3QBKkefFpbjErmvMbCoW-C_wPK", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6834533136727035000, + "id_str": "6834533136727034630", + "title": "original sound - charleneterterian", + "author": "Charlene", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6834533110311389957.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6834533110311389957.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6679316835252372486", + "owner_nickname": "Charlene", + "is_original": false, + "mid": "6834533136727034630", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "charleneterterian", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAA6BPHtvkX2DA4LuvtABJG0tAtqNfcRTjfq77gt_3QBKkefFpbjErmvMbCoW-C_wPK", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1665415558637574", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665415558637574~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1663668829239301", + "cha_name": "terterians", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1663668829239301", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1663668829239301.html?name=terterians&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1663668829239301", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #terterians Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #terterians Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: terterians", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044ac0000brci6mlb9tbucrbemivg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brci6mlb9tbucrbemivg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brci6mlb9tbucrbemivg_h264_540p_781256", + "data_size": 1476281 + }, + "cover": { + "uri": "tos-maliva-p-0068/4341eb9779a447cfb0486eca988d9842", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/4341eb9779a447cfb0486eca988d9842~noop.webp?x-expires=1592658000&x-signature=3l%2Bcw0EKA8PKKVO1vZ9wHZRiMcQ%3D&l=202006181309490101151192430C238DD3" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/4d943124282e43f8831080132333dbcd_1591288674", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/4d943124282e43f8831080132333dbcd_1591288674?x-expires=1592658000&x-signature=6AQa9EyNexlJhoko8pouHYG3ehc%3D&l=202006181309490101151192430C238DD3" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/012698c51698486791c5ce161f1401d1_1591288672", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/012698c51698486791c5ce161f1401d1_1591288672~noop.image?x-expires=1592658000&x-signature=tvLXZZgLhCIJIcqEKWbDazXWfu8%3D&l=202006181309490101151192430C238DD3" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044ac0000brci6mlb9tbucrbemivg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brci6mlb9tbucrbemivg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1556746 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 781256, + "play_addr": { + "uri": "v09044ac0000brci6mlb9tbucrbemivg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brci6mlb9tbucrbemivg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brci6mlb9tbucrbemivg_h264_540p_781256", + "data_size": 1476281 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 417053, + "play_addr": { + "uri": "v09044ac0000brci6mlb9tbucrbemivg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brci6mlb9tbucrbemivg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brci6mlb9tbucrbemivg_h264_540p_417053", + "data_size": 788075 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 294427, + "play_addr": { + "uri": "v09044ac0000brci6mlb9tbucrbemivg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brci6mlb9tbucrbemivg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brci6mlb9tbucrbemivg_h264_540p_294427", + "data_size": 556357 + }, + "is_h265": 0 + } + ], + "duration": 15117, + "download_suffix_logo_addr": { + "uri": "v09044ac0000brci6mlb9tbucrbemivg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brci6mlb9tbucrbemivg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1626585 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507405, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044ac0000brci6mlb9tbucrbemivg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brci6mlb9tbucrbemivg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1686436}}\n" + }, + "share_url": "https://m.tiktok.com/v/6834532770073677062.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834532770073677062", + "user_digged": 0, + "statistics": { + "aweme_id": "6834532770073677062", + "comment_count": 3890, + "digg_count": 2449300, + "download_count": 22323, + "play_count": 121267806, + "share_count": 14853, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 5727 + }, + "status": { + "aweme_id": "6834532770073677062", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 30, + "end": 45, + "user_id": "6679325352382694406", + "type": 0, + "sec_uid": "MS4wLjABAAAAAPYRYJYTiDWip09z_EZyFFF2DwGSJAHx0hsJZ4DE1t70By0ZpvjLyA8-0g1r-ojk" + }, + { + "start": 18, + "end": 29, + "type": 1, + "hashtag_name": "terterians", + "hashtag_id": "1663668829239301", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101151192430C238DD3" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834532770073677062.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834532770073677062", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Charlene’s video! #TikTok > ", + "share_desc": "Check out Charlene's video! #TikTok", + "share_title": "Check out Charlene’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15117, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6679316835252372000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "BE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6834532770073677062", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6834667699205917958", + "desc": "", + "create_time": 1591320082, + "author": { + "uid": "6804607330568864773", + "short_id": "47697526136", + "nickname": "user2718106129025", + "signature": "YouTube coming soon.... subscribe @Thatgirlp. P\nInstagram-babbyyydoll_.", + "avatar_thumb": { + "uri": "musically-maliva-obj/1594805258216454", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1594805258216454~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1594805258216454", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1594805258216454~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "playaamadebaby", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101151192430C238DD3" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1594805258216454", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1594805258216454~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1594805258216454", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1594805258216454~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAPWNaJw5OApYI9-taj_dSSP6YBKtJyG4IRZSGXSTc-mM75XdpQ-2jpYHv9SOCYS3k", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6827244541641313000, + "id_str": "6827244541641313029", + "title": "MArrY mE", + "author": "안녕하세요 여러분", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/66d922870bb7babc80cf698c328780fa", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/66d922870bb7babc80cf698c328780fa~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/66d922870bb7babc80cf698c328780fa", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/66d922870bb7babc80cf698c328780fa~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/66d922870bb7babc80cf698c328780fa", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/66d922870bb7babc80cf698c328780fa~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/66d922870bb7babc80cf698c328780fa", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/66d922870bb7babc80cf698c328780fa~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/5d6e972f2e2c25ddde5750d7e182ab35.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/5d6e972f2e2c25ddde5750d7e182ab35.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "283116242146701312", + "owner_nickname": "안녕하세요 여러분", + "is_original": false, + "mid": "6827244541641313029", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "wh0.mayah", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAcjsfxnN82H-Bsm9GTxuRn22YwKn3f_9cyWFl7N8QmS2UL4b93I1gXRAcTGF5Y2TD", + "avatar_thumb": { + "uri": "musically-maliva-obj/66d922870bb7babc80cf698c328780fa", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/66d922870bb7babc80cf698c328780fa~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/66d922870bb7babc80cf698c328780fa", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/66d922870bb7babc80cf698c328780fa~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/66d922870bb7babc80cf698c328780fa", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/66d922870bb7babc80cf698c328780fa~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044fe0000brcps302htnqb3305vng", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fe0000brcps302htnqb3305vng&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fe0000brcps302htnqb3305vng_h264_540p_1391987", + "data_size": 1587562 + }, + "cover": { + "uri": "tos-maliva-p-0068/9100edcf9e204701931eeedd496d0c43", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/9100edcf9e204701931eeedd496d0c43~noop.webp?x-expires=1592658000&x-signature=9vmWyxtJDE3ftu1142jfatm81z4%3D&l=202006181309490101151192430C238DD3" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/c5d87b10cc8b462c96a12f2991046636_1591320084", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/c5d87b10cc8b462c96a12f2991046636_1591320084?x-expires=1592658000&x-signature=%2BJVWSTiagqCfB3eBNF3az%2B92z9Q%3D&l=202006181309490101151192430C238DD3" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/cfa4d2d20f75449da4165e24f99d7b3f_1591320084", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/cfa4d2d20f75449da4165e24f99d7b3f_1591320084~noop.image?x-expires=1592658000&x-signature=wAqFsDFW%2BTL9LJQN%2F%2FmIZpRUqbU%3D&l=202006181309490101151192430C238DD3" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044fe0000brcps302htnqb3305vng", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fe0000brcps302htnqb3305vng&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1656548 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1391987, + "play_addr": { + "uri": "v09044fe0000brcps302htnqb3305vng", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fe0000brcps302htnqb3305vng&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fe0000brcps302htnqb3305vng_h264_540p_1391987", + "data_size": 1587562 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 798390, + "play_addr": { + "uri": "v09044fe0000brcps302htnqb3305vng", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fe0000brcps302htnqb3305vng&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fe0000brcps302htnqb3305vng_h264_540p_798390", + "data_size": 910564 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 590468, + "play_addr": { + "uri": "v09044fe0000brcps302htnqb3305vng", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fe0000brcps302htnqb3305vng&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044fe0000brcps302htnqb3305vng_h264_540p_590468", + "data_size": 673429 + }, + "is_h265": 0 + } + ], + "duration": 9124, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044fe0000brcps302htnqb3305vng\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044fe0000brcps302htnqb3305vng&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1724021}}\n" + }, + "share_url": "https://m.tiktok.com/v/6834667699205917958.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834667699205917958", + "user_digged": 0, + "statistics": { + "aweme_id": "6834667699205917958", + "comment_count": 3482, + "digg_count": 212890, + "download_count": 7192, + "play_count": 2155916, + "share_count": 7857, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 420 + }, + "status": { + "aweme_id": "6834667699205917958", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101151192430C238DD3" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834667699205917958.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834667699205917958", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out user2718106129025’s video! #TikTok > ", + "share_desc": "Check out user2718106129025's video! #TikTok", + "share_title": "Check out user2718106129025’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9124, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6804607330568864773,\"author_country\":\"United States\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6804607330568865000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "stickers": "239148", + "group_id": "6834667699205917958", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "sticker_detail": { + "id": "239148", + "name": "Rainbow Strobe", + "children": null, + "tags": null + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "un", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-48.5,\"end_time\":9075,\"p\":-1,\"y\":-199,\"h\":0.1628,\"start_time\":0,\"r\":0,\"w\":0.8292,\"s\":1}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485791000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309490101151192430C238DD3" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.fr/assets/i18#lang_fr/dz.json b/config.fr/assets/i18#lang_fr/dz.json new file mode 100644 index 0000000..e9ef0c4 --- /dev/null +++ b/config.fr/assets/i18#lang_fr/dz.json @@ -0,0 +1,1079 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838592038842174725", + "desc": "Ou sont les chaoui🇩🇿", + "create_time": 1592233788, + "author": { + "uid": "6834277087417205766", + "short_id": "49566256864", + "nickname": "Nourhane Maoui", + "signature": "Insta: nourhane_maouiii\n♥️\n🇩🇿chaouia", + "avatar_thumb": { + "uri": "musically-maliva-obj/45ff9d678882de23a53985121d901f4b", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/45ff9d678882de23a53985121d901f4b~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/45ff9d678882de23a53985121d901f4b", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/45ff9d678882de23a53985121d901f4b~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "nourhanemaoui", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "DZ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + } + ], + "language": "fr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/45ff9d678882de23a53985121d901f4b", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/45ff9d678882de23a53985121d901f4b~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/45ff9d678882de23a53985121d901f4b", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/45ff9d678882de23a53985121d901f4b~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAACaj-q3ws07m9C_rWPptjCuNw5xh2mhoi2b25-Ispi43hp9g1khWCYx8WAwFgCMha", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6834970950111464000, + "id_str": "6834970950111464198", + "title": "original sound - chahinezchennafi", + "author": "Chahinez Chennafi", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6834970877323397893.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6834970877323397893.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6760991317905720325", + "owner_nickname": "Chahinez Chennafi", + "is_original": false, + "mid": "6834970950111464198", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "chahinezchennafi", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAKZUPsyW0vaVD38YyXajsoiMsTyQ28AN7CmGUfITmJP2xpWUse44J_wDVwv3DE4l0", + "avatar_thumb": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/118f7914a48e39ca5b7c407f85ab9fd7~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjotsfdee99o39pata0_h264_540p_1158528", + "data_size": 1879567 + }, + "cover": { + "uri": "tos-maliva-p-0068/79b06d209fcc4ac6a0bcf51018e0bbe6", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/79b06d209fcc4ac6a0bcf51018e0bbe6~noop.webp?x-expires=1592658000&x-signature=N6PkfF6Jq5kzy3YvS%2FxAk3iYMRM%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/0a0c5a3937204b27a60bb35a1216e6db_1592233790", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/0a0c5a3937204b27a60bb35a1216e6db_1592233790?x-expires=1592658000&x-signature=cwyJlil4dySCjDYw16T%2FTUuH6M4%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/1d314741865f42f2a4dde35562bd2337_1592233791", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/1d314741865f42f2a4dde35562bd2337_1592233791~noop.image?x-expires=1592658000&x-signature=UoBfiI1Xa2ouj4c%2FvRPic7JV0Nw%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1917490 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 504574, + "play_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjotsfdee99o39pata0_h264_540p_504574", + "data_size": 818609 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 315800, + "play_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjotsfdee99o39pata0_h264_540p_315800", + "data_size": 512347 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 251848, + "play_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brjotsfdee99o39pata0_h264_480p_251848", + "data_size": 408592 + }, + "is_h265": 0 + } + ], + "duration": 12979, + "download_suffix_logo_addr": { + "uri": "v09044100000brjotsfdee99o39pata0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brjotsfdee99o39pata0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1984843 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401 + }, + "share_url": "https://m.tiktok.com/v/6838592038842174725.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838592038842174725", + "user_digged": 0, + "statistics": { + "aweme_id": "6838592038842174725", + "comment_count": 1925, + "digg_count": 129767, + "download_count": 4952, + "play_count": 2075591, + "share_count": 2333, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 55 + }, + "status": { + "aweme_id": "6838592038842174725", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838592038842174725.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838592038842174725", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Nourhane Maoui’s video! #TikTok > ", + "share_desc": "Check out Nourhane Maoui's video! #TikTok", + "share_title": "Check out Nourhane Maoui’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12979, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6834277087417206000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "DZ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838592038842174725", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "fr", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6825108367703411969", + "desc": "Mother Day🥀😘 #standwithkashmir #tehzeebhafi #urdushayari #deepthoughts #viral #viralvideo #ertuğrul #ertugrul #fyp #foryou #turkishdrama #fypシ", + "create_time": 1589094377, + "author": { + "uid": "6823574408465220609", + "short_id": "35256545697", + "nickname": "Gol•Gappi😜", + "signature": "کڑوے مزاج کی نیم چڑھی لڑکی ہوں\nبرداشت کیجئے یا اجتناب کیجئے ✨😌\n18y/o🐾", + "avatar_thumb": { + "uri": "tiktok-obj/0edfa817799aebba1a800aa8bd1f8174", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0edfa817799aebba1a800aa8bd1f8174.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/0edfa817799aebba1a800aa8bd1f8174", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0edfa817799aebba1a800aa8bd1f8174.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mehak.wri8s", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/0edfa817799aebba1a800aa8bd1f8174", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/0edfa817799aebba1a800aa8bd1f8174~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/0edfa817799aebba1a800aa8bd1f8174", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/0edfa817799aebba1a800aa8bd1f8174~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAjQAo14CyIeN6N3NRhejDpCUoyWtQQ_7IzCaPXOKa-ckdm47aKU-XeP7E38ajmvC4", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6810938042627444000, + "id_str": "6810938042627443457", + "title": "Turkish Music", + "author": "Javed Ali Solangi", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1662827780986930.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1662827780986930.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 24, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6716138059442111493", + "owner_nickname": "Javed Ali Solangi", + "is_original": false, + "mid": "6810938042627443457", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "solangi777", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAJePubiIgnHty0z0L3Zx0eRZfuzv7uGFFETj6gcudaH0IpKae7q3dIfp4lO9OpVmi", + "avatar_thumb": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/9298d2370eda52c961a5f29961705589", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/9298d2370eda52c961a5f29961705589.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1624626732781573", + "cha_name": "standwithkashmir", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1624626732781573", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1624626732781573.html?name=standwithkashmir&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1624626732781573", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #standwithkashmir Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #standwithkashmir Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: standwithkashmir", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044030000bqrqfmea9rh4nikvknsg_h264_540p_903610", + "data_size": 1154023 + }, + "cover": { + "uri": "tos-maliva-p-0068/ac2cecef9dde4db6b3d70a1c420009b0", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ac2cecef9dde4db6b3d70a1c420009b0~noop.webp?x-expires=1592658000&x-signature=L54teldzCaNnGwugMgRpESGxDtU%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/f64b039ea86d457b9b881e7e736bbe66_1589094380", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/f64b039ea86d457b9b881e7e736bbe66_1589094380?x-expires=1592658000&x-signature=4WnotSyD1lUKAhlbwssT6MtiaWQ%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/030d5f0308a144b6b4cdb73b0863bec9_1589094379", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/030d5f0308a144b6b4cdb73b0863bec9_1589094379~noop.image?x-expires=1592658000&x-signature=aVV5226iz6oGcywVSMv84cO1VIQ%3D&l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1206821 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 370565, + "play_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044030000bqrqfmea9rh4nikvknsg_h264_540p_370565", + "data_size": 473258 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 224693, + "play_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044030000bqrqfmea9rh4nikvknsg_h264_540p_224693", + "data_size": 286962 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 180254, + "play_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044030000bqrqfmea9rh4nikvknsg_h264_480p_180254", + "data_size": 230208 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v09044030000bqrqfmea9rh4nikvknsg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1274624 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044030000bqrqfmea9rh4nikvknsg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044030000bqrqfmea9rh4nikvknsg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1320056}}\n" + }, + "share_url": "https://m.tiktok.com/v/6825108367703411969.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6825108367703411969", + "user_digged": 0, + "statistics": { + "aweme_id": "6825108367703411969", + "comment_count": 306, + "digg_count": 36488, + "download_count": 13063, + "play_count": 370524, + "share_count": 4919, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 4092 + }, + "status": { + "aweme_id": "6825108367703411969", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 15, + "end": 32, + "type": 1, + "hashtag_name": "standwithkashmir", + "hashtag_id": "1624626732781573", + "is_commerce": false + }, + { + "start": 33, + "end": 45, + "type": 1, + "hashtag_name": "tehzeebhafi", + "hashtag_id": "1622261264162821", + "is_commerce": false + }, + { + "start": 46, + "end": 58, + "type": 1, + "hashtag_name": "urdushayari", + "hashtag_id": "1603439555991558", + "is_commerce": false + }, + { + "start": 59, + "end": 72, + "type": 1, + "hashtag_name": "deepthoughts", + "hashtag_id": "374089", + "is_commerce": false + }, + { + "start": 73, + "end": 79, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + }, + { + "start": 80, + "end": 91, + "type": 1, + "hashtag_name": "viralvideo", + "hashtag_id": "85133", + "is_commerce": false + }, + { + "start": 92, + "end": 101, + "type": 1, + "hashtag_name": "ertuğrul", + "hashtag_id": "84120280", + "is_commerce": false + }, + { + "start": 102, + "end": 111, + "type": 1, + "hashtag_name": "ertugrul", + "hashtag_id": "1592794425414662", + "is_commerce": false + }, + { + "start": 112, + "end": 116, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 117, + "end": 124, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 125, + "end": 138, + "type": 1, + "hashtag_name": "turkishdrama", + "hashtag_id": "65807755", + "is_commerce": false + }, + { + "start": 139, + "end": 144, + "type": 1, + "hashtag_name": "fypシ", + "hashtag_id": "1637342470396934", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094801011500405414232F55" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6825108367703411969.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6825108367703411969", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Gol•Gappi😜’s video! #TikTok > ", + "share_desc": "Check out Gol•Gappi😜's video! #TikTok", + "share_title": "Check out Gol•Gappi😜’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6823574408465220609,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6823574408465221000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6825108367703411969", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "misc_info": "{\"green_screen\":0,\"mv_id\":\"309393\",\"mv_info\":{\"id\":\"309393\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813094801011500405414232F55" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.fr/assets/i18#lang_fr/ma.json b/config.fr/assets/i18#lang_fr/ma.json new file mode 100644 index 0000000..d8cb4a0 --- /dev/null +++ b/config.fr/assets/i18#lang_fr/ma.json @@ -0,0 +1,1059 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6833385674972990726", + "desc": "Répondre à @oumaima.yassine #حركة_الاكسبلور ❤️❤️🥰", + "create_time": 1591021588, + "author": { + "uid": "6705354823330694149", + "short_id": "43905465960", + "nickname": "🇲🇦 MaNaL 🇲🇦", + "signature": "Bb’s ajoutez mon insta manalherrou 🥺❤️\nMrc pour 60K 🥵\nLvvyyy ❤️❤️😌", + "avatar_thumb": { + "uri": "musically-maliva-obj/b7d977f889207839e1088e0171b6bd32", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/b7d977f889207839e1088e0171b6bd32~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/b7d977f889207839e1088e0171b6bd32", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/b7d977f889207839e1088e0171b6bd32~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "manalherrou", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "MA", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + } + ], + "language": "fr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/b7d977f889207839e1088e0171b6bd32", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/b7d977f889207839e1088e0171b6bd32~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/b7d977f889207839e1088e0171b6bd32", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/b7d977f889207839e1088e0171b6bd32~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAw3wmuURQkIMJb1D6F1FWdn5F2vcNkQCJUCZBpPt7LEeQKhXTAyQR-RHho7QsKWo9", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6712899612438466000, + "id_str": "6712899612438465286", + "title": "Coño (feat. Jhorrmountain x Adje)", + "author": "Puri", + "album": "luluuu777", + "cover_hd": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/3e90ce8a08ab9118d3247c8934ec2897.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/3e90ce8a08ab9118d3247c8934ec2897.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078040742915\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078036779011\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078040718340\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078036739076\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6712899612438465286", + "binded_challenge_id": 1662232588115974, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1642284380423174", + "cha_name": "حركة_الاكسبلور", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1642284380423174", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1642284380423174.html?name=%D8%AD%D8%B1%D9%83%D8%A9_%D8%A7%D9%84%D8%A7%D9%83%D8%B3%D8%A8%D9%84%D9%88%D8%B1&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1642284380423174", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #حركة_الاكسبلور Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #حركة_الاكسبلور Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: حركة_الاكسبلور", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000bragvuq91d8lb53skirg_h264_540p_1608341", + "data_size": 3276795 + }, + "cover": { + "uri": "tos-maliva-p-0068/30f4551f0c3d492e9642de56c677241c", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/30f4551f0c3d492e9642de56c677241c~noop.webp?x-expires=1592658000&x-signature=7bU%2BE%2FuGQF36HLgurNOKuAGEtv4%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/f3430b04b6734a84ad04a1522642d99b_1591021590", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/f3430b04b6734a84ad04a1522642d99b_1591021590?x-expires=1592658000&x-signature=0O9tWfWM1DzbF%2FzD3oRcpF%2FDh8k%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/edf28868d0ea4447a01d466185e82f72_1591021590", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/edf28868d0ea4447a01d466185e82f72_1591021590~noop.image?x-expires=1592658000&x-signature=6TJHBebwFpL5YVLE8ToMfNQAcwI%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3376463 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 920970, + "play_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000bragvuq91d8lb53skirg_h264_540p_920970", + "data_size": 1876362 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 651419, + "play_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000bragvuq91d8lb53skirg_h264_540p_651419", + "data_size": 1327186 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 522116, + "play_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000bragvuq91d8lb53skirg_h264_480p_522116", + "data_size": 1063748 + }, + "is_h265": 0 + } + ], + "duration": 16299, + "download_suffix_logo_addr": { + "uri": "v09044ac0000bragvuq91d8lb53skirg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3443116 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044ac0000bragvuq91d8lb53skirg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000bragvuq91d8lb53skirg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3539113}}\n" + }, + "share_url": "https://m.tiktok.com/v/6833385674972990726.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833385674972990726", + "user_digged": 0, + "statistics": { + "aweme_id": "6833385674972990726", + "comment_count": 1460, + "digg_count": 132758, + "download_count": 9862, + "play_count": 6511707, + "share_count": 463377, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2223 + }, + "status": { + "aweme_id": "6833385674972990726", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 11, + "end": 27, + "user_id": "6634463603201228805", + "type": 0, + "sec_uid": "MS4wLjABAAAAvjx4j0w-LwsBFBx1oUqcX4UEePf7HgRmZohLCnAw-WUyoN6dqR39AhnVqXlB-RKz" + }, + { + "start": 28, + "end": 43, + "type": 1, + "hashtag_name": "حركة_الاكسبلور", + "hashtag_id": "1642284380423174", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6833385674972990726.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833385674972990726", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 🇲🇦 MaNaL 🇲🇦’s video! #TikTok > ", + "share_desc": "Check out 🇲🇦 MaNaL 🇲🇦's video! #TikTok", + "share_title": "Check out 🇲🇦 MaNaL 🇲🇦’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 16299, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6705354823330694000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "MA", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6833385674972990726", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 3, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "fr", + "interaction_stickers": [ + { + "type": 4, + "index": 0, + "track_info": "[{\"x\":0.3223,\"end_time\":16250,\"p\":null,\"y\":0.1262,\"h\":0.1201,\"start_time\":0,\"r\":0,\"w\":0.5671,\"s\":1.0164}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6812097963884580102", + "desc": "my best dressup with joker head💓💘 comment your best dressup😘🌹 #foryou😚 #keepsupporting🙏 #FreefireNepal😘🌹", + "create_time": 1586065156, + "author": { + "uid": "6776547527023084545", + "short_id": "33765279057", + "nickname": "❤Chimsey❤🔥", + "signature": "SaNdEep Gurung😊\nFrom:-Lamjung❤\n FreefireNamE:-꧁࿐丂สиd¡թꔪᴰᵍ\nLvL=71😊\nPeaCe😪🌹", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "sandeep_official10", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "NP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1663693824600069", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663693824600069~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAAW5JaQhopEyulQUMSwL3u3VTPw3QBw0q7oDonr6AqfNdajOi98iFLLm_k_54ExZI", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6791463192963878000, + "id_str": "6791463192963877637", + "title": "original sound - poozachetry4", + "author": "Raj----puja♥️♥️", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658080562814982.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658080562814982.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"has_edited\":0,\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6650365703969701894", + "owner_nickname": "Raj----puja♥️♥️", + "is_original": false, + "mid": "6791463192963877637", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "poozachetry4", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658479508983810", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1658479508983810" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhGpxSePlZBwp4bv7wOCkUPLRXu4YoD3Vh5mVkapkiCUG1a199XdUKtWlebRXypze", + "avatar_thumb": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1664181115161602", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664181115161602.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1614592377069573", + "cha_name": "foryou😚", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1614592377069573", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1614592377069573.html?name=foryou%F0%9F%98%9A&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1614592377069573", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou😚 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou😚 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou😚", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_867816", + "data_size": 1108310 + }, + "cover": { + "uri": "tos-maliva-p-0068/368091d581ef4885ad80c7a53fdf65ca_1586065161", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/368091d581ef4885ad80c7a53fdf65ca_1586065161~noop.webp?x-expires=1592658000&x-signature=sANlKuyDyicRw61mMPQJ8ZKhKbE%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/100c6728d8534b23814228d628ffcdbb_1586065161", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/100c6728d8534b23814228d628ffcdbb_1586065161?x-expires=1592658000&x-signature=4tr1nksQbR9tL639taKC0HG3aFo%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/758b6771bda64915bb13576ffaa92f30_1586065161", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/758b6771bda64915bb13576ffaa92f30_1586065161~noop.image?x-expires=1592658000&x-signature=8RBWsxuPCXbtfylijGbh8C4tljs%3D&l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 757755 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 428226, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_428226", + "data_size": 546899 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 292366, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_540p_292366", + "data_size": 373389 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 235830, + "play_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449e0000bq4mtohsihvdpp17hic0_h264_480p_235830", + "data_size": 301185 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090449e0000bq4mtohsihvdpp17hic0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449e0000bq4mtohsihvdpp17hic0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 803284 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398 + }, + "share_url": "https://m.tiktok.com/v/6812097963884580102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812097963884580102", + "user_digged": 0, + "statistics": { + "aweme_id": "6812097963884580102", + "comment_count": 77, + "digg_count": 12896, + "download_count": 969, + "play_count": 192774, + "share_count": 207, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 24 + }, + "status": { + "aweme_id": "6812097963884580102", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 67, + "end": 76, + "type": 1, + "hashtag_name": "foryou😚", + "hashtag_id": "1614592377069573", + "is_commerce": false + }, + { + "start": 77, + "end": 94, + "type": 1, + "hashtag_name": "keepsupporting🙏", + "hashtag_id": "1616815176991749", + "is_commerce": false + }, + { + "start": 95, + "end": 113, + "type": 1, + "hashtag_name": "freefirenepal😘🌹", + "hashtag_id": "1663109709893638", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151510971723C887" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6812097963884580102.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812097963884580102", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ❤Chimsey❤🔥’s video! #TikTok > ", + "share_desc": "Check out ❤Chimsey❤🔥's video! #TikTok", + "share_title": "Check out ❤Chimsey❤🔥’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6776547527023084545,\"author_country\":\"Nepal\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6776547527023085000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "NP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6812097963884580102", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309393\",\"mv_info\":{\"id\":\"309393\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101151510971723C887" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.fr/assets/i18#lang_fr/re.json b/config.fr/assets/i18#lang_fr/re.json new file mode 100644 index 0000000..389ccf2 --- /dev/null +++ b/config.fr/assets/i18#lang_fr/re.json @@ -0,0 +1,985 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6836691832555048197", + "desc": "💙😹 #abonetoi #like", + "create_time": 1591791361, + "author": { + "uid": "6814489416837776389", + "short_id": "48393641288", + "nickname": "Dii¥Dii¥💙✨🇩🇴🇬🇫", + "signature": "1k abonnés 🙈💫🌈 go follow mon Instagram diiydiiy_08🌈💫", + "avatar_thumb": { + "uri": "musically-maliva-obj/2482b5902225fc7c11ee191c28e22563", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2482b5902225fc7c11ee191c28e22563~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2482b5902225fc7c11ee191c28e22563", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2482b5902225fc7c11ee191c28e22563~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "diiydiiy08", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "GP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094701011500406911239B11" + ], + "width": 720, + "height": 720 + } + ], + "language": "fr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/2482b5902225fc7c11ee191c28e22563", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2482b5902225fc7c11ee191c28e22563~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2482b5902225fc7c11ee191c28e22563", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2482b5902225fc7c11ee191c28e22563~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA9TXWZprkCJiZbbZ5MaGYqSBser95HQlpGK5z7Cu4Yd-6HE4JUK-_rR-XUcvkK29l", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6679908937183006000, + "id_str": "6679908937183005446", + "title": "original sound - aïshaamam", + "author": "Mak", + "album": "aïshaamam", + "cover_hd": { + "uri": "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454", + "url_list": [ + "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454", + "url_list": [ + "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454", + "url_list": [ + "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454", + "url_list": [ + "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1630867833547830.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1630867833547830.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 24, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6613572508603367430", + "owner_nickname": "Mak", + "is_original": false, + "mid": "6679908937183005446", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "aïshaamam", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1634273411123206", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1634273411123206" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAtdCfwpGdOdTpsw9leyrjhenwbAS83cVjBpYQ31Xi8SAG3dWe1MZF5qXf7LmV40dH", + "avatar_thumb": { + "uri": "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454", + "url_list": [ + "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454", + "url_list": [ + "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454", + "url_list": [ + "http://p16.muscdn.com/obj/musically-maliva-obj/1594805258216454" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "5459683", + "cha_name": "abonetoi", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=5459683", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/5459683.html?name=abonetoi&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=5459683", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #abonetoi Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #abonetoi Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: abonetoi", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044490000brgcrnndee92g4i7cdj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brgcrnndee92g4i7cdj0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brgcrnndee92g4i7cdj0_h264_540p_1117676", + "data_size": 3386698 + }, + "cover": { + "uri": "tos-maliva-p-0068/dd648ba71da84ff893c008f7915564c3", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/dd648ba71da84ff893c008f7915564c3~noop.webp?x-expires=1592658000&x-signature=nsCyX6hxlZoIMn9zZTK4spNpAB4%3D&l=2020061813094701011500406911239B11" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/ff7b5b22b0a04d789ce0efcb852f034c_1591791364", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/ff7b5b22b0a04d789ce0efcb852f034c_1591791364?x-expires=1592658000&x-signature=43v7UgDtxy6PZ4Y1rsePT%2BOtbY4%3D&l=2020061813094701011500406911239B11" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/a782c7a47306478c8d6a8f7d156eadd6_1591791363", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/a782c7a47306478c8d6a8f7d156eadd6_1591791363~noop.image?x-expires=1592658000&x-signature=eu7HZjeUiFza0oNxPAz0ESPa508%3D&l=2020061813094701011500406911239B11" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044490000brgcrnndee92g4i7cdj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brgcrnndee92g4i7cdj0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3512794 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 646014, + "play_addr": { + "uri": "v09044490000brgcrnndee92g4i7cdj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brgcrnndee92g4i7cdj0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brgcrnndee92g4i7cdj0_h264_540p_646014", + "data_size": 1957505 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 470369, + "play_addr": { + "uri": "v09044490000brgcrnndee92g4i7cdj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brgcrnndee92g4i7cdj0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brgcrnndee92g4i7cdj0_h264_540p_470369", + "data_size": 1425278 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 389532, + "play_addr": { + "uri": "v09044490000brgcrnndee92g4i7cdj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brgcrnndee92g4i7cdj0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brgcrnndee92g4i7cdj0_h264_480p_389532", + "data_size": 1180332 + }, + "is_h265": 0 + } + ], + "duration": 24241, + "is_h265": 0, + "cdn_url_expired": 1592507413, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044490000brgcrnndee92g4i7cdj0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brgcrnndee92g4i7cdj0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3612897}}\n" + }, + "share_url": "https://m.tiktok.com/v/6836691832555048197.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836691832555048197", + "user_digged": 0, + "statistics": { + "aweme_id": "6836691832555048197", + "comment_count": 200, + "digg_count": 53546, + "download_count": 3099, + "play_count": 556238, + "share_count": 2467, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 912 + }, + "status": { + "aweme_id": "6836691832555048197", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 5, + "end": 14, + "type": 1, + "hashtag_name": "abonetoi", + "hashtag_id": "5459683", + "is_commerce": false + }, + { + "start": 15, + "end": 20, + "type": 1, + "hashtag_name": "like", + "hashtag_id": "5222", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094701011500406911239B11" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6836691832555048197.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836691832555048197", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Dii¥Dii¥💙✨🇩🇴🇬🇫’s video! #TikTok > ", + "share_desc": "Check out Dii¥Dii¥💙✨🇩🇴🇬🇫's video! #TikTok", + "share_title": "Check out Dii¥Dii¥💙✨🇩🇴🇬🇫’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 24241, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6814489416837776000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 0, + "is_pgcshow": false, + "region": "GP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836691832555048197", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6816609023547215106", + "desc": "aku ingin main keluar😭", + "create_time": 1587115468, + "author": { + "uid": "6769907594049422338", + "short_id": "33599823617", + "nickname": "apeng🕷", + "signature": "iseng doang ini gaboong", + "avatar_thumb": { + "uri": "tiktok-obj/6896c5aaa8665cbbc2662861d6873b8e", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/6896c5aaa8665cbbc2662861d6873b8e.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/6896c5aaa8665cbbc2662861d6873b8e", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/6896c5aaa8665cbbc2662861d6873b8e.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "venillagv", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "ID", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094701011500406911239B11" + ], + "width": 720, + "height": 720 + } + ], + "language": "id", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "tiktok-obj/6896c5aaa8665cbbc2662861d6873b8e", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/6896c5aaa8665cbbc2662861d6873b8e~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/6896c5aaa8665cbbc2662861d6873b8e", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/6896c5aaa8665cbbc2662861d6873b8e~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAASWNQPwMkvs5CyQ7EVlK-ZOU1Mo0rpWdFP623ItpzZPxNed-7qK_D1XBeAJR8BRLm", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6759409576673561000, + "id_str": "6759409576673560577", + "title": "Supalonely (feat. Gus Dapperton)", + "author": "BENEE", + "album": "STELLA & STEVE", + "cover_hd": { + "uri": "tos-alisg-i-0000/6ff66e920de042038bb942968d45a72a", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/6ff66e920de042038bb942968d45a72a.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/6ff66e920de042038bb942968d45a72a", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/6ff66e920de042038bb942968d45a72a.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/6ff66e920de042038bb942968d45a72a", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/6ff66e920de042038bb942968d45a72a.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/6ff66e920de042038bb942968d45a72a", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/6ff66e920de042038bb942968d45a72a.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tos-alisg-v-0000/97a89ea3b6b9465ba90262613e51eba4", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tos-alisg-v-0000/97a89ea3b6b9465ba90262613e51eba4" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 30, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1486925302,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1660952264973324\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1660952264937475\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1660952270347268\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1660952270376963\"},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6759409576673560577", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1654257736572930", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1654257736572930" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1486925302", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 48, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v07025b10000bqcnb2gji60rd2dqhdu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqcnb2gji60rd2dqhdu0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000bqcnb2gji60rd2dqhdu0_h264_540p_543718", + "data_size": 1039929 + }, + "cover": { + "uri": "large/v0201/ccf9b01a049e49ffa73aab5a67b36e16", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/ccf9b01a049e49ffa73aab5a67b36e16.webp?x-expires=1592658000&x-signature=P7Q524widsRWD2CyqJRJc00XSvg%3D&l=2020061813094701011500406911239B11" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/86fbe15697bc4e25804abe4ab6ca56ad_1587115472", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/86fbe15697bc4e25804abe4ab6ca56ad_1587115472?x-expires=1592658000&x-signature=wCUaH0s6roJBUlp4Hylp5YOZ42k%3D&l=2020061813094701011500406911239B11" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/37317b223d434732a3925253aefacf52_1587115471", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/37317b223d434732a3925253aefacf52_1587115471.jpeg?x-expires=1592658000&x-signature=gRugfGV%2BP9RIVyKSy4lVcU6%2B2Tk%3D&l=2020061813094701011500406911239B11" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025b10000bqcnb2gji60rd2dqhdu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqcnb2gji60rd2dqhdu0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2036155 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 543718, + "play_addr": { + "uri": "v07025b10000bqcnb2gji60rd2dqhdu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqcnb2gji60rd2dqhdu0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000bqcnb2gji60rd2dqhdu0_h264_540p_543718", + "data_size": 1039929 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 390706, + "play_addr": { + "uri": "v07025b10000bqcnb2gji60rd2dqhdu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqcnb2gji60rd2dqhdu0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000bqcnb2gji60rd2dqhdu0_h264_540p_390706", + "data_size": 747275 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 330045, + "play_addr": { + "uri": "v07025b10000bqcnb2gji60rd2dqhdu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqcnb2gji60rd2dqhdu0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b10000bqcnb2gji60rd2dqhdu0_h264_480p_330045", + "data_size": 631253 + }, + "is_h265": 0 + } + ], + "duration": 15301, + "download_suffix_logo_addr": { + "uri": "v07025b10000bqcnb2gji60rd2dqhdu0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b10000bqcnb2gji60rd2dqhdu0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2105809 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404 + }, + "share_url": "https://m.tiktok.com/v/6816609023547215106.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6816609023547215106", + "user_digged": 0, + "statistics": { + "aweme_id": "6816609023547215106", + "comment_count": 72, + "digg_count": 2922, + "download_count": 345, + "play_count": 52774, + "share_count": 102, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 23 + }, + "status": { + "aweme_id": "6816609023547215106", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094701011500406911239B11" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6816609023547215106.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6816609023547215106", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out apeng🕷’s video! #TikTok > ", + "share_desc": "Check out apeng🕷's video! #TikTok", + "share_title": "Check out apeng🕷’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15301, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6769907594049422338,\"author_country\":\"Indonesia\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6769907594049422000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "ID", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6816609023547215106", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "id", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813094701011500406911239B11" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.fr/assets/i18#lang_fr/sn.json b/config.fr/assets/i18#lang_fr/sn.json new file mode 100644 index 0000000..651c4d3 --- /dev/null +++ b/config.fr/assets/i18#lang_fr/sn.json @@ -0,0 +1,1044 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838741262640762117", + "desc": "Mdrrrrr avec ma petite sœur dafa ler 😂😂😂😂 @racky_sow", + "create_time": 1592268533, + "author": { + "uid": "6673638232973018117", + "short_id": "40386610840", + "nickname": "Gadji Razaq", + "signature": "Instagram kader_gadji", + "avatar_thumb": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "gadjirazaq", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "SN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151761431A23ECAE" + ], + "width": 720, + "height": 720 + } + ], + "language": "fr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAEVAohPxx-wtWVnOgRWXawhwBpeFyk5FGaveyLsW_pP46EldASmFtQWUdNw3hTuQv", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6838741235545492000, + "id_str": "6838741235545492229", + "title": "original sound - gadjirazaq", + "author": "Gadji Razaq", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838741158311561989.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838741158311561989.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 11, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6673638232973018117", + "owner_nickname": "Gadji Razaq", + "is_original": false, + "mid": "6838741235545492229", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "gadjirazaq", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAEVAohPxx-wtWVnOgRWXawhwBpeFyk5FGaveyLsW_pP46EldASmFtQWUdNw3hTuQv", + "avatar_thumb": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1648411826963462", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648411826963462~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044f00000brk1dko2htnhvd52s4e0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brk1dko2htnhvd52s4e0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f00000brk1dko2htnhvd52s4e0_h264_540p_2312720", + "data_size": 3369345 + }, + "cover": { + "uri": "tos-maliva-p-0068/00507f53a9864290a542f08321a9eaf9", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/00507f53a9864290a542f08321a9eaf9~noop.webp?x-expires=1592658000&x-signature=jHL5AhCAGz5FwWz4BuxNfnPLi68%3D&l=202006181309470101151761431A23ECAE" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/75304f4e4ec343eb9446d53692a16a1c_1592268535", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/75304f4e4ec343eb9446d53692a16a1c_1592268535?x-expires=1592658000&x-signature=h9H9R768MMKQzDWkyYd8m6SvvpQ%3D&l=202006181309470101151761431A23ECAE" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/7dae11850b394b3693ccadf77aacda0c_1592268536", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/7dae11850b394b3693ccadf77aacda0c_1592268536~noop.image?x-expires=1592658000&x-signature=nJuAq6YeEV8kD6mgMP%2B8jxkFo24%3D&l=202006181309470101151761431A23ECAE" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044f00000brk1dko2htnhvd52s4e0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brk1dko2htnhvd52s4e0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3365833 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1352402, + "play_addr": { + "uri": "v09044f00000brk1dko2htnhvd52s4e0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brk1dko2htnhvd52s4e0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f00000brk1dko2htnhvd52s4e0_h264_540p_1352402", + "data_size": 1970282 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 969652, + "play_addr": { + "uri": "v09044f00000brk1dko2htnhvd52s4e0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brk1dko2htnhvd52s4e0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f00000brk1dko2htnhvd52s4e0_h264_540p_969652", + "data_size": 1412663 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 807321, + "play_addr": { + "uri": "v09044f00000brk1dko2htnhvd52s4e0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brk1dko2htnhvd52s4e0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f00000brk1dko2htnhvd52s4e0_h264_480p_807321", + "data_size": 1176166 + }, + "is_h265": 0 + } + ], + "duration": 11655, + "download_suffix_logo_addr": { + "uri": "v09044f00000brk1dko2htnhvd52s4e0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brk1dko2htnhvd52s4e0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3433269 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044f00000brk1dko2htnhvd52s4e0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f00000brk1dko2htnhvd52s4e0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3502351}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838741262640762117.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838741262640762117", + "user_digged": 0, + "statistics": { + "aweme_id": "6838741262640762117", + "comment_count": 442, + "digg_count": 59273, + "download_count": 5395, + "play_count": 721243, + "share_count": 2023, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1068 + }, + "status": { + "aweme_id": "6838741262640762117", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 47, + "end": 57, + "user_id": "6698435506173117446", + "type": 0, + "sec_uid": "MS4wLjABAAAAYGhVYQfikTg7qWAjKm_ZJpi7vzIy-6MFJLcSXD0eyeLXZRy6BWYYJ4Kcn0awDGD5" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151761431A23ECAE" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838741262640762117.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838741262640762117", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Gadji Razaq’s video! #TikTok > ", + "share_desc": "Check out Gadji Razaq's video! #TikTok", + "share_title": "Check out Gadji Razaq’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 11655, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6673638232973018000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "SN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836746107368918278", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "fr", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6838538475973790977", + "desc": "Kya rang laya Dil ka lagana#😭💔 #shuaibkhansadking #insta🙏 #viral💔 #trending #foryoupage #please #friend #support_me #😭💔 @eturgulghzi07 @sabharwa", + "create_time": 1592221318, + "author": { + "uid": "6722814022465192966", + "short_id": "32858798329", + "nickname": "shuaibkhan sad💔king", + "signature": "up\nbulandshahr🌈\nfollow- 1.M😋\n😭support me☑️\n🙏follow my Insta😭love u all frnd", + "avatar_thumb": { + "uri": "tiktok-obj/52ced6279b0f6b161937e31b9dff4f8d", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/52ced6279b0f6b161937e31b9dff4f8d.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/52ced6279b0f6b161937e31b9dff4f8d", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/52ced6279b0f6b161937e31b9dff4f8d.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "shuaibkhan.07", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151761431A23ECAE" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/52ced6279b0f6b161937e31b9dff4f8d", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/52ced6279b0f6b161937e31b9dff4f8d~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/52ced6279b0f6b161937e31b9dff4f8d", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/52ced6279b0f6b161937e31b9dff4f8d~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAEm-hMCmSB2YysQLJgo4zvqUMS7k2jk5MepbjfXGLXf1PgXFHKPnfqOBhX_l8Wzlc", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6711545105829857000, + "id_str": "6711545105829857282", + "title": "LAMBIYAAN SI JUDAIYAAN", + "author": "Sushant Singh Rajput & Kriti Sanon & Jim Sarbh & Varun Sharma", + "album": "RAABTA", + "cover_hd": { + "uri": "tos-alisg-i-0000/451652efa6bc41bca7f109fc4cddfffe", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/451652efa6bc41bca7f109fc4cddfffe.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/451652efa6bc41bca7f109fc4cddfffe", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/451652efa6bc41bca7f109fc4cddfffe.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/451652efa6bc41bca7f109fc4cddfffe", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/451652efa6bc41bca7f109fc4cddfffe.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/451652efa6bc41bca7f109fc4cddfffe", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/451652efa6bc41bca7f109fc4cddfffe.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tos-alisg-v-0000/38d229f512504df6ae4ff63a395775e1", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tos-alisg-v-0000/38d229f512504df6ae4ff63a395775e1" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 30, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6711545105829857282", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1638888379227138", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1638888379227138" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1592201553614854", + "cha_name": "😭💔", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1592201553614854", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1592201553614854.html?name=%F0%9F%98%AD%F0%9F%92%94&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1592201553614854", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #😭💔 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #😭💔 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 😭💔", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044f70000brjlsubucagvdhhol210", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brjlsubucagvdhhol210&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brjlsubucagvdhhol210_h264_540p_446542", + "data_size": 838606 + }, + "cover": { + "uri": "tos-maliva-p-0068/2c1da15abc444f918fbcf282602503da", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/2c1da15abc444f918fbcf282602503da~noop.webp?x-expires=1592658000&x-signature=ugu6UQkC5aroMyvenYugYBLSc2A%3D&l=202006181309470101151761431A23ECAE" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 544, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/d6218315cbae47b9947f6da489069e80_1592221322", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/d6218315cbae47b9947f6da489069e80_1592221322?x-expires=1592658000&x-signature=XC1E6MrdGD2lb3N3XHv4gGgq%2Bqc%3D&l=202006181309470101151761431A23ECAE" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/c966a5fe28564c1fa79256228ce497df_1592221320", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/c966a5fe28564c1fa79256228ce497df_1592221320~noop.image?x-expires=1592658000&x-signature=i5Kg%2B9Jb4douCBdOFKXISQsG4do%3D&l=202006181309470101151761431A23ECAE" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044f70000brjlsubucagvdhhol210", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brjlsubucagvdhhol210&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2121001 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 446542, + "play_addr": { + "uri": "v09044f70000brjlsubucagvdhhol210", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brjlsubucagvdhhol210&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brjlsubucagvdhhol210_h264_540p_446542", + "data_size": 838606 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 351809, + "play_addr": { + "uri": "v09044f70000brjlsubucagvdhhol210", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brjlsubucagvdhhol210&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brjlsubucagvdhhol210_h264_480p_351809", + "data_size": 660699 + }, + "is_h265": 0 + } + ], + "duration": 15024, + "download_suffix_logo_addr": { + "uri": "v09044f70000brjlsubucagvdhhol210", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brjlsubucagvdhhol210&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2186733 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044f70000brjlsubucagvdhhol210\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brjlsubucagvdhhol210&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2259336}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838538475973790977.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838538475973790977", + "user_digged": 0, + "statistics": { + "aweme_id": "6838538475973790977", + "comment_count": 600, + "digg_count": 87275, + "download_count": 9149, + "play_count": 980130, + "share_count": 4292, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 3327 + }, + "status": { + "aweme_id": "6838538475973790977", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 126, + "end": 140, + "user_id": "6599522106164248582", + "type": 0, + "sec_uid": "MS4wLjABAAAA1dxGi2cV5HgfqxCb4WHcWuAUb0w7E4YSlVCVOWqQyPypi6-Zma849AiIML8Ug6FW" + }, + { + "start": 27, + "end": 32, + "type": 1, + "hashtag_name": "😭💔", + "hashtag_id": "1592201553614854", + "is_commerce": false + }, + { + "start": 33, + "end": 51, + "type": 1, + "hashtag_name": "shuaibkhansadking", + "hashtag_id": "1667255543150594", + "is_commerce": false + }, + { + "start": 52, + "end": 60, + "type": 1, + "hashtag_name": "insta🙏", + "hashtag_id": "1617568119141382", + "is_commerce": false + }, + { + "start": 61, + "end": 69, + "type": 1, + "hashtag_name": "viral💔", + "hashtag_id": "1626284059828229", + "is_commerce": false + }, + { + "start": 70, + "end": 79, + "type": 1, + "hashtag_name": "trending", + "hashtag_id": "20105", + "is_commerce": false + }, + { + "start": 80, + "end": 91, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 92, + "end": 99, + "type": 1, + "hashtag_name": "please", + "hashtag_id": "8642", + "is_commerce": false + }, + { + "start": 100, + "end": 107, + "type": 1, + "hashtag_name": "friend", + "hashtag_id": "9924", + "is_commerce": false + }, + { + "start": 108, + "end": 119, + "type": 1, + "hashtag_name": "support_me", + "hashtag_id": "30539037", + "is_commerce": false + }, + { + "start": 120, + "end": 125, + "type": 1, + "hashtag_name": "😭💔", + "hashtag_id": "1592201553614854", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151761431A23ECAE" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838538475973790977.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838538475973790977", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out shuaibkhan sad💔king’s video! #TikTok > ", + "share_desc": "Check out shuaibkhan sad💔king's video! #TikTok", + "share_title": "Check out shuaibkhan sad💔king’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15024, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6722814022465192966,\"author_country\":\"India\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6722814022465193000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838538475973790977", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "hi", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101151761431A23ECAE" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.fr/assets/i18#lang_fr/tn.json b/config.fr/assets/i18#lang_fr/tn.json new file mode 100644 index 0000000..a93af12 --- /dev/null +++ b/config.fr/assets/i18#lang_fr/tn.json @@ -0,0 +1,1138 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838298440720583941", + "desc": "#🍩مغروره🍭بكيفى🍫 وصالونى 250k", + "create_time": 1592165430, + "author": { + "uid": "6725881746199888901", + "short_id": "46162185736", + "nickname": "누르 ❤", + "signature": "نوصل 200kامتى", + "avatar_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "noormosta2", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "EG", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/63812c4ea2623dae9bcbd92677768a78", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/63812c4ea2623dae9bcbd92677768a78" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151510970023ECC4" + ], + "width": 720, + "height": 720 + } + ], + "language": "ar", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAeiwgLLuCtR1uYpm9YzmKxsVmoW3mdn7WCB_eKjuaXg7bpciP9KpOGQSTqvmiPNKk", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6836501938520067000, + "id_str": "6836501938520066821", + "title": "original sound - noormosta2", + "author": "누르 ❤", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6836501913979161350.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6836501913979161350.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 20, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6725881746199888901", + "owner_nickname": "누르 ❤", + "is_original": false, + "mid": "6836501938520066821", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "noormosta2", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAeiwgLLuCtR1uYpm9YzmKxsVmoW3mdn7WCB_eKjuaXg7bpciP9KpOGQSTqvmiPNKk", + "avatar_thumb": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2119b5eeff65c55e13a78c0b08ddf55a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1666810775573509", + "cha_name": "🍩مغروره🍭بكيفى🍫", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1666810775573509", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1666810775573509.html?name=%F0%9F%8D%A9%D9%85%D8%BA%D8%B1%D9%88%D8%B1%D9%87%F0%9F%8D%AD%D8%A8%D9%83%D9%8A%D9%81%D9%89%F0%9F%8D%AB&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1666810775573509", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🍩مغروره🍭بكيفى🍫 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🍩مغروره🍭بكيفى🍫 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🍩مغروره🍭بكيفى🍫", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_1279133", + "data_size": 2417082 + }, + "cover": { + "uri": "tos-maliva-p-0068/dec8c1a5f0bd4d9d8a0cfc4fbde5bf82", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/dec8c1a5f0bd4d9d8a0cfc4fbde5bf82~noop.webp?x-expires=1592658000&x-signature=QwrHMlOg7yJoZCtLWE1wpU4MXoQ%3D&l=202006181309480101151510970023ECC4" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 544, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/70ddfbdf545f4ab5907c51bc1eb66e72_1592165431", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/70ddfbdf545f4ab5907c51bc1eb66e72_1592165431?x-expires=1592658000&x-signature=D4MSuGTx%2FkjhbQoM1E9h4yG4gfE%3D&l=202006181309480101151510970023ECC4" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/3351ac8ba3bb4e05a5c97c3f8688fe2f_1592165432", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/3351ac8ba3bb4e05a5c97c3f8688fe2f_1592165432~noop.image?x-expires=1592658000&x-signature=3e3EiyzPJDaeRJRWbhoYNSjhFnI%3D&l=202006181309480101151510970023ECC4" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2545243 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 764315, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_764315", + "data_size": 1444270 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 554336, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_540p_554336", + "data_size": 1047488 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 438099, + "play_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044470000brj87rm0bkblhk383se0_h264_480p_438099", + "data_size": 827843 + }, + "is_h265": 0 + } + ], + "duration": 15117, + "download_suffix_logo_addr": { + "uri": "v09044470000brj87rm0bkblhk383se0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2611835 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044470000brj87rm0bkblhk383se0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044470000brj87rm0bkblhk383se0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2719486}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838298440720583941.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838298440720583941", + "user_digged": 0, + "statistics": { + "aweme_id": "6838298440720583941", + "comment_count": 4639, + "digg_count": 508902, + "download_count": 73131, + "play_count": 11315762, + "share_count": 314414, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6394 + }, + "status": { + "aweme_id": "6838298440720583941", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🍩مغروره🍭بكيفى🍫", + "hashtag_id": "1666810775573509", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151510970023ECC4" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838298440720583941.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838298440720583941", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 누르 ❤’s video! #TikTok > ", + "share_desc": "Check out 누르 ❤'s video! #TikTok", + "share_title": "Check out 누르 ❤’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15117, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6725881746199889000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "EG", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838298440720583941", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ar", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6830373071757511938", + "desc": "#standwithkashmir #fyp #love #trending #tiktok #viral #foryou #foryoupage #goviral #illu #illu #100k", + "create_time": 1590320162, + "author": { + "uid": "6716736088021369861", + "short_id": "35392949921", + "nickname": "Jannitmirza", + "signature": "My New Account Follow Thanks ❤", + "avatar_thumb": { + "uri": "tiktok-obj/2a72cbae8d34e86d6c563e360733500f", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/2a72cbae8d34e86d6c563e360733500f.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/2a72cbae8d34e86d6c563e360733500f", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/2a72cbae8d34e86d6c563e360733500f.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "jannitmirza.1", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151510970023ECC4" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/2a72cbae8d34e86d6c563e360733500f", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/2a72cbae8d34e86d6c563e360733500f~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/2a72cbae8d34e86d6c563e360733500f", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/2a72cbae8d34e86d6c563e360733500f~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAxbmr2JZL8H99Jb7EnPMbhgaWoEKxB3d0Qv3B1nALjHtA-jVHcjc_oEPlNJC6t7HJ", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6816613143909813000, + "id_str": "6816613143909812993", + "title": "original sound - maiwatichora6747", + "author": "Umar Mayo", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1660392103098373", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660392103098373~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1660392103098373", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660392103098373~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1660392103098373", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1660392103098373~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1660392103098373", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660392103098373~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664214291493906.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664214291493906.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 11, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6617400134610386949", + "owner_nickname": "Umar Mayo", + "is_original": false, + "mid": "6816613143909812993", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "maiwatichora6747", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAG_bdmnmV8YZbQ-W8pbWGc4xyF2UQcliookxNjLV9nN78GoxZ34cSzw3nJdi552lI", + "avatar_thumb": { + "uri": "musically-maliva-obj/1660392103098373", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660392103098373~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1660392103098373", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1660392103098373~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1660392103098373", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660392103098373~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1624626732781573", + "cha_name": "standwithkashmir", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1624626732781573", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1624626732781573.html?name=standwithkashmir&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1624626732781573", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #standwithkashmir Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #standwithkashmir Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: standwithkashmir", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044b80000br55m2n4gdtq74eukqp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br55m2n4gdtq74eukqp0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br55m2n4gdtq74eukqp0_h264_540p_438801", + "data_size": 560404 + }, + "cover": { + "uri": "tos-maliva-p-0068/7f17d6ae1e234423a7ee95dd55e2f7c7", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/7f17d6ae1e234423a7ee95dd55e2f7c7~noop.webp?x-expires=1592658000&x-signature=kv3%2FuIL7MFh0vruCnZ%2BCkicZqhM%3D&l=202006181309480101151510970023ECC4" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/8b5d5a5496964b91868c6f7e2cc8c595_1590320165", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/8b5d5a5496964b91868c6f7e2cc8c595_1590320165?x-expires=1592658000&x-signature=DkGTPJB5enYWNk%2Fu7utYoARaNa4%3D&l=202006181309480101151510970023ECC4" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/0419fac21cdd4876abf7697017189cbe_1590320164", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/0419fac21cdd4876abf7697017189cbe_1590320164~noop.image?x-expires=1592658000&x-signature=kxREo5P0X%2BCYMXeSjx%2B%2FXHZiwC8%3D&l=202006181309480101151510970023ECC4" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044b80000br55m2n4gdtq74eukqp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br55m2n4gdtq74eukqp0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 664533 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 260861, + "play_addr": { + "uri": "v09044b80000br55m2n4gdtq74eukqp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br55m2n4gdtq74eukqp0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br55m2n4gdtq74eukqp0_h264_540p_260861", + "data_size": 333153 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 187003, + "play_addr": { + "uri": "v09044b80000br55m2n4gdtq74eukqp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br55m2n4gdtq74eukqp0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br55m2n4gdtq74eukqp0_h264_540p_187003", + "data_size": 238827 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 154948, + "play_addr": { + "uri": "v09044b80000br55m2n4gdtq74eukqp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br55m2n4gdtq74eukqp0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br55m2n4gdtq74eukqp0_h264_480p_154948", + "data_size": 197889 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v09044b80000br55m2n4gdtq74eukqp0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br55m2n4gdtq74eukqp0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 732858 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044b80000br55m2n4gdtq74eukqp0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br55m2n4gdtq74eukqp0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":771537}}\n" + }, + "share_url": "https://m.tiktok.com/v/6830373071757511938.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830373071757511938", + "user_digged": 0, + "statistics": { + "aweme_id": "6830373071757511938", + "comment_count": 56, + "digg_count": 4304, + "download_count": 323, + "play_count": 55350, + "share_count": 57, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 37 + }, + "status": { + "aweme_id": "6830373071757511938", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 17, + "type": 1, + "hashtag_name": "standwithkashmir", + "hashtag_id": "1624626732781573", + "is_commerce": false + }, + { + "start": 18, + "end": 22, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 23, + "end": 28, + "type": 1, + "hashtag_name": "love", + "hashtag_id": "4231", + "is_commerce": false + }, + { + "start": 29, + "end": 38, + "type": 1, + "hashtag_name": "trending", + "hashtag_id": "20105", + "is_commerce": false + }, + { + "start": 39, + "end": 46, + "type": 1, + "hashtag_name": "tiktok", + "hashtag_id": "23428", + "is_commerce": false + }, + { + "start": 47, + "end": 53, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + }, + { + "start": 54, + "end": 61, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 62, + "end": 73, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 74, + "end": 82, + "type": 1, + "hashtag_name": "goviral", + "hashtag_id": "151602", + "is_commerce": false + }, + { + "start": 83, + "end": 88, + "type": 1, + "hashtag_name": "illu", + "hashtag_id": "5152318", + "is_commerce": false + }, + { + "start": 89, + "end": 94, + "type": 1, + "hashtag_name": "illu", + "hashtag_id": "5152318", + "is_commerce": false + }, + { + "start": 95, + "end": 100, + "type": 1, + "hashtag_name": "100k", + "hashtag_id": "214209", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151510970023ECC4" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6830373071757511938.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830373071757511938", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Jannitmirza’s video! #TikTok > ", + "share_desc": "Check out Jannitmirza's video! #TikTok", + "share_title": "Check out Jannitmirza’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6716736088021369861,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6716736088021370000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6830373071757511938", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"green_screen\":0,\"mv_id\":\"309393\",\"mv_info\":{\"id\":\"309393\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101151510970023ECC4" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.fr/resources.arsc b/config.fr/resources.arsc new file mode 100644 index 0000000..cc98015 Binary files /dev/null and b/config.fr/resources.arsc differ diff --git a/config.hi/AndroidManifest.xml b/config.hi/AndroidManifest.xml new file mode 100644 index 0000000..b26d048 Binary files /dev/null and b/config.hi/AndroidManifest.xml differ diff --git a/config.hi/META-INF/BNDLTOOL.RSA b/config.hi/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..b4974d0 Binary files /dev/null and b/config.hi/META-INF/BNDLTOOL.RSA differ diff --git a/config.hi/META-INF/BNDLTOOL.SF b/config.hi/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..ebe0b1c --- /dev/null +++ b/config.hi/META-INF/BNDLTOOL.SF @@ -0,0 +1,14 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: yOOz1UnsE6HVuEDvvRWP4TM5CSU= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: j/cDbOVKt5WlPc3kY4qr9E07SnQ= + +Name: assets/i18#lang_hi/default.json +SHA1-Digest: Q7wBpqqSbe5Zae4eIZt1/1/Solg= + +Name: resources.arsc +SHA1-Digest: zLRq/N3R9A2Av8blSWz2JLLamhs= + diff --git a/config.hi/META-INF/MANIFEST.MF b/config.hi/META-INF/MANIFEST.MF new file mode 100644 index 0000000..e779232 --- /dev/null +++ b/config.hi/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: EWL3+IDfED//BVulSZpXQ05PVF0= + +Name: assets/i18#lang_hi/default.json +SHA1-Digest: Kn9cAWP9K8Yai5WgQ9lIZ9bnnEw= + +Name: resources.arsc +SHA1-Digest: itzIm53opgJExN34Iaze0gv/dBk= + diff --git a/config.hi/assets/i18#lang_hi/default.json b/config.hi/assets/i18#lang_hi/default.json new file mode 100644 index 0000000..a72b378 --- /dev/null +++ b/config.hi/assets/i18#lang_hi/default.json @@ -0,0 +1,1097 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838127971094514946", + "desc": "Bullet Rani 🔥#foryou #foryoupage #tiktok #tiktokindia #bulletlover @tiktok_india", + "create_time": 1592125739, + "author": { + "uid": "6553102256403742725", + "short_id": "21815329413", + "nickname": "kRashmi18", + "signature": "MH 20 \nTarget 1m \nLet’s talk on Instagram ❤️", + "avatar_thumb": { + "uri": "tiktok-obj/534928d6c7121b07c348562cc768dde0", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/534928d6c7121b07c348562cc768dde0.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/534928d6c7121b07c348562cc768dde0", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/534928d6c7121b07c348562cc768dde0.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "rashmi_k18", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/534928d6c7121b07c348562cc768dde0", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/534928d6c7121b07c348562cc768dde0~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/534928d6c7121b07c348562cc768dde0", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/534928d6c7121b07c348562cc768dde0~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA9bU3W0B8Q_sdWcwa1qrXxq7B8ha9CUyCm-pmjy-EOZFuM4oFfpaM9FWprxd_I20F", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6777458121347567000, + "id_str": "6777458121347566337", + "title": "Moto", + "author": "Diler Kharkiya", + "album": "Moto - Single", + "cover_hd": { + "uri": "tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/df3ee2d9c7e04507b59777ef7f1ce522.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/f421cf36e20957377b61d1da9013c8c6.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/f421cf36e20957377b61d1da9013c8c6.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1493767746,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6777458121347566337", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1493767746", + "external_song_key": "apple_song_id" + }, + { + "h5_url": "https://s1.ipstatp.com/resso/campaign/tiktok/resso/index.html?id=6780640412233078786&channel=tt&&play_source=dailymix&tiktok_tid=6777458121347566337&hide_nav_bar=1&should_full_screen=1&status_bar_style_type=1&disableBounces=1&callback=snssdk1180://", + "partner_name": "resso", + "partner_song_id": "6780640412233078786", + "external_song_key": "resso_song_id" + } + ], + "preview_start_time": 11.4, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "42164", + "cha_name": "foryou", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=42164", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/42164.html?name=foryou&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=42164", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044570000briuhs87di7ek1jsk6o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000briuhs87di7ek1jsk6o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000briuhs87di7ek1jsk6o0_h264_540p_970713", + "data_size": 1887795 + }, + "cover": { + "uri": "tos-maliva-p-0068/23e7453d11b64b18aa7baa10183fa5ed", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/23e7453d11b64b18aa7baa10183fa5ed~noop.webp?x-expires=1592658000&x-signature=TxDKyUVH2jxWOOFB78A6S5UF4yQ%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/8aa1214c8b8d419c9cb4b90e801e4115_1592125742", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/8aa1214c8b8d419c9cb4b90e801e4115_1592125742?x-expires=1592658000&x-signature=x9Yn41CJlLMyNNOSn7aLKEUt640%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/675a5fbc19c342dfb8484abc625f48b6_1592125742", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/675a5fbc19c342dfb8484abc625f48b6_1592125742~noop.image?x-expires=1592658000&x-signature=fgV6e%2FU%2FV7%2FJWLyTm1xqD4JTSi8%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000briuhs87di7ek1jsk6o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000briuhs87di7ek1jsk6o0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5842829 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 970713, + "play_addr": { + "uri": "v09044570000briuhs87di7ek1jsk6o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000briuhs87di7ek1jsk6o0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000briuhs87di7ek1jsk6o0_h264_540p_970713", + "data_size": 1887795 + }, + "is_h265": 0 + } + ], + "duration": 15558, + "download_suffix_logo_addr": { + "uri": "v09044570000briuhs87di7ek1jsk6o0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000briuhs87di7ek1jsk6o0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5898590 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404 + }, + "share_url": "https://m.tiktok.com/v/6838127971094514946.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838127971094514946", + "user_digged": 0, + "statistics": { + "aweme_id": "6838127971094514946", + "comment_count": 2886, + "digg_count": 1004828, + "download_count": 76145, + "play_count": 32228950, + "share_count": 50351, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 32719 + }, + "status": { + "aweme_id": "6838127971094514946", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 68, + "end": 81, + "user_id": "8830005", + "type": 0, + "sec_uid": "MS4wLjABAAAA2-EqQ6sc7iAdSxY8qetlsooN771PjeEGfHLMssz7qig" + }, + { + "start": 14, + "end": 21, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 22, + "end": 33, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 34, + "end": 41, + "type": 1, + "hashtag_name": "tiktok", + "hashtag_id": "23428", + "is_commerce": false + }, + { + "start": 42, + "end": 54, + "type": 1, + "hashtag_name": "tiktokindia", + "hashtag_id": "57511693", + "is_commerce": false + }, + { + "start": 55, + "end": 67, + "type": 1, + "hashtag_name": "bulletlover", + "hashtag_id": "62918059", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838127971094514946.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838127971094514946", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out kRashmi18’s video! #TikTok > ", + "share_desc": "Check out kRashmi18's video! #TikTok", + "share_title": "Check out kRashmi18’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15558, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6553102256403743000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838127971094514946", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": [ + { + "keyword": "Play full song", + "schema": "aweme://webview?url=https%3A%2F%2Fs1.ipstatp.com%2Fresso%2Fcampaign%2Ftiktok%2Fresso%2Findex.html%3Fid%3D6780640412233078786%26channel%3Dtt%26%26play_source%3Ddailymix%26tiktok_tid%3D6777458121347566337%26hide_nav_bar%3D1%26should_full_screen%3D1%26status_bar_style_type%3D1%26disableBounces%3D1%26callback%3Dsnssdk1180%3A%2F%2F", + "id": "6780640412233078786", + "type": 23, + "icon": { + "uri": "tiktok-obj/20px_resso_movie.png", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/20px_resso_movie.png?l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "deep_link": "resso://resso.com/playing?track_id=6780640412233078786&channel=tt&play_source=dailymix&callback=snssdk1180://", + "universal_link": "https://h5.resso.app/track?id=6780640412233078786&channel=tt&play_source=dailymix&tiktok_tid=6777458121347566337&callback=snssdk1180://", + "log_extra": "{\"anchor_id\":\"6780640412233078786\",\"anchor_name\":\"\",\"anchor_type\":\"Resso\"}" + } + ], + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6835236532043975937", + "desc": "Mere Stunt Se Impress Hogyi Ladki Aur Khush Hogayi @bhavna_meharoliya #bmx #bmxboy #yusufbmx #sports #bmxlife #bmxyusuf #sports #professionalrider", + "create_time": 1591452524, + "author": { + "uid": "6564987053724844037", + "short_id": "21838871072", + "nickname": "yusufbmx", + "signature": "Professional Bmx Rider \n( India’s Gold Medalist🥇🏆)\nInstagram yusufbmx\nTeamd17", + "avatar_thumb": { + "uri": "tiktok-obj/1663802351152129", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1663802351152129.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1663802351152129", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1663802351152129.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "yusufbmx", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1663802351152129", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1663802351152129~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1663802351152129", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1663802351152129~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAfPi6ZAsJ5FYMDMZK5H0UHGhobOAUk259PzX_uiAku5kb44dUpyTIylnvwmF--hiq", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6703202347612458000, + "id_str": "6703202347612457733", + "title": "Dhola Aayo Re Remix", + "author": "siraj__shaa_04_Dc.👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1636525438520374.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1636525438520374.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 60, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6570759363563094021", + "owner_nickname": "siraj__shaa_04_Dc.👑", + "is_original": false, + "mid": "6703202347612457733", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "siraj__shaa_04_dc", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1636694265122822", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1636694265122822" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAjUn6Br9xD1sqppvvG5cOkVxE574LRc-ycKCxmlwc57eiGJm7Otsi6_0NZ81aDn80", + "avatar_thumb": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ca7bcbe2998bf703d99aebaf20b675d6.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "5182", + "cha_name": "bmx", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=5182", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/5182.html?name=bmx&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=5182", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #bmx Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #bmx Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: bmx", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044190000brdq6p1sihv7pafugpgg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brdq6p1sihv7pafugpgg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000brdq6p1sihv7pafugpgg_h264_540p_783229", + "data_size": 1184341 + }, + "cover": { + "uri": "tos-maliva-p-0068/d5456f98fb124b40b61d5840e4641d72", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d5456f98fb124b40b61d5840e4641d72~noop.webp?x-expires=1592658000&x-signature=6waWSm83vF3rFqn40gfEyqHHQcw%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/196a6937185f4928a21fa12f0ddca861_1591452526", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/196a6937185f4928a21fa12f0ddca861_1591452526?x-expires=1592658000&x-signature=OihyMnLT%2B5MNinVMSn2cJCXAhec%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/8a5efe4bdd6c4f4f86e6871cb2c383a7_1591452526", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8a5efe4bdd6c4f4f86e6871cb2c383a7_1591452526~noop.image?x-expires=1592658000&x-signature=z2z2%2FbEa%2FWi0CKtujDXj3JsaQqY%3D&l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044190000brdq6p1sihv7pafugpgg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brdq6p1sihv7pafugpgg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2918438 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 783229, + "play_addr": { + "uri": "v09044190000brdq6p1sihv7pafugpgg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brdq6p1sihv7pafugpgg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000brdq6p1sihv7pafugpgg_h264_540p_783229", + "data_size": 1184341 + }, + "is_h265": 0 + } + ], + "duration": 12097, + "download_suffix_logo_addr": { + "uri": "v09044190000brdq6p1sihv7pafugpgg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brdq6p1sihv7pafugpgg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3002244 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044190000brdq6p1sihv7pafugpgg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brdq6p1sihv7pafugpgg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3108286}}\n" + }, + "share_url": "https://m.tiktok.com/v/6835236532043975937.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835236532043975937", + "user_digged": 0, + "statistics": { + "aweme_id": "6835236532043975937", + "comment_count": 5472, + "digg_count": 3448261, + "download_count": 46838, + "play_count": 62117001, + "share_count": 33787, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 14697 + }, + "status": { + "aweme_id": "6835236532043975937", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 51, + "end": 69, + "user_id": "304634295409774592", + "type": 0, + "sec_uid": "MS4wLjABAAAAYy_egCOu1c3WMTHWzulUTtdsifCweDZ93LD9NK6eqLl8PVng7YFpXvwqnuVWWzAM" + }, + { + "start": 70, + "end": 74, + "type": 1, + "hashtag_name": "bmx", + "hashtag_id": "5182", + "is_commerce": false + }, + { + "start": 75, + "end": 82, + "type": 1, + "hashtag_name": "bmxboy", + "hashtag_id": "10925395", + "is_commerce": false + }, + { + "start": 83, + "end": 92, + "type": 1, + "hashtag_name": "yusufbmx", + "hashtag_id": "1619195271390214", + "is_commerce": false + }, + { + "start": 93, + "end": 100, + "type": 1, + "hashtag_name": "sports", + "hashtag_id": "7887", + "is_commerce": false + }, + { + "start": 101, + "end": 109, + "type": 1, + "hashtag_name": "bmxlife", + "hashtag_id": "361108", + "is_commerce": false + }, + { + "start": 110, + "end": 119, + "type": 1, + "hashtag_name": "bmxyusuf", + "hashtag_id": "1655859758096386", + "is_commerce": false + }, + { + "start": 120, + "end": 127, + "type": 1, + "hashtag_name": "sports", + "hashtag_id": "7887", + "is_commerce": false + }, + { + "start": 128, + "end": 146, + "type": 1, + "hashtag_name": "professionalrider", + "hashtag_id": "30801144", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101151192371D23EEF3" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6835236532043975937.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835236532043975937", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out yusufbmx’s video! #TikTok > ", + "share_desc": "Check out yusufbmx's video! #TikTok", + "share_title": "Check out yusufbmx’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12097, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6564987053724844000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6797414166207548674", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "hi", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309490101151192371D23EEF3" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.hi/resources.arsc b/config.hi/resources.arsc new file mode 100644 index 0000000..630dfb0 Binary files /dev/null and b/config.hi/resources.arsc differ diff --git a/config.id/AndroidManifest.xml b/config.id/AndroidManifest.xml new file mode 100644 index 0000000..65c3800 Binary files /dev/null and b/config.id/AndroidManifest.xml differ diff --git a/config.id/META-INF/BNDLTOOL.RSA b/config.id/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..ab845ad Binary files /dev/null and b/config.id/META-INF/BNDLTOOL.RSA differ diff --git a/config.id/META-INF/BNDLTOOL.SF b/config.id/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..28a1aab --- /dev/null +++ b/config.id/META-INF/BNDLTOOL.SF @@ -0,0 +1,11 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: osEz210/IgitLnzPoJOkCj4pKyw= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: vDybzlb1mEoSnjH+vNZ0sjt6nFY= + +Name: assets/i18#lang_id/default.json +SHA1-Digest: 7t5ndnyQYHZ1lYpI/BxaM642HUE= + diff --git a/config.id/META-INF/MANIFEST.MF b/config.id/META-INF/MANIFEST.MF new file mode 100644 index 0000000..15554d2 --- /dev/null +++ b/config.id/META-INF/MANIFEST.MF @@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: GTk0iME/LjerqiorbeEVQxs21OM= + +Name: assets/i18#lang_id/default.json +SHA1-Digest: 7t79Hwymr/rbXeecrh4tIrwk/qc= + diff --git a/config.id/assets/i18#lang_id/default.json b/config.id/assets/i18#lang_id/default.json new file mode 100644 index 0000000..af394f9 --- /dev/null +++ b/config.id/assets/i18#lang_id/default.json @@ -0,0 +1,1127 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6823003930784582913", + "desc": "Hair color #eghebarbershop", + "create_time": 1588604400, + "author": { + "uid": "6632176073813622786", + "short_id": "31188165929", + "nickname": "Eghe Barbershop", + "signature": "sobat follow instagram : @eghe_barbershop", + "avatar_thumb": { + "uri": "tiktok-obj/1619184827036673", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1619184827036673.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1619184827036673", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1619184827036673.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "eghe_barbershop", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "ID", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + } + ], + "language": "id", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1619184827036673", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1619184827036673~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1619184827036673", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1619184827036673~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA2GilEBn2q0Iibxzgb0r6HDdyntEA7ArQgfh_Yyx6if70QpRKTOLCbfzYNocXBrC1", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6813344438899838000, + "id_str": "6813344438899837697", + "title": "Hareudang Panas", + "author": "TetehAcaaa", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663413223117858.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663413223117858.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 29, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6629847598800928770", + "owner_nickname": "TetehAcaaa", + "is_original": false, + "mid": "6813344438899837697", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "its.nasyajee", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAN8eNAwHogEEpeOeMFunrA9Z8Nundqk3Lapo5wg9iqlwrP6VNiRq2ye1itSPBreKI", + "avatar_thumb": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1655001078903809", + "cha_name": "eghebarbershop", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1655001078903809", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1655001078903809?name=eghebarbershop&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1655001078903809", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #eghebarbershop Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #eghebarbershop Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: eghebarbershop", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bqo2nkvt5ipfsb37ejag_h264_540p_530757", + "data_size": 1018191 + }, + "cover": { + "uri": "large/v0201/cc85660a98464418b2b3fe33c54e5c78_1588604402", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/cc85660a98464418b2b3fe33c54e5c78_1588604402.webp?x-expires=1592658000&x-signature=ZMEovMk9ll0His%2BsHFicrGoD3tI%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/5f385628abb24abe8f7338afdddd0ab0_1588604402", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/5f385628abb24abe8f7338afdddd0ab0_1588604402?x-expires=1592658000&x-signature=q3uSSNpUwAdTIJY5VqhZ27ILWDM%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/4a0813a9e4834b55bc5637b3b66b14c9_1588604402", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/4a0813a9e4834b55bc5637b3b66b14c9_1588604402.jpeg?x-expires=1592658000&x-signature=EB%2FJjBITq5hmWQwn%2F%2F3haM5ryuU%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2016780 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 530757, + "play_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bqo2nkvt5ipfsb37ejag_h264_540p_530757", + "data_size": 1018191 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 379563, + "play_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bqo2nkvt5ipfsb37ejag_h264_540p_379563", + "data_size": 728145 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 319710, + "play_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bqo2nkvt5ipfsb37ejag_h264_480p_319710", + "data_size": 613325 + }, + "is_h265": 0 + } + ], + "duration": 15347, + "download_suffix_logo_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2084908 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507406, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025b40000bqo2nkvt5ipfsb37ejag\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2139645}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6823003930784582913/?region=CN&mid=6813344438899837697&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6823003930784582913", + "user_digged": 0, + "statistics": { + "aweme_id": "6823003930784582913", + "comment_count": 2784, + "digg_count": 604163, + "download_count": 25816, + "play_count": 33227265, + "share_count": 14921, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 7002 + }, + "status": { + "aweme_id": "6823003930784582913", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 11, + "end": 26, + "type": 1, + "hashtag_name": "eghebarbershop", + "hashtag_id": "1655001078903809", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6823003930784582913/?region=CN&mid=6813344438899837697&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6823003930784582913", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Eghe Barbershop’s video! #TikTok > ", + "share_desc": "Check out Eghe Barbershop's video! #TikTok", + "share_title": "Check out Eghe Barbershop’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "poi_info": { + "poi_id": "6754686893817858049", + "poi_name": "Eghe BarberShop", + "type_code": "cafe|food", + "user_count": 97804, + "item_count": 289, + "share_info": { + "share_url": "https://www.tiktokv.com/share/poilist/?id=ggl_ChIJWSKuIZZ_9i0R3ZtJgoGrLwo", + "share_weibo_desc": "Eghe BarberShop A lot of interesting videos nearby, let's play together, tap here", + "share_desc": "", + "share_title": "Eghe BarberShop A lot of interesting videos nearby, let's play together, tap here", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "" + }, + "cover_hd": { + "uri": "musically-maliva-obj/46b500013bf5a43474fd.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/46b500013bf5a43474fd.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/46b500013bf5a43474fd.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/46b500013bf5a43474fd.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/46b500013bf5a43474fd.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/46b500013bf5a43474fd.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/46b500013bf5a43474fd.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/46b500013bf5a43474fd.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "distance": "", + "address_info": { + "province": "", + "city": "", + "district": "", + "address": "Mesjid", + "simple_addr": "Mesjid", + "city_code": "", + "country": "", + "country_code": "" + }, + "icon_type": 1, + "collect_stat": 0, + "poi_longitude": 117.150218, + "poi_latitude": -0.512988, + "expand_type": 0, + "icon_on_map": { + "uri": "musically-maliva-obj/9889002440fdbff2ac42.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/9889002440fdbff2ac42.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "icon_on_entry": { + "uri": "musically-maliva-obj/2d5d9000661d50bb52ae3.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/2d5d9000661d50bb52ae3.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "icon_on_info": { + "uri": "musically-maliva-obj/9b930003835ca5c3f9e1.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/9b930003835ca5c3f9e1.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "show_type": 1, + "poi_subtitle_type": 0, + "voucher_release_areas": null, + "poi_frontend_type": null, + "poi_backend_type": { + "code": "10015", + "name": "cafe" + }, + "is_admin_area": false, + "view_count": "289", + "icon_service_type_list": null + }, + "duration": 15347, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6632176073813623000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "ID", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6823003930784582913", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6812524009763147013", + "desc": "Не получилось? 🤪Ничего. В следующий понедельник получится 😅 #FreshMyDance", + "create_time": 1586164352, + "author": { + "uid": "6625875711729795078", + "short_id": "33274776680", + "nickname": "yana&dmitry", + "signature": "Обычная жизнь пары, юмор, пранки", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663156718089222", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663156718089222~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663156718089222", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663156718089222~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "yana_dmitry", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "RU", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1663156603003910", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663156603003910" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1663156718089222", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663156718089222~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1663156718089222", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663156718089222~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAZrrTzPJrT-99xbJsE3X8rjfQtHlGrSoWSWwI8q6XEW8c7JZ3v3JiuipEsfuXbnZd", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6787078702082608000, + "id_str": "6787078702082607878", + "title": "Boss Bitch", + "author": "Doja Cat", + "album": "Boss Bitch", + "cover_hd": { + "uri": "tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/iesmusic-sg-local/v1/muse-ma-obj/1657002142042133.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/iesmusic-sg-local/v1/muse-ma-obj/1657002142042133.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 23, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"beats_tracker\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667299584386059\",\"energy_trace\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667299579667467\",\"merged_beats\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667299584416771\",\"audio_effect_onset\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667299579698180\"},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6787078702082607878", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 75.9, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1662101207213061", + "cha_name": "FreshMyDance", + "desc": "Солнечная погода велит забыть о зимней серости. Освежать свое настроение и особенно гардероб лучше всего под музыку! Принимай весенний вызов от Fresh Bar:\n\n- Включай наш трек;\n- Повторяй движения за блогерами;\n- Придумывай свои идеи для смены образов;\n- Не забудь поставить хештег #FreshMyDance\n\nВрывайся в весну в танце!", + "schema": "aweme://aweme/challenge/detail?cid=1662101207213061&is_commerce=1", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1662101207213061?name=FreshMyDance&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1662101207213061", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #FreshMyDance Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #FreshMyDance Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: FreshMyDance", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 1, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": true, + "hashtag_profile": "musically-maliva-obj/202003259cc657465e3469bb4190bca9", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044510000bq5f4h2asdpuf8r87m00_h264_540p_942714", + "data_size": 1786680 + }, + "cover": { + "uri": "tos-maliva-p-0068/ef682b04aa3f469c93d3fd4cca946a7c_1586164357", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ef682b04aa3f469c93d3fd4cca946a7c_1586164357~noop.webp?x-expires=1592658000&x-signature=rZZgVEGsJX7WWc9dOSdlA99TIpw%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/4181b2ddbb2343c9be10e1b888b7f1c0_1586164357", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/4181b2ddbb2343c9be10e1b888b7f1c0_1586164357?x-expires=1592658000&x-signature=xlfjxR8bau58HH%2FLjBmR3eRJ3iU%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/b14fb30b51a143dca29490288be1e219_1586164357", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b14fb30b51a143dca29490288be1e219_1586164357~noop.image?x-expires=1592658000&x-signature=AUL3tNL%2FljHMQXOedT5E7T11lUw%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1249931 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 942714, + "play_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044510000bq5f4h2asdpuf8r87m00_h264_540p_942714", + "data_size": 1786680 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 447328, + "play_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044510000bq5f4h2asdpuf8r87m00_h264_540p_447328", + "data_size": 847799 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 302403, + "play_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044510000bq5f4h2asdpuf8r87m00_h264_540p_302403", + "data_size": 573131 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 246829, + "play_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044510000bq5f4h2asdpuf8r87m00_h264_480p_246829", + "data_size": 467804 + }, + "is_h265": 0 + } + ], + "duration": 15162, + "is_h265": 0, + "cdn_url_expired": 1592507406 + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6812524009763147013/?region=CN&mid=6787078702082607878&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812524009763147013", + "user_digged": 0, + "statistics": { + "aweme_id": "6812524009763147013", + "comment_count": 1480, + "digg_count": 624135, + "download_count": 28494, + "play_count": 17792040, + "share_count": 12150, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 5379 + }, + "status": { + "aweme_id": "6812524009763147013", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 63, + "end": 76, + "type": 1, + "hashtag_name": "freshmydance", + "hashtag_id": "1662101207213061", + "is_commerce": true + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6812524009763147013/?region=CN&mid=6787078702082607878&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812524009763147013", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out yana&dmitry’s video! #TikTok > ", + "share_desc": "Check out yana&dmitry's video! #TikTok", + "share_title": "Check out yana&dmitry’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15162, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6625875711729795000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "RU", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6812524009763147013", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ru", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485791000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309510101150040421423A90C" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.in/AndroidManifest.xml b/config.in/AndroidManifest.xml new file mode 100644 index 0000000..be1770e Binary files /dev/null and b/config.in/AndroidManifest.xml differ diff --git a/config.in/META-INF/BNDLTOOL.RSA b/config.in/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..29b5a5d Binary files /dev/null and b/config.in/META-INF/BNDLTOOL.RSA differ diff --git a/config.in/META-INF/BNDLTOOL.SF b/config.in/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..d3dbf0a --- /dev/null +++ b/config.in/META-INF/BNDLTOOL.SF @@ -0,0 +1,20 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: wAc42naNztBC47bG5LKW+wdTcW4= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: YOQFXGbCEQF6DFZjdQQc3K7iQvA= + +Name: assets/i18#lang_in/default.json +SHA1-Digest: oJa/Obbp6nNG5OHdQJ7DYlyzSrs= + +Name: assets/i18#lang_in/my.json +SHA1-Digest: f8Qm0ZHKF66IN/lXMZ88JOa1qJ4= + +Name: assets/i18#lang_in/tp.json +SHA1-Digest: vPx764dpAb5HL9cZw1CgUt1F0Ng= + +Name: resources.arsc +SHA1-Digest: SKn1PBjdm+2kNCEcLySoTjFbz+w= + diff --git a/config.in/META-INF/MANIFEST.MF b/config.in/META-INF/MANIFEST.MF new file mode 100644 index 0000000..77f82ff --- /dev/null +++ b/config.in/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: En7gIqFEt6DGobd4sWX1TzRgbBI= + +Name: assets/i18#lang_in/default.json +SHA1-Digest: 7t79Hwymr/rbXeecrh4tIrwk/qc= + +Name: assets/i18#lang_in/my.json +SHA1-Digest: 1WwDimCrl4eZGt5rdevCFNsWZI8= + +Name: assets/i18#lang_in/tp.json +SHA1-Digest: ANs4u8KPJSAkp0/49s++Gg1NSSg= + +Name: resources.arsc +SHA1-Digest: 5bKvyIqaJAz5iIe86rJrdiDBUhI= + diff --git a/config.in/assets/i18#lang_in/default.json b/config.in/assets/i18#lang_in/default.json new file mode 100644 index 0000000..af394f9 --- /dev/null +++ b/config.in/assets/i18#lang_in/default.json @@ -0,0 +1,1127 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6823003930784582913", + "desc": "Hair color #eghebarbershop", + "create_time": 1588604400, + "author": { + "uid": "6632176073813622786", + "short_id": "31188165929", + "nickname": "Eghe Barbershop", + "signature": "sobat follow instagram : @eghe_barbershop", + "avatar_thumb": { + "uri": "tiktok-obj/1619184827036673", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1619184827036673.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1619184827036673", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1619184827036673.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "eghe_barbershop", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "ID", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + } + ], + "language": "id", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1619184827036673", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1619184827036673~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1619184827036673", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1619184827036673~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA2GilEBn2q0Iibxzgb0r6HDdyntEA7ArQgfh_Yyx6if70QpRKTOLCbfzYNocXBrC1", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6813344438899838000, + "id_str": "6813344438899837697", + "title": "Hareudang Panas", + "author": "TetehAcaaa", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663413223117858.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663413223117858.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 29, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6629847598800928770", + "owner_nickname": "TetehAcaaa", + "is_original": false, + "mid": "6813344438899837697", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "its.nasyajee", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAN8eNAwHogEEpeOeMFunrA9Z8Nundqk3Lapo5wg9iqlwrP6VNiRq2ye1itSPBreKI", + "avatar_thumb": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/c3490493b7658baaaa00f189c3b31e14", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/c3490493b7658baaaa00f189c3b31e14.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1655001078903809", + "cha_name": "eghebarbershop", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1655001078903809", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1655001078903809?name=eghebarbershop&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1655001078903809", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #eghebarbershop Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #eghebarbershop Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: eghebarbershop", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bqo2nkvt5ipfsb37ejag_h264_540p_530757", + "data_size": 1018191 + }, + "cover": { + "uri": "large/v0201/cc85660a98464418b2b3fe33c54e5c78_1588604402", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/cc85660a98464418b2b3fe33c54e5c78_1588604402.webp?x-expires=1592658000&x-signature=ZMEovMk9ll0His%2BsHFicrGoD3tI%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/5f385628abb24abe8f7338afdddd0ab0_1588604402", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/5f385628abb24abe8f7338afdddd0ab0_1588604402?x-expires=1592658000&x-signature=q3uSSNpUwAdTIJY5VqhZ27ILWDM%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/4a0813a9e4834b55bc5637b3b66b14c9_1588604402", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/4a0813a9e4834b55bc5637b3b66b14c9_1588604402.jpeg?x-expires=1592658000&x-signature=EB%2FJjBITq5hmWQwn%2F%2F3haM5ryuU%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2016780 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 530757, + "play_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bqo2nkvt5ipfsb37ejag_h264_540p_530757", + "data_size": 1018191 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 379563, + "play_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bqo2nkvt5ipfsb37ejag_h264_540p_379563", + "data_size": 728145 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 319710, + "play_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bqo2nkvt5ipfsb37ejag_h264_480p_319710", + "data_size": 613325 + }, + "is_h265": 0 + } + ], + "duration": 15347, + "download_suffix_logo_addr": { + "uri": "v07025b40000bqo2nkvt5ipfsb37ejag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2084908 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507406, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025b40000bqo2nkvt5ipfsb37ejag\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bqo2nkvt5ipfsb37ejag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2139645}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6823003930784582913/?region=CN&mid=6813344438899837697&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6823003930784582913", + "user_digged": 0, + "statistics": { + "aweme_id": "6823003930784582913", + "comment_count": 2784, + "digg_count": 604163, + "download_count": 25816, + "play_count": 33227265, + "share_count": 14921, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 7002 + }, + "status": { + "aweme_id": "6823003930784582913", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 11, + "end": 26, + "type": 1, + "hashtag_name": "eghebarbershop", + "hashtag_id": "1655001078903809", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6823003930784582913/?region=CN&mid=6813344438899837697&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6823003930784582913", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Eghe Barbershop’s video! #TikTok > ", + "share_desc": "Check out Eghe Barbershop's video! #TikTok", + "share_title": "Check out Eghe Barbershop’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "poi_info": { + "poi_id": "6754686893817858049", + "poi_name": "Eghe BarberShop", + "type_code": "cafe|food", + "user_count": 97804, + "item_count": 289, + "share_info": { + "share_url": "https://www.tiktokv.com/share/poilist/?id=ggl_ChIJWSKuIZZ_9i0R3ZtJgoGrLwo", + "share_weibo_desc": "Eghe BarberShop A lot of interesting videos nearby, let's play together, tap here", + "share_desc": "", + "share_title": "Eghe BarberShop A lot of interesting videos nearby, let's play together, tap here", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "" + }, + "cover_hd": { + "uri": "musically-maliva-obj/46b500013bf5a43474fd.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/46b500013bf5a43474fd.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/46b500013bf5a43474fd.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/46b500013bf5a43474fd.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/46b500013bf5a43474fd.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/46b500013bf5a43474fd.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/46b500013bf5a43474fd.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/46b500013bf5a43474fd.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "distance": "", + "address_info": { + "province": "", + "city": "", + "district": "", + "address": "Mesjid", + "simple_addr": "Mesjid", + "city_code": "", + "country": "", + "country_code": "" + }, + "icon_type": 1, + "collect_stat": 0, + "poi_longitude": 117.150218, + "poi_latitude": -0.512988, + "expand_type": 0, + "icon_on_map": { + "uri": "musically-maliva-obj/9889002440fdbff2ac42.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/9889002440fdbff2ac42.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "icon_on_entry": { + "uri": "musically-maliva-obj/2d5d9000661d50bb52ae3.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/2d5d9000661d50bb52ae3.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "icon_on_info": { + "uri": "musically-maliva-obj/9b930003835ca5c3f9e1.png", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/9b930003835ca5c3f9e1.png?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "show_type": 1, + "poi_subtitle_type": 0, + "voucher_release_areas": null, + "poi_frontend_type": null, + "poi_backend_type": { + "code": "10015", + "name": "cafe" + }, + "is_admin_area": false, + "view_count": "289", + "icon_service_type_list": null + }, + "duration": 15347, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6632176073813623000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "ID", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6823003930784582913", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6812524009763147013", + "desc": "Не получилось? 🤪Ничего. В следующий понедельник получится 😅 #FreshMyDance", + "create_time": 1586164352, + "author": { + "uid": "6625875711729795078", + "short_id": "33274776680", + "nickname": "yana&dmitry", + "signature": "Обычная жизнь пары, юмор, пранки", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663156718089222", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663156718089222~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663156718089222", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663156718089222~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "yana_dmitry", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "RU", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1663156603003910", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663156603003910" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1663156718089222", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663156718089222~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1663156718089222", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663156718089222~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAZrrTzPJrT-99xbJsE3X8rjfQtHlGrSoWSWwI8q6XEW8c7JZ3v3JiuipEsfuXbnZd", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6787078702082608000, + "id_str": "6787078702082607878", + "title": "Boss Bitch", + "author": "Doja Cat", + "album": "Boss Bitch", + "cover_hd": { + "uri": "tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/fab9b7874e5b46e8b478c6e7dedf7118.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/iesmusic-sg-local/v1/muse-ma-obj/1657002142042133.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/iesmusic-sg-local/v1/muse-ma-obj/1657002142042133.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 23, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"beats_tracker\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667299584386059\",\"energy_trace\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667299579667467\",\"merged_beats\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667299584416771\",\"audio_effect_onset\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667299579698180\"},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6787078702082607878", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 75.9, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1662101207213061", + "cha_name": "FreshMyDance", + "desc": "Солнечная погода велит забыть о зимней серости. Освежать свое настроение и особенно гардероб лучше всего под музыку! Принимай весенний вызов от Fresh Bar:\n\n- Включай наш трек;\n- Повторяй движения за блогерами;\n- Придумывай свои идеи для смены образов;\n- Не забудь поставить хештег #FreshMyDance\n\nВрывайся в весну в танце!", + "schema": "aweme://aweme/challenge/detail?cid=1662101207213061&is_commerce=1", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1662101207213061?name=FreshMyDance&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1662101207213061", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #FreshMyDance Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #FreshMyDance Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: FreshMyDance", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 1, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": true, + "hashtag_profile": "musically-maliva-obj/202003259cc657465e3469bb4190bca9", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044510000bq5f4h2asdpuf8r87m00_h264_540p_942714", + "data_size": 1786680 + }, + "cover": { + "uri": "tos-maliva-p-0068/ef682b04aa3f469c93d3fd4cca946a7c_1586164357", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ef682b04aa3f469c93d3fd4cca946a7c_1586164357~noop.webp?x-expires=1592658000&x-signature=rZZgVEGsJX7WWc9dOSdlA99TIpw%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/4181b2ddbb2343c9be10e1b888b7f1c0_1586164357", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/4181b2ddbb2343c9be10e1b888b7f1c0_1586164357?x-expires=1592658000&x-signature=xlfjxR8bau58HH%2FLjBmR3eRJ3iU%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/b14fb30b51a143dca29490288be1e219_1586164357", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b14fb30b51a143dca29490288be1e219_1586164357~noop.image?x-expires=1592658000&x-signature=AUL3tNL%2FljHMQXOedT5E7T11lUw%3D&l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1249931 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 942714, + "play_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044510000bq5f4h2asdpuf8r87m00_h264_540p_942714", + "data_size": 1786680 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 447328, + "play_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044510000bq5f4h2asdpuf8r87m00_h264_540p_447328", + "data_size": 847799 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 302403, + "play_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044510000bq5f4h2asdpuf8r87m00_h264_540p_302403", + "data_size": 573131 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 246829, + "play_addr": { + "uri": "v09044510000bq5f4h2asdpuf8r87m00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044510000bq5f4h2asdpuf8r87m00&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044510000bq5f4h2asdpuf8r87m00_h264_480p_246829", + "data_size": 467804 + }, + "is_h265": 0 + } + ], + "duration": 15162, + "is_h265": 0, + "cdn_url_expired": 1592507406 + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6812524009763147013/?region=CN&mid=6787078702082607878&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812524009763147013", + "user_digged": 0, + "statistics": { + "aweme_id": "6812524009763147013", + "comment_count": 1480, + "digg_count": 624135, + "download_count": 28494, + "play_count": 17792040, + "share_count": 12150, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 5379 + }, + "status": { + "aweme_id": "6812524009763147013", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 63, + "end": 76, + "type": 1, + "hashtag_name": "freshmydance", + "hashtag_id": "1662101207213061", + "is_commerce": true + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101150040421423A90C" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6812524009763147013/?region=CN&mid=6787078702082607878&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6812524009763147013", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out yana&dmitry’s video! #TikTok > ", + "share_desc": "Check out yana&dmitry's video! #TikTok", + "share_title": "Check out yana&dmitry’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15162, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6625875711729795000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "RU", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6812524009763147013", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ru", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485791000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309510101150040421423A90C" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.in/assets/i18#lang_in/my.json b/config.in/assets/i18#lang_in/my.json new file mode 100644 index 0000000..2ea14d4 --- /dev/null +++ b/config.in/assets/i18#lang_in/my.json @@ -0,0 +1,1505 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6826642661441588482", + "desc": "#zoommyface", + "create_time": 1589451607, + "author": { + "uid": "77105514261684224", + "short_id": "21463362668", + "nickname": "Nadiraisaac", + "signature": "Instagram @nadiraisaac", + "avatar_thumb": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666462649114626.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666462649114626.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "nadiraisaac", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "MY", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "ms", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666462649114626~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666462649114626~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAegJOuW2ezJneXyREEzOIZrfR3e2U8W4BLv9bpwd0QVFVu1EvsCCn0uXzvACj9G5x", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6817319822334922000, + "id_str": "6817319822334921473", + "title": "Cari Mama Muda", + "author": "Bballgntng🚀", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664387989637121.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664387989637121.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 12, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6694206941936141313", + "owner_nickname": "Bballgntng🚀", + "is_original": false, + "mid": "6817319822334921473", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "bballmaniss_2710", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAUxPCq4ZhkyFB_osTlGng3zdurPSQOFyRdJajpzyETdt37775BQqhDsVUqU_PNiqI", + "avatar_thumb": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "81462767", + "cha_name": "zoommyface", + "desc": "which is your cutest expression? Try this trending effect with you!🔥🎬", + "schema": "aweme://aweme/challenge/detail?cid=81462767", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/81462767?name=zoommyface&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=81462767", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #zoommyface Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #zoommyface Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: zoommyface", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/c92e8f2dc4a4b60d2cca43b8a1e247a2", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1952003", + "data_size": 2996813 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/e7193304166d400abe63a6ed69410a3a", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/e7193304166d400abe63a6ed69410a3a.webp?x-expires=1592658000&x-signature=sxA7uoCQzjWDe1CoxuzoE72hcHI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/dceb4cfefcf944548e1ccfd7bb8036cf_1589451609", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/dceb4cfefcf944548e1ccfd7bb8036cf_1589451609?x-expires=1592658000&x-signature=WaZM%2FQAGOQMtZqK5cYETrMcuCbU%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/fe5536f44fe94fa6819f3554440f5209_1589451610", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/fe5536f44fe94fa6819f3554440f5209_1589451610.jpeg?x-expires=1592658000&x-signature=8wlE3UPU1xeOkrrBLLn6m24FuBw%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3048539 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1952003, + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1952003", + "data_size": 2996813 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1054082, + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1054082", + "data_size": 1618280 + }, + "is_h265": 0 + } + ], + "duration": 12282, + "download_suffix_logo_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3106638 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v070256e0000bquhmk5sk0etnap0a9pg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3162561}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6826642661441588482/?region=CN&mid=6817319822334921473&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826642661441588482", + "user_digged": 0, + "statistics": { + "aweme_id": "6826642661441588482", + "comment_count": 1151, + "digg_count": 92703, + "download_count": 7645, + "play_count": 2389579, + "share_count": 5016, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1938 + }, + "status": { + "aweme_id": "6826642661441588482", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 11, + "type": 1, + "hashtag_name": "zoommyface", + "hashtag_id": "81462767", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6826642661441588482/?region=CN&mid=6817319822334921473&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826642661441588482", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Nadiraisaac’s video! #TikTok > ", + "share_desc": "Check out Nadiraisaac's video! #TikTok", + "share_title": "Check out Nadiraisaac’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12282, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 77105514261684220, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "MY", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "stickers": "235261", + "group_id": "6826642661441588482", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "sticker_detail": { + "id": "235261", + "name": "Zoom Me", + "children": null, + "tags": null + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6839407117871664390", + "desc": "😳 Why would somebody do this? 💔 With @trifinn Come back tomorrow for part 2... #kittens", + "create_time": 1592423564, + "author": { + "uid": "6718992235998741510", + "short_id": "44477201384", + "nickname": "SCOTT 🔥 🔥 🔥", + "signature": "😳🔞Ending is on my insta (@tri.scott) ↗️\nFollow for more crazy pranks 😅", + "avatar_thumb": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "tri.scott", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "GB", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAQq58m31S-GAQ7zOvlqwAVJ39xsO_LwHgXYISlxlreKA1mPkDoQVbaBRYNBNKPMAz", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6777935271007619000, + "id_str": "6777935271007619074", + "title": "Surrender", + "author": "Natalie Taylor", + "album": "Surrender", + "cover_hd": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6616921c9a2fb7a099e9872cadc75fb0.m4a", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6616921c9a2fb7a099e9872cadc75fb0.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 60, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218666896392\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218677436429\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218666860551\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218677471245\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6777935271007619074", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656528675791873", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656528675791873" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 107.83, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "17709", + "cha_name": "kittens", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=17709", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/17709?name=kittens&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=17709", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #kittens Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #kittens Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: kittens", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_2706639", + "data_size": 5192349 + }, + "cover": { + "uri": "tos-maliva-p-0068/d0831e54eff64fa4a5bd0d52352de277", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d0831e54eff64fa4a5bd0d52352de277~noop.webp?x-expires=1592658000&x-signature=w3sjgpghqGwkALCxAsdVCwr6QUo%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/dd81511378304c1e973c990dc5f383b7_1592423566", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/dd81511378304c1e973c990dc5f383b7_1592423566?x-expires=1592658000&x-signature=JVi%2BopJ8pIlo9VlyHmH4GxsOVJc%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/d92e9043395645b9a952afd8fbe8a653_1592423568", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d92e9043395645b9a952afd8fbe8a653_1592423568~noop.image?x-expires=1592658000&x-signature=lDbifvE9vrwcVNHm8ub%2FO2%2BgWmE%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5342737 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2706639, + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_2706639", + "data_size": 5192349 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1455703, + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_1455703", + "data_size": 2792586 + }, + "is_h265": 0 + } + ], + "duration": 15347, + "download_suffix_logo_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5413811 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507407, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044e00000brl790gbiapcs9qmj0m0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":5519889}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6839407117871664390/?region=CN&mid=6777935271007619074&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839407117871664390", + "user_digged": 0, + "statistics": { + "aweme_id": "6839407117871664390", + "comment_count": 9173, + "digg_count": 426700, + "download_count": 24115, + "play_count": 9118163, + "share_count": 49199, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 22763 + }, + "status": { + "aweme_id": "6839407117871664390", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 39, + "end": 47, + "user_id": "6718768300996707334", + "type": 0, + "sec_uid": "MS4wLjABAAAA_-Y4Auotwdtok9sC0inkxtv4pOkZfQmZfxt-r_7iNpe_UJ0kvsn2CNAJS-glTroa" + }, + { + "start": 81, + "end": 89, + "type": 1, + "hashtag_name": "kittens", + "hashtag_id": "17709", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6839407117871664390/?region=CN&mid=6777935271007619074&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839407117871664390", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out SCOTT 🔥 🔥 🔥’s video! #TikTok > ", + "share_desc": "Check out SCOTT 🔥 🔥 🔥's video! #TikTok", + "share_title": "Check out SCOTT 🔥 🔥 🔥’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15347, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6718992235998742000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "GB", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6839407117871664390", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-28.2093,\"end_time\":9366.6667,\"p\":-1,\"y\":84.5312,\"h\":0.1105,\"start_time\":7333.3333,\"r\":0,\"w\":0.622,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":0,\"end_time\":2666.6667,\"p\":-1,\"y\":76.0035,\"h\":0.269,\"start_time\":166.6667,\"r\":0,\"w\":0.7569,\"s\":2.3519}]", + "attr": "" + }, + { + "type": 5, + "index": 2, + "track_info": "[{\"x\":-30.4684,\"end_time\":5666.6667,\"p\":-1,\"y\":86.4804,\"h\":0.1664,\"start_time\":2533.3333,\"r\":0,\"w\":0.7111,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 3, + "track_info": "[{\"x\":-117.243,\"end_time\":5633.3333,\"p\":-1,\"y\":186.1506,\"h\":0.1056,\"start_time\":0,\"r\":0,\"w\":0.3854,\"s\":0.9559}]", + "attr": "" + }, + { + "type": 5, + "index": 4, + "track_info": "[{\"x\":70.7108,\"end_time\":13966.6667,\"p\":-1,\"y\":-260.9235,\"h\":0.1068,\"start_time\":6500,\"r\":0,\"w\":0.3898,\"s\":0.9669}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6818716475365264642", + "desc": "눈감는거 진짜 너무 귀엽다구~~💕😆#뽕짝비트", + "create_time": 1587606150, + "author": { + "uid": "6624101169890639873", + "short_id": "31538989017", + "nickname": "최지원(Jiwon)", + "signature": "· 최지원 9살, 최주원 6살 + 아빠, 엄마\n· 관리는 엄마가 합니다.\n- 댓글은 거의 다 봐요❤️\n💖광고문의 soonent@daum.net", + "avatar_thumb": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666369713957890.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666369713957890.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "인기 틱톡커", + "unique_id": "jiw_juw", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "KR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "ko", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666369713957890~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666369713957890~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAADojbrID8PT6JiKZr888cyCGasWbtwo36WTQxRvCuO9rWNh8g5Pqg0ra8T8v09IGb", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6804093117843770000, + "id_str": "6804093117843770118", + "title": "Laxed (Siren Beat)", + "author": "Jawsh 685", + "album": "Laxed (Siren Beat)", + "cover_hd": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"apple_song_id\":1509920512,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353615373\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349662733\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353668615\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349691399\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6804093117843770118", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1509920512", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 71, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1664466174753794", + "cha_name": "뽕짝비트", + "desc": "🤛⬆️ (뽕짝) 🤜⬆️ (뽕짝) ✋⬆️🤚~~~🎵\n왠지 모르게 흥얼흥얼 콧노래가 나올 것 같은 뽕짝한 음악에 맞춰 #뽕짝비트 춤춰 보자! 🙆", + "schema": "aweme://aweme/challenge/detail?cid=1664466174753794", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1664466174753794?name=%EB%BD%95%EC%A7%9D%EB%B9%84%ED%8A%B8&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664466174753794", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #뽕짝비트 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #뽕짝비트 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 뽕짝비트", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025680000bqgf50c1a8b4ss0b7c70_h264_540p_805327", + "data_size": 1521565 + }, + "cover": { + "uri": "large/v0201/400c2d6b7ea24ea08061f99f857f63ba", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/400c2d6b7ea24ea08061f99f857f63ba.webp?x-expires=1592658000&x-signature=%2FwP0ZuC9xfqb1hLNZ9k6NZXWphE%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/4facabbe1c7e47a38f3449f8ee87020a_1587606154", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/4facabbe1c7e47a38f3449f8ee87020a_1587606154?x-expires=1592658000&x-signature=8ho06DZsoPkkTx6G5RRfOzMmYLI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/9c2ee2057d67416eae254f830b8c2523_1587606153", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/9c2ee2057d67416eae254f830b8c2523_1587606153.jpeg?x-expires=1592658000&x-signature=5MX4E1%2FnmUO3qDkZMth2h07d2BI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1627831 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 805327, + "play_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025680000bqgf50c1a8b4ss0b7c70_h264_540p_805327", + "data_size": 1521565 + }, + "is_h265": 0 + } + ], + "duration": 15115, + "download_suffix_logo_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1696449 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507407, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025680000bqgf50c1a8b4ss0b7c70\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1767018}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6818716475365264642/?region=CN&mid=6804093117843770118&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6818716475365264642", + "user_digged": 0, + "statistics": { + "aweme_id": "6818716475365264642", + "comment_count": 5488, + "digg_count": 488650, + "download_count": 4472, + "play_count": 6334744, + "share_count": 7925, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2447 + }, + "status": { + "aweme_id": "6818716475365264642", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 21, + "end": 26, + "type": 1, + "hashtag_name": "뽕짝비트", + "hashtag_id": "1664466174753794", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6818716475365264642/?region=CN&mid=6804093117843770118&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6818716475365264642", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 최지원(Jiwon)’s video! #TikTok > ", + "share_desc": "Check out 최지원(Jiwon)'s video! #TikTok", + "share_title": "Check out 최지원(Jiwon)’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15115, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6624101169890640000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "KR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6818716475365264642", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ko", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485792000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309510101152280680E23F803" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.in/assets/i18#lang_in/tp.json b/config.in/assets/i18#lang_in/tp.json new file mode 100644 index 0000000..d8b672d --- /dev/null +++ b/config.in/assets/i18#lang_in/tp.json @@ -0,0 +1,550 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6815747273687911685", + "desc": "From when I was a 👧🏻🎹 #tbt #music #carlybeth #piano", + "create_time": 1586914826, + "author": { + "uid": "6792703441488806917", + "short_id": "47129645600", + "nickname": "Carly Beth", + "signature": "Carly Beth💙\nI write songs and play da piano 🎹 \ninstagram: carlybeth", + "avatar_thumb": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658382826944518~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658382826944518~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "carlybethmusic", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101150040681123B7AE" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658382826944518~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658382826944518~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGWed3_wq1m8zPlF8gMn-yx6AhxVOTanEAsqrRm4vke6zYFp5c5La8vG_CrHsCahc", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6815738901118963000, + "id_str": "6815738901118962437", + "title": "original sound - carlybethmusic", + "author": "Carly Beth", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658382826944518~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658382826944518~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658382826944518~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658382826944518~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1663999316924422.mp3", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1663999316924422.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 25, + "extra": "{\"has_edited\":0,\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6792703441488806917", + "owner_nickname": "Carly Beth", + "is_original": false, + "mid": "6815738901118962437", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "carlybethmusic", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAGWed3_wq1m8zPlF8gMn-yx6AhxVOTanEAsqrRm4vke6zYFp5c5La8vG_CrHsCahc", + "avatar_thumb": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1658382826944518~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658382826944518~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1658382826944518", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1658382826944518~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "3265", + "cha_name": "tbt", + "desc": "It's Thursday! Time to remember those embarrassing songs we used to listen in early 2000s, dig out some tunes from our parents 80s albums and dance to those EDM tracks from 2010! 📆\nCheck out our #TBT tracklist for inspo✨", + "schema": "aweme://aweme/challenge/detail?cid=3265", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/3265.html?name=tbt&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=3265", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #tbt Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #tbt Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: tbt", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044aa0000bqb6busqq9h0n1aio9h0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044aa0000bqb6busqq9h0n1aio9h0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044aa0000bqb6busqq9h0n1aio9h0_h264_540p_1314525", + "data_size": 4253970 + }, + "cover": { + "uri": "tos-maliva-p-0068/703cd166e3124c429033da112347f9a3_1586914830", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/703cd166e3124c429033da112347f9a3_1586914830~noop.webp?x-expires=1592658000&x-signature=hu4VV5AWuXNSwWnYXBSyE%2BccBgI%3D&l=202006181309490101150040681123B7AE" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/8355f0c9ce57438fbb19b5ec84e7839d_1586914830", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/8355f0c9ce57438fbb19b5ec84e7839d_1586914830?x-expires=1592658000&x-signature=u3P0Ol8tp11GKN6VHcuY6Nujyks%3D&l=202006181309490101150040681123B7AE" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/425501d8aae74497bd795190e1047a3d_1586914830", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/425501d8aae74497bd795190e1047a3d_1586914830~noop.image?x-expires=1592658000&x-signature=bESe3%2F2XToTAj0hjPV2vkv1MsUI%3D&l=202006181309490101150040681123B7AE" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044aa0000bqb6busqq9h0n1aio9h0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044aa0000bqb6busqq9h0n1aio9h0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3063951 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1314525, + "play_addr": { + "uri": "v09044aa0000bqb6busqq9h0n1aio9h0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044aa0000bqb6busqq9h0n1aio9h0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044aa0000bqb6busqq9h0n1aio9h0_h264_540p_1314525", + "data_size": 4253970 + }, + "is_h265": 0 + } + ], + "duration": 25889, + "download_suffix_logo_addr": { + "uri": "v09044aa0000bqb6busqq9h0n1aio9h0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044aa0000bqb6busqq9h0n1aio9h0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3109986 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507415, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044aa0000bqb6busqq9h0n1aio9h0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044aa0000bqb6busqq9h0n1aio9h0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4696030}}\n" + }, + "share_url": "https://m.tiktok.com/v/6815747273687911685.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6815747273687911685", + "user_digged": 0, + "statistics": { + "aweme_id": "6815747273687911685", + "comment_count": 6509, + "digg_count": 155901, + "download_count": 5195, + "play_count": 1949900, + "share_count": 3340, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 381 + }, + "status": { + "aweme_id": "6815747273687911685", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 25, + "end": 29, + "type": 1, + "hashtag_name": "tbt", + "hashtag_id": "3265", + "is_commerce": false + }, + { + "start": 30, + "end": 36, + "type": 1, + "hashtag_name": "music", + "hashtag_id": "5636", + "is_commerce": false + }, + { + "start": 37, + "end": 47, + "type": 1, + "hashtag_name": "carlybeth", + "hashtag_id": "5851289", + "is_commerce": false + }, + { + "start": 48, + "end": 54, + "type": 1, + "hashtag_name": "piano", + "hashtag_id": "2797", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101150040681123B7AE" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6815747273687911685.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6815747273687911685", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Carly Beth’s video! #TikTok > ", + "share_desc": "Check out Carly Beth's video! #TikTok", + "share_title": "Check out Carly Beth’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 25889, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6792703441488806917,\"author_country\":\"United States\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6792703441488807000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6815747273687911685", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":4.6512,\"end_time\":3900,\"p\":null,\"y\":14.7009,\"h\":0.0944,\"start_time\":0,\"r\":0,\"w\":0.6545,\"s\":0.8251}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":13.6446,\"end_time\":20133.3333,\"p\":null,\"y\":14.5568,\"h\":0.0844,\"start_time\":16966.6667,\"r\":0,\"w\":0.4223,\"s\":0.764}]", + "attr": "" + }, + { + "type": 5, + "index": 2, + "track_info": "[{\"x\":15.0829,\"end_time\":14533.3333,\"p\":null,\"y\":6.4323,\"h\":0.1124,\"start_time\":10966.6667,\"r\":0,\"w\":0.4859,\"s\":0.6751}]", + "attr": "" + }, + { + "type": 5, + "index": 3, + "track_info": "[{\"x\":-0.7792,\"end_time\":9233.3333,\"p\":null,\"y\":8.3004,\"h\":0.0935,\"start_time\":5833.3333,\"r\":0,\"w\":0.489,\"s\":0.575}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485791000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309490101150040681123B7AE" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.in/resources.arsc b/config.in/resources.arsc new file mode 100644 index 0000000..1dbf2e8 Binary files /dev/null and b/config.in/resources.arsc differ diff --git a/config.it/AndroidManifest.xml b/config.it/AndroidManifest.xml new file mode 100644 index 0000000..5ce5480 Binary files /dev/null and b/config.it/AndroidManifest.xml differ diff --git a/config.it/META-INF/BNDLTOOL.RSA b/config.it/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..60cbf8f Binary files /dev/null and b/config.it/META-INF/BNDLTOOL.RSA differ diff --git a/config.it/META-INF/BNDLTOOL.SF b/config.it/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..bfbbec2 --- /dev/null +++ b/config.it/META-INF/BNDLTOOL.SF @@ -0,0 +1,20 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: quTYirgLdple7PxdSiBcdBMZOSQ= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: 8tN4XRqA3Ve/qIS4u3Wo3pxZHT4= + +Name: assets/i18#lang_it/al.json +SHA1-Digest: xRwQT95l4iqfsTO0H14rxyVPGB0= + +Name: assets/i18#lang_it/ch.json +SHA1-Digest: cVL3IORnTx4t2jDFQJEEdvjagKw= + +Name: assets/i18#lang_it/default.json +SHA1-Digest: ftyHnY+fPz5DlF6nufekL1B53YA= + +Name: resources.arsc +SHA1-Digest: PMqDfJbyXwDNOYNHARgu8IFGwFI= + diff --git a/config.it/META-INF/MANIFEST.MF b/config.it/META-INF/MANIFEST.MF new file mode 100644 index 0000000..9c28cc9 --- /dev/null +++ b/config.it/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: DQYLG1UUWAMZOyoXW81/eBXmOfk= + +Name: assets/i18#lang_it/al.json +SHA1-Digest: tlSglqQ6q0ibJ4ifLtKm5wvqaIA= + +Name: assets/i18#lang_it/ch.json +SHA1-Digest: 0m9B5Y+17iK51mX4AZz4g2i5qTM= + +Name: assets/i18#lang_it/default.json +SHA1-Digest: s4DS0LZOWDR2IwaWwutAPXQO0sY= + +Name: resources.arsc +SHA1-Digest: n62wgAfjJ3ecbXWD7cwiO8r+CVQ= + diff --git a/config.it/assets/i18#lang_it/al.json b/config.it/assets/i18#lang_it/al.json new file mode 100644 index 0000000..fa8e5ba --- /dev/null +++ b/config.it/assets/i18#lang_it/al.json @@ -0,0 +1,1006 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6834803049068891397", + "desc": "😂😂 #fy #fyp #albania", + "create_time": 1591351597, + "author": { + "uid": "72535862349025280", + "short_id": "21629480860", + "nickname": "𝒟 𝑒 𝓃 𝒾 ", + "signature": "#teamdeni 🇦🇱 | 🇩🇪\nContact:denidworld@gmail.com 📨", + "avatar_thumb": { + "uri": "musically-maliva-obj/86cbe3dba02bfdf03bbc92d17047e895", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/86cbe3dba02bfdf03bbc92d17047e895~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/86cbe3dba02bfdf03bbc92d17047e895", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/86cbe3dba02bfdf03bbc92d17047e895~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "deni_doku", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AL", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309500101150040730E241A3A" + ], + "width": 720, + "height": 720 + } + ], + "language": "de", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/86cbe3dba02bfdf03bbc92d17047e895", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/86cbe3dba02bfdf03bbc92d17047e895~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/86cbe3dba02bfdf03bbc92d17047e895", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/86cbe3dba02bfdf03bbc92d17047e895~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAkNl41pYjG7ziAa7LGbBrrtIrxY0_NY_WmV8dvMIPifM0r1JHMwKGX9yXBfui5HiW", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6825950353859595000, + "id_str": "6825950353859595014", + "title": "original sound - aventurieret_meme", + "author": "Meme", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1666301997054982", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666301997054982~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1666301997054982", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666301997054982~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1666301997054982", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666301997054982~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1666301997054982", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666301997054982~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/084c1510b8d823c66fd8012d65657f93.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/084c1510b8d823c66fd8012d65657f93.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"has_edited\":0,\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6673063639745217542", + "owner_nickname": "Meme", + "is_original": false, + "mid": "6825950353859595014", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "aventurieret_meme", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAbWyLGFO8Rv9iILtAze1OOj_vPz_lNqgQGQtKYHl3DeCTYrGJXlvgzygSZBu9dFH_", + "avatar_thumb": { + "uri": "musically-maliva-obj/1666301997054982", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666301997054982~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1666301997054982", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666301997054982~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1666301997054982", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666301997054982~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "153828", + "cha_name": "fy", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=153828", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/153828.html?name=fy&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=153828", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #fy Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #fy Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: fy", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044ab0000brd1i703rmgjara9pnkg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ab0000brd1i703rmgjara9pnkg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ab0000brd1i703rmgjara9pnkg_h264_540p_1163981", + "data_size": 1408709 + }, + "cover": { + "uri": "tos-maliva-p-0068/181a3d84223641bba3031f3ca7b71d80", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/181a3d84223641bba3031f3ca7b71d80~noop.webp?x-expires=1592658000&x-signature=vbnP2T244fMHtDuaxdhTUEFZLes%3D&l=202006181309500101150040730E241A3A" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/38427e000f314303b762d9a79ba93bc1_1591351598", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/38427e000f314303b762d9a79ba93bc1_1591351598?x-expires=1592658000&x-signature=sl%2Bugec3qK91xfb0AprK9YSaFlA%3D&l=202006181309500101150040730E241A3A" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/314ca7dd621b4d2a82eafaa371a2a241_1591351598", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/314ca7dd621b4d2a82eafaa371a2a241_1591351598~noop.image?x-expires=1592658000&x-signature=Gd5Xh7JHFqkHEgjEN9XItkx6UUo%3D&l=202006181309500101150040730E241A3A" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044ab0000brd1i703rmgjara9pnkg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ab0000brd1i703rmgjara9pnkg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1471217 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1163981, + "play_addr": { + "uri": "v09044ab0000brd1i703rmgjara9pnkg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ab0000brd1i703rmgjara9pnkg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ab0000brd1i703rmgjara9pnkg_h264_540p_1163981", + "data_size": 1408709 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 661464, + "play_addr": { + "uri": "v09044ab0000brd1i703rmgjara9pnkg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ab0000brd1i703rmgjara9pnkg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ab0000brd1i703rmgjara9pnkg_h264_540p_661464", + "data_size": 800537 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 471405, + "play_addr": { + "uri": "v09044ab0000brd1i703rmgjara9pnkg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ab0000brd1i703rmgjara9pnkg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ab0000brd1i703rmgjara9pnkg_h264_540p_471405", + "data_size": 570518 + }, + "is_h265": 0 + } + ], + "duration": 9682, + "download_suffix_logo_addr": { + "uri": "v09044ab0000brd1i703rmgjara9pnkg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ab0000brd1i703rmgjara9pnkg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1537618 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044ab0000brd1i703rmgjara9pnkg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ab0000brd1i703rmgjara9pnkg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1567060}}\n" + }, + "share_url": "https://m.tiktok.com/v/6834803049068891397.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834803049068891397", + "user_digged": 0, + "statistics": { + "aweme_id": "6834803049068891397", + "comment_count": 339, + "digg_count": 35134, + "download_count": 618, + "play_count": 633144, + "share_count": 572, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 288 + }, + "status": { + "aweme_id": "6834803049068891397", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 5, + "end": 8, + "type": 1, + "hashtag_name": "fy", + "hashtag_id": "153828", + "is_commerce": false + }, + { + "start": 9, + "end": 13, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 14, + "end": 22, + "type": 1, + "hashtag_name": "albania", + "hashtag_id": "111482", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309500101150040730E241A3A" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834803049068891397.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834803049068891397", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 𝒟 𝑒 𝓃 𝒾 ’s video! #TikTok > ", + "share_desc": "Check out 𝒟 𝑒 𝓃 𝒾 's video! #TikTok", + "share_title": "Check out 𝒟 𝑒 𝓃 𝒾 ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9682, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 72535862349025280, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AL", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6834803049068891397", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832732148663913733", + "desc": "Pjesa e 1", + "create_time": 1590869425, + "author": { + "uid": "6814544240249799685", + "short_id": "48398868040", + "nickname": "Dublime Shqip", + "signature": "Suportoni duke dhene kontributin tuaj te linku me poshte... Paçi e dhençi.", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663707358899270~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663707358899270~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "dublimeshqip", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AL", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309500101150040730E241A3A" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663707358899270~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663707358899270~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAu2rbQ0lgxErAGFaUHQYNPg_G1_2jV-grZRpgj_7dsi6sUjp1p759Pfe7BOx1uCGy", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6832732152845585000, + "id_str": "6832732152845585158", + "title": "original sound - dublimeshqip", + "author": "Dublime Shqip", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663707358899270~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663707358899270~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663707358899270~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1663707358899270~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/186af57aa1feb8601813aca039c6ac72.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/186af57aa1feb8601813aca039c6ac72.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 59, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6814544240249799685", + "owner_nickname": "Dublime Shqip", + "is_original": false, + "mid": "6832732152845585158", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "dublimeshqip", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAu2rbQ0lgxErAGFaUHQYNPg_G1_2jV-grZRpgj_7dsi6sUjp1p759Pfe7BOx1uCGy", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1663707358899270~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663707358899270~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1663707358899270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663707358899270~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044590000br9bqfrr1j88jah7c8i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9bqfrr1j88jah7c8i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br9bqfrr1j88jah7c8i0_h264_540p_849652", + "data_size": 6279567 + }, + "cover": { + "uri": "tos-maliva-p-0068/b5df4c6f051a481aba01a347e1725449", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b5df4c6f051a481aba01a347e1725449~noop.webp?x-expires=1592658000&x-signature=xUC8tgCwaHP59ESsHDb%2Bx44KhPQ%3D&l=202006181309500101150040730E241A3A" + ], + "width": 720, + "height": 720 + }, + "height": 576, + "width": 1024, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/8f2a6df6b4ce436f9b574314595312ee_1590869427", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/8f2a6df6b4ce436f9b574314595312ee_1590869427?x-expires=1592658000&x-signature=Of6QWIKhBUVsgTJJLT%2B939EMRzI%3D&l=202006181309500101150040730E241A3A" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/835599e4c08947258fd598edee74cd65_1590869426", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/835599e4c08947258fd598edee74cd65_1590869426~noop.image?x-expires=1592658000&x-signature=fzk6%2BbSPO%2FbcWbipB1%2FrU1Q65s4%3D&l=202006181309500101150040730E241A3A" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044590000br9bqfrr1j88jah7c8i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9bqfrr1j88jah7c8i0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6729496 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 849652, + "play_addr": { + "uri": "v09044590000br9bqfrr1j88jah7c8i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9bqfrr1j88jah7c8i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br9bqfrr1j88jah7c8i0_h264_540p_849652", + "data_size": 6279567 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 507506, + "play_addr": { + "uri": "v09044590000br9bqfrr1j88jah7c8i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9bqfrr1j88jah7c8i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br9bqfrr1j88jah7c8i0_h264_540p_507506", + "data_size": 3750850 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 376453, + "play_addr": { + "uri": "v09044590000br9bqfrr1j88jah7c8i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9bqfrr1j88jah7c8i0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br9bqfrr1j88jah7c8i0_h264_540p_376453", + "data_size": 2782272 + }, + "is_h265": 0 + } + ], + "duration": 59126, + "download_suffix_logo_addr": { + "uri": "v09044590000br9bqfrr1j88jah7c8i0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9bqfrr1j88jah7c8i0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6800006 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507450 + }, + "share_url": "https://m.tiktok.com/v/6832732148663913733.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832732148663913733", + "user_digged": 0, + "statistics": { + "aweme_id": "6832732148663913733", + "comment_count": 91, + "digg_count": 14421, + "download_count": 1105, + "play_count": 229713, + "share_count": 661, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 264 + }, + "status": { + "aweme_id": "6832732148663913733", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309500101150040730E241A3A" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832732148663913733.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832732148663913733", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Dublime Shqip’s video! #TikTok > ", + "share_desc": "Check out Dublime Shqip's video! #TikTok", + "share_title": "Check out Dublime Shqip’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 59126, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6814544240249799685,\"author_country\":\"Albania\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6814544240249800000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AL", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832732148663913733", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "sq", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485792000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309500101150040730E241A3A" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.it/assets/i18#lang_it/ch.json b/config.it/assets/i18#lang_it/ch.json new file mode 100644 index 0000000..ae0ee65 --- /dev/null +++ b/config.it/assets/i18#lang_it/ch.json @@ -0,0 +1,988 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837245528225484038", + "desc": "periodt!!! but like also stop @larrayeeee @bradypotter", + "create_time": 1591920286, + "author": { + "uid": "6703550784929793030", + "short_id": "43772482888", + "nickname": "addison rae", + "signature": "follow me on instagram for a kiss \nyoutube- Addison Rae", + "avatar_thumb": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "addisonre", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2e2879e4f324d4bcf554856ffc4a0a4f~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAVjQK614JSGmZVT3EVAiSDfznaBJOVfWPrtqDsQ9YxU368ewQrTyyEOb3OtJb4xCI", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6825734897517235000, + "id_str": "6825734897517234949", + "title": "GOOBA", + "author": "6ix9ine", + "album": "GOOBA", + "cover_hd": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/8d436b3fb155400ea7355092c4845a00.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/ac5e9f21d47503af5fb1a6d02ed57665.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/ac5e9f21d47503af5fb1a6d02ed57665.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"apple_song_id\":1511894046,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6825734897517234949", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1511894046", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 1.4, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_1938248", + "data_size": 2019413 + }, + "cover": { + "uri": "tos-maliva-p-0068/79fcf143dbc64359a07f70cb8b56c7df", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/79fcf143dbc64359a07f70cb8b56c7df~noop.webp?x-expires=1592658000&x-signature=lvfsSwS%2FU1GNxSxIrWrH4bGpYAA%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/99aad2bdbe754ccfb068e0f63915627b_1591920287", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/99aad2bdbe754ccfb068e0f63915627b_1591920287?x-expires=1592658000&x-signature=2PmjKblxkOEgGgUYB41573%2BttQw%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/98f55c6937e0462bb0551fb3c707a63c_1591920288", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/98f55c6937e0462bb0551fb3c707a63c_1591920288~noop.image?x-expires=1592658000&x-signature=CvYVJ3SBlx35pvK61d8dk2YTIug%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2060897 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1938248, + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_1938248", + "data_size": 2019413 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1146989, + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_1146989", + "data_size": 1195020 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 836445, + "play_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhccvlg8091hndrc43g_h264_540p_836445", + "data_size": 871472 + }, + "is_h265": 0 + } + ], + "duration": 8335, + "download_suffix_logo_addr": { + "uri": "v09044570000brhccvlg8091hndrc43g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2128378 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507397, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brhccvlg8091hndrc43g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhccvlg8091hndrc43g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2169091}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837245528225484038.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837245528225484038", + "user_digged": 0, + "statistics": { + "aweme_id": "6837245528225484038", + "comment_count": 205829, + "digg_count": 12164765, + "download_count": 398012, + "play_count": 104645446, + "share_count": 670381, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 56814 + }, + "status": { + "aweme_id": "6837245528225484038", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 31, + "end": 42, + "user_id": "8757225", + "type": 0, + "sec_uid": "MS4wLjABAAAAEhVnyJg5jMwcWNGTz3Es0QS5Zgy8xSHYUx5tIslXo-w" + }, + { + "start": 43, + "end": 55, + "user_id": "6639537028701650949", + "type": 0, + "sec_uid": "MS4wLjABAAAAdWHA40lL5xikxdV7lOlzPk8AuMCe_OVA1EL2QTiA9efwXeDCL5XlVMO-ec8SOU21" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837245528225484038.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837245528225484038", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out addison rae’s video! #TikTok > ", + "share_desc": "Check out addison rae's video! #TikTok", + "share_title": "Check out addison rae’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8335, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6703550784929793000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837245528225484038", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575903, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040661823F883" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309371\",\"mv_info\":{\"id\":\"309371\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040661823F883" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.it/assets/i18#lang_it/default.json b/config.it/assets/i18#lang_it/default.json new file mode 100644 index 0000000..e41e213 --- /dev/null +++ b/config.it/assets/i18#lang_it/default.json @@ -0,0 +1,1037 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6830851847973014790", + "desc": "😅 #chiaraferragni #leoneluciaferragni", + "create_time": 1590431634, + "author": { + "uid": "6751746612202537990", + "short_id": "45452223848", + "nickname": "Chiara Ferragni", + "signature": "Watch my documentary “Chiara Ferragni Unposted” on Amazon Prime Video ❤️", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663235753705478", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663235753705478~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663235753705478", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663235753705478~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "chiaraferragni", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IT", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152280600223A460" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1663235753705478", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1663235753705478~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1663235753705478", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663235753705478~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA0DPwPMUN1JDwBVCSKW57sAvgTWW_8dbGRFRQsO0BQVhnXqYfeX4hmr3FyR6s9gH6", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6788784989656927000, + "id_str": "6788784989656926981", + "title": "Banana (feat. Shaggy)", + "author": "Conkarah", + "album": "Banana (feat. Shaggy)", + "cover_hd": { + "uri": "tos-alisg-i-0000/1c3e280c2e5144bc8e643ed9f2a46479", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/1c3e280c2e5144bc8e643ed9f2a46479.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/1c3e280c2e5144bc8e643ed9f2a46479", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/1c3e280c2e5144bc8e643ed9f2a46479.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/1c3e280c2e5144bc8e643ed9f2a46479", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/1c3e280c2e5144bc8e643ed9f2a46479.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/1c3e280c2e5144bc8e643ed9f2a46479", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/1c3e280c2e5144bc8e643ed9f2a46479.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/e30c7343a76b5df344500911538e4c1f.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/e30c7343a76b5df344500911538e4c1f.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 22, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1475748889,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"energy_trace\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1666832253135880\",\"merged_beats\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1666832258653191\",\"audio_effect_onset\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1666832253169672\",\"beats_tracker\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1666832258616333\"}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6788784989656926981", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1475748889", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "10433289", + "cha_name": "chiaraferragni", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=10433289", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/10433289.html?name=chiaraferragni&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=10433289", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #chiaraferragni Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #chiaraferragni Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: chiaraferragni", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044880000br60v4273oo12vdtped0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br60v4273oo12vdtped0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br60v4273oo12vdtped0_h264_540p_1901585", + "data_size": 2301394 + }, + "cover": { + "uri": "tos-maliva-p-0068/8478d4e6978948219eee12c443095e8e_1590431638", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8478d4e6978948219eee12c443095e8e_1590431638~noop.webp?x-expires=1592658000&x-signature=zEKhgFfLXf0wCd87ASc4wpEEw2k%3D&l=202006181309480101152280600223A460" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/405fa7b54b244111946077a7c21a3d1f_1590431638", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/405fa7b54b244111946077a7c21a3d1f_1590431638?x-expires=1592658000&x-signature=xeRu%2Fj45G%2F9G8nEYscP%2BTvaMDwM%3D&l=202006181309480101152280600223A460" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62f2c28e363a4df3838b66ef4aafdcf4_1590431637", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62f2c28e363a4df3838b66ef4aafdcf4_1590431637~noop.image?x-expires=1592658000&x-signature=K4DClr2vX8xbmTBJZNiDT2Cs3yc%3D&l=202006181309480101152280600223A460" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044880000br60v4273oo12vdtped0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br60v4273oo12vdtped0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2377500 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1901585, + "play_addr": { + "uri": "v09044880000br60v4273oo12vdtped0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br60v4273oo12vdtped0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br60v4273oo12vdtped0_h264_540p_1901585", + "data_size": 2301394 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1167121, + "play_addr": { + "uri": "v09044880000br60v4273oo12vdtped0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br60v4273oo12vdtped0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br60v4273oo12vdtped0_h264_540p_1167121", + "data_size": 1412509 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 863843, + "play_addr": { + "uri": "v09044880000br60v4273oo12vdtped0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br60v4273oo12vdtped0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044880000br60v4273oo12vdtped0_h264_540p_863843", + "data_size": 1045466 + }, + "is_h265": 0 + } + ], + "duration": 9682, + "download_suffix_logo_addr": { + "uri": "v09044880000br60v4273oo12vdtped0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br60v4273oo12vdtped0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2445781 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044880000br60v4273oo12vdtped0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044880000br60v4273oo12vdtped0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2510218}}\n" + }, + "share_url": "https://m.tiktok.com/v/6830851847973014790.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830851847973014790", + "user_digged": 0, + "statistics": { + "aweme_id": "6830851847973014790", + "comment_count": 3344, + "digg_count": 768441, + "download_count": 5081, + "play_count": 8530546, + "share_count": 6594, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 4713 + }, + "status": { + "aweme_id": "6830851847973014790", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 3, + "end": 18, + "type": 1, + "hashtag_name": "chiaraferragni", + "hashtag_id": "10433289", + "is_commerce": false + }, + { + "start": 19, + "end": 38, + "type": 1, + "hashtag_name": "leoneluciaferragni", + "hashtag_id": "1595845984499717", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152280600223A460" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6830851847973014790.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830851847973014790", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Chiara Ferragni’s video! #TikTok > ", + "share_desc": "Check out Chiara Ferragni's video! #TikTok", + "share_title": "Check out Chiara Ferragni’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9682, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6751746612202538000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "IT", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6830851847973014790", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152280600223A460" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309480101152280600223A460" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309480101152280600223A460" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309480101152280600223A460" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575904, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152280600223A460" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309369\",\"mv_info\":{\"id\":\"309369\",\"name\":\"Doppia esposizione\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101152280600223A460" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.it/resources.arsc b/config.it/resources.arsc new file mode 100644 index 0000000..89ae50d Binary files /dev/null and b/config.it/resources.arsc differ diff --git a/config.ja/AndroidManifest.xml b/config.ja/AndroidManifest.xml new file mode 100644 index 0000000..92cbe39 Binary files /dev/null and b/config.ja/AndroidManifest.xml differ diff --git a/config.ja/META-INF/BNDLTOOL.RSA b/config.ja/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..e407540 Binary files /dev/null and b/config.ja/META-INF/BNDLTOOL.RSA differ diff --git a/config.ja/META-INF/BNDLTOOL.SF b/config.ja/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..e8da897 --- /dev/null +++ b/config.ja/META-INF/BNDLTOOL.SF @@ -0,0 +1,17 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: TW3C9Yxqf7V+DPF4czJrtjKS3ZM= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: 5p7BF5n4ZI0as4bNVpXscAorUbU= + +Name: assets/i18#lang_ja/cn.json +SHA1-Digest: B7mRcT6UvJQNtQZmz07AvWxXGlU= + +Name: assets/i18#lang_ja/default.json +SHA1-Digest: t+66YFFlESGLe1/vJpxX9qoPjAo= + +Name: resources.arsc +SHA1-Digest: GNEzLYHXU/CCWMp3m1mj4px9i3s= + diff --git a/config.ja/META-INF/MANIFEST.MF b/config.ja/META-INF/MANIFEST.MF new file mode 100644 index 0000000..047cb83 --- /dev/null +++ b/config.ja/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: jH4vMCOL6sNYedqJdTLvhUdqRyg= + +Name: assets/i18#lang_ja/cn.json +SHA1-Digest: OmxU81wHvL5rbV1QDsnZewdx1L0= + +Name: assets/i18#lang_ja/default.json +SHA1-Digest: Nx+vS2L0dZfDohv+FYhsBSfP8fw= + +Name: resources.arsc +SHA1-Digest: lNE45bliojxgmZodLrICmjlLGYA= + diff --git a/config.ja/assets/i18#lang_ja/cn.json b/config.ja/assets/i18#lang_ja/cn.json new file mode 100644 index 0000000..45f2158 --- /dev/null +++ b/config.ja/assets/i18#lang_ja/cn.json @@ -0,0 +1,1003 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6821394531490057473", + "desc": "田舎ではめっちゃ浮くけど好きな服を着たい#おすすめのりたい #おすすめ #おうちで過ごし隊 #バズれ", + "create_time": 1588229681, + "author": { + "uid": "6664485887529320449", + "short_id": "31985590033", + "nickname": "おしお", + "signature": "8時30分(??)投稿🐹", + "avatar_thumb": { + "uri": "tiktok-obj/1663478210615298", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1663478210615298.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1663478210615298", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1663478210615298.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "xd__x1", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "JP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + } + ], + "language": "ja", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1663478210615298", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1663478210615298~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1663478210615298", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1663478210615298~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAXnj9HhJt1172tWghbTNMZKNtsa3qAZsykclELyrS1DZnm27FvNRwqmrAqrXLoEQe", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6814172769975029000, + "id_str": "6814172769975028482", + "title": "original sound - 四爷🌸", + "author": "四爷🌸", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663620049097761.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663620049097761.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 11, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6642602349096665089", + "owner_nickname": "四爷🌸", + "is_original": false, + "mid": "6814172769975028482", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "siye60", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAACVwPX_Lqdosa1cVdafSQuokWDLrk0N_jcFiSNZhwy-3KgOhng-XpeZBbZfjNibLH", + "avatar_thumb": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "10753252", + "cha_name": "おすすめ", + "desc": "#おすすめ 付けて動画をもっとたくさんの人に見せよう!#おすすめ を付けることでよりおすすめされやすくなる🎉❤️😱\n動画を@musically_japanと#ミュージカリーでツイッター或いはインスタグラムにシェアし、muscial.lyが君の動画を公式SNSに投稿するチャンスを手にいれよう!", + "schema": "aweme://aweme/challenge/detail?cid=10753252", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/10753252?name=%E3%81%8A%E3%81%99%E3%81%99%E3%82%81&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=10753252", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #おすすめ Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #おすすめ Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: おすすめ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025b40000bql7bq8ji60grojjm1a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bql7bq8ji60grojjm1a0_h264_540p_806261", + "data_size": 1137333 + }, + "cover": { + "uri": "large/v0201/16e2b730d9914ffb809b0a29dc1bdad7_1588229684", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/16e2b730d9914ffb809b0a29dc1bdad7_1588229684.webp?x-expires=1592658000&x-signature=4omYFKvb%2FepGWt8aNjFInOkBnOw%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "v0201/a9cfb46aa4924eddae3bc4e32db8fad7_1588229684", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/a9cfb46aa4924eddae3bc4e32db8fad7_1588229684?x-expires=1592658000&x-signature=6a%2FjfFZevJACMbUyIwvkYsg0kLQ%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/a0af61f8014f41728b7748c6e72031f1_1588229684", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/a0af61f8014f41728b7748c6e72031f1_1588229684.jpeg?x-expires=1592658000&x-signature=1oEWYkRNyZkKHCBMA0wkgYLDXEs%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025b40000bql7bq8ji60grojjm1a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1193664 + }, + "has_watermark": true, + "play_addr_lowbr": { + "uri": "v07025b40000bql7bq8ji60grojjm1a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bql7bq8ji60grojjm1a0_h264_540p_806261", + "data_size": 1137333 + }, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 806261, + "play_addr": { + "uri": "v07025b40000bql7bq8ji60grojjm1a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bql7bq8ji60grojjm1a0_h264_540p_806261", + "data_size": 1137333 + }, + "is_h265": 0 + } + ], + "duration": 11285, + "download_suffix_logo_addr": { + "uri": "v07025b40000bql7bq8ji60grojjm1a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1260110 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025b40000bql7bq8ji60grojjm1a0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1314829}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6821394531490057473/?region=CN&mid=6814172769975028482&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6821394531490057473", + "user_digged": 0, + "statistics": { + "aweme_id": "6821394531490057473", + "comment_count": 3285, + "digg_count": 312860, + "download_count": 2972, + "play_count": 4200964, + "share_count": 6341, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6 + }, + "status": { + "aweme_id": "6821394531490057473", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 30, + "end": 35, + "type": 1, + "hashtag_name": "おすすめ", + "hashtag_id": "10753252", + "is_commerce": false + }, + { + "start": 36, + "end": 45, + "type": 1, + "hashtag_name": "おうちで過ごし隊", + "hashtag_id": "1662314533846017", + "is_commerce": false + }, + { + "start": 46, + "end": 50, + "type": 1, + "hashtag_name": "バズれ", + "hashtag_id": "1592296049031170", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6821394531490057473/?region=CN&mid=6814172769975028482&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6821394531490057473", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out おしお’s video! #TikTok > ", + "share_desc": "Check out おしお's video! #TikTok", + "share_title": "Check out おしお’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 11285, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6664485887529320000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "JP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6821386519983541506", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ja", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6814028581539269889", + "desc": "", + "create_time": 1586514663, + "author": { + "uid": "6775025977271010310", + "short_id": "46721513456", + "nickname": "(BOSS)", + "signature": "Plz visit my youtube channel{Bishaz Gaming} & don’t forget to like,cmt, sescribe", + "avatar_thumb": { + "uri": "musically-maliva-obj/1661420973515782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1661420973515782~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1661420973515782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1661420973515782~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "rupakarki15", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "NP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1661420973515782", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1661420973515782~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1661420973515782", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1661420973515782~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAJd9ZdJHqFXUU-jvhWGagdecPPT97pWj_r_2br93w4l46BcfNgRmGwDVeJQK_kMKf", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6782778674396843000, + "id_str": "6782778674396842753", + "title": "original sound - AG Bangel", + "author": "AG Bangel", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1655951763789874.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1655951763789874.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 14, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6780009978504135685", + "owner_nickname": "AG Bangel", + "is_original": false, + "mid": "6782778674396842753", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "cm_criminal__07", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656588034530306", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656588034530306" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAYA-wN91fVR8YeNxXllQszSHQfuWfrtgmMg3ig88mTB9rcJj-s8fizW-ykyMQeioV", + "avatar_thumb": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000bq84lakqq9h1qgahg5fg_h264_540p_447203", + "data_size": 571135 + }, + "cover": { + "uri": "tos-maliva-p-0068/04dd8decaf8e43aab1e27479c588a71e", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/04dd8decaf8e43aab1e27479c588a71e~noop.webp?x-expires=1592658000&x-signature=fnYSbssmUNXau3G9lKPJChH%2BQh4%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/aa4984e0ad1e4657a40374d9f0b16efb_1586528745", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/aa4984e0ad1e4657a40374d9f0b16efb_1586528745?x-expires=1592658000&x-signature=359uDdTNwl5nMD%2BZN2udpTvSGq8%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/505fa79bf10444a8aebeee6ef885ecb0_1586528745", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/505fa79bf10444a8aebeee6ef885ecb0_1586528745~noop.image?x-expires=1592658000&x-signature=nQrG3%2Flxku6za1C689%2B07IQcC2M%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 677095 + }, + "has_watermark": true, + "play_addr_lowbr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000bq84lakqq9h1qgahg5fg_h264_540p_447203", + "data_size": 571135 + }, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 447203, + "play_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000bq84lakqq9h1qgahg5fg_h264_540p_447203", + "data_size": 571135 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 284734, + "play_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000bq84lakqq9h1qgahg5fg_h264_540p_284734", + "data_size": 363641 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 215155, + "play_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000bq84lakqq9h1qgahg5fg_h264_540p_215155", + "data_size": 274781 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 745757 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399 + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6814028581539269889/?region=CN&mid=6782778674396842753&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6814028581539269889", + "user_digged": 0, + "statistics": { + "aweme_id": "6814028581539269889", + "comment_count": 262, + "digg_count": 17388, + "download_count": 833, + "play_count": 215349, + "share_count": 139, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 27 + }, + "status": { + "aweme_id": "6814028581539269889", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6814028581539269889/?region=CN&mid=6782778674396842753&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6814028581539269889", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out (BOSS)’s video! #TikTok > ", + "share_desc": "Check out (BOSS)'s video! #TikTok", + "share_title": "Check out (BOSS)’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6775025977271010310,\"author_country\":\"Nepal\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6775025977271010000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "NP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6814028581539269889", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"308743\",\"mv_info\":{\"id\":\"308743\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101150770321623DD05" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ja/assets/i18#lang_ja/default.json b/config.ja/assets/i18#lang_ja/default.json new file mode 100644 index 0000000..e1f9120 --- /dev/null +++ b/config.ja/assets/i18#lang_ja/default.json @@ -0,0 +1,1447 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6836623801036377346", + "desc": "#ホラー映像 #ホラーです #老害 #老害ドライバー根絶", + "create_time": 1591775522, + "author": { + "uid": "6565210077565206529", + "short_id": "31424796065", + "nickname": "ジーマ社長(株主)@IT起業家", + "signature": "平成生まれで会社3社経営😎\nIT社長で名言系TikToker😎\nフォローするだけで100万円の価値😎\n毎日名言呟きます😎\n▼500円のおすすめの洗顔▼", + "avatar_thumb": { + "uri": "tiktok-obj/56d894a013e73f2d936afc1966b20b86", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/56d894a013e73f2d936afc1966b20b86.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/56d894a013e73f2d936afc1966b20b86", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/56d894a013e73f2d936afc1966b20b86.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "ziima615", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "JP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "tiktok-obj/d1231390642d8ddf00011da73e50a287", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/d1231390642d8ddf00011da73e50a287" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + } + ], + "language": "ja", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/56d894a013e73f2d936afc1966b20b86", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/56d894a013e73f2d936afc1966b20b86~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/56d894a013e73f2d936afc1966b20b86", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/56d894a013e73f2d936afc1966b20b86~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAj0cS9-7panzWI3ptsWojb2rFrYHNn0tkgaA1x6yClkdrLnZYGcum8wleF2SFU1WT", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6709349698206960000, + "id_str": "6709349698206959622", + "title": "怖い曲集「迷宮」~白い女ホラーver.~", + "author": "東京女子流", + "album": "怖い曲集「迷宮」", + "cover_hd": { + "uri": "tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tos-alisg-v-0000/963e77ecfa4c4fe9b68a866ccdef3b2b", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tos-alisg-v-0000/963e77ecfa4c4fe9b68a866ccdef3b2b" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10016, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6709349698206959622", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": true, + "strong_beat_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1638843099369474", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1638843099369474" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 2, + "external_song_info": [], + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1597817804379138", + "cha_name": "ホラー映像", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1597817804379138", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1597817804379138?name=%E3%83%9B%E3%83%A9%E3%83%BC%E6%98%A0%E5%83%8F&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1597817804379138", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #ホラー映像 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #ホラー映像 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: ホラー映像", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025d80000brg926mr5lnvh57iosh0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025d80000brg926mr5lnvh57iosh0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025d80000brg926mr5lnvh57iosh0_h264_540p_1709025", + "data_size": 1360171 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/45889f3b77fd47a2bb74b75bdec0ea41", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/45889f3b77fd47a2bb74b75bdec0ea41.webp?x-expires=1592658000&x-signature=H5pCf4qF%2F5kjrm9jYkop%2BNuXnJQ%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/fa8b4b5e033046b6b0d7e9e1f2f1e794_1591775527", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/fa8b4b5e033046b6b0d7e9e1f2f1e794_1591775527?x-expires=1592658000&x-signature=xKl6SvPJdBSMJDPlGSCalmjAF1U%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/0343d960702a420aa68e3ea0a6487c52_1591775526", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/0343d960702a420aa68e3ea0a6487c52_1591775526.jpeg?x-expires=1592658000&x-signature=74lD9aV0STX2M9Ksj%2Fwb7EoVnDM%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025d80000brg926mr5lnvh57iosh0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025d80000brg926mr5lnvh57iosh0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1401683 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1709025, + "play_addr": { + "uri": "v07025d80000brg926mr5lnvh57iosh0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025d80000brg926mr5lnvh57iosh0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025d80000brg926mr5lnvh57iosh0_h264_540p_1709025", + "data_size": 1360171 + }, + "is_h265": 0 + } + ], + "duration": 6367, + "download_suffix_logo_addr": { + "uri": "v07025d80000brg926mr5lnvh57iosh0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025d80000brg926mr5lnvh57iosh0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1473536 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507394 + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6836623801036377346/?region=CN&mid=6709349698206959622&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836623801036377346", + "user_digged": 0, + "statistics": { + "aweme_id": "6836623801036377346", + "comment_count": 14413, + "digg_count": 144927, + "download_count": 1368, + "play_count": 13696178, + "share_count": 4602, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1 + }, + "status": { + "aweme_id": "6836623801036377346", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 6, + "type": 1, + "hashtag_name": "ホラー映像", + "hashtag_id": "1597817804379138", + "is_commerce": false + }, + { + "start": 7, + "end": 13, + "type": 1, + "hashtag_name": "ホラーです", + "hashtag_id": "1610390337383425", + "is_commerce": false + }, + { + "start": 14, + "end": 17, + "type": 1, + "hashtag_name": "老害", + "hashtag_id": "1603425364221953", + "is_commerce": false + }, + { + "start": 18, + "end": 28, + "type": 1, + "hashtag_name": "老害ドライバー根絶", + "hashtag_id": "1645823951488002", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6836623801036377346/?region=CN&mid=6709349698206959622&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836623801036377346", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ジーマ社長(株主)@IT起業家’s video! #TikTok > ", + "share_desc": "Check out ジーマ社長(株主)@IT起業家's video! #TikTok", + "share_title": "Check out ジーマ社長(株主)@IT起業家’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 6367, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6565210077565207000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "JP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836623801036377346", + "prevent_download": true, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":1.25,\"end_time\":6305,\"p\":-1,\"y\":210.13,\"h\":0.1071,\"start_time\":0,\"r\":0,\"w\":0.6206,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":8.8961,\"end_time\":6305,\"p\":-1,\"y\":-202.1243,\"h\":0.2153,\"start_time\":0,\"r\":0,\"w\":0.6033,\"s\":0.802}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": false, + "share_type": 0, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 4, + "allow_dynamic_wallpaper": false, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6837162125161434374", + "desc": "Maybe I should have looked up the lyrics @bangenergy @bangenergy.ceo", + "create_time": 1591900860, + "author": { + "uid": "106241438295736320", + "short_id": "21546376817", + "nickname": "qpark", + "signature": "No bio yet", + "avatar_thumb": { + "uri": "s3://musically-prod/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "s3://musically-prod/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "qpark", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "s3://musically-prod/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg", + "url_list": [ + "https://mpak-suse1.akamaized.net/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "s3://musically-prod/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg", + "url_list": [ + "https://mpak-suse1.akamaized.net/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAQyz6nUiOMwBFRsp1pP53DNaSLsK1tBZb0L6aryILC2VQ8ppuDjVxBQfBIALq0Hdl", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6738439639826288000, + "id_str": "6738439639826287365", + "title": "Roses (Imanbek Remix)", + "author": "SAINt JHN", + "album": "Roses (Imanbek Remix)", + "cover_hd": { + "uri": "tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 20, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1479636604,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "The copyright owner hasn't made this sound available in your country.", + "owner_nickname": "", + "is_original": false, + "mid": "6738439639826287365", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": true, + "unshelve_countries": null, + "prevent_item_download_status": 2, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1479636604", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 49.2, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044f70000brh7lcbkh7brk0pfo810", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brh7lcbkh7brk0pfo810&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brh7lcbkh7brk0pfo810_h264_540p_2347414", + "data_size": 5525226 + }, + "cover": { + "uri": "tos-maliva-p-0068/96a483421aa94ca9aa9f19c804dd40ef", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/96a483421aa94ca9aa9f19c804dd40ef~noop.webp?x-expires=1592658000&x-signature=4je1ARGCqiSRNNmfk6BOmmaIKII%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/9b317a0ac376457f8fdfb6354964e1f0_1591900862", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/9b317a0ac376457f8fdfb6354964e1f0_1591900862?x-expires=1592658000&x-signature=HKfOUKskGgkHfzGgBrQqiziKm4s%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/4434a76ceda746028055080632b308a8_1591900862", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/4434a76ceda746028055080632b308a8_1591900862~noop.image?x-expires=1592658000&x-signature=ivd898JB0yLZyLXUBVlcMvu6SHQ%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044f70000brh7lcbkh7brk0pfo810", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brh7lcbkh7brk0pfo810&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5683497 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2347414, + "play_addr": { + "uri": "v09044f70000brh7lcbkh7brk0pfo810", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brh7lcbkh7brk0pfo810&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brh7lcbkh7brk0pfo810_h264_540p_2347414", + "data_size": 5525226 + }, + "is_h265": 0 + } + ], + "duration": 18830, + "download_suffix_logo_addr": { + "uri": "v09044f70000brh7lcbkh7brk0pfo810", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brh7lcbkh7brk0pfo810&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5751271 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507406, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044f70000brh7lcbkh7brk0pfo810\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brh7lcbkh7brk0pfo810&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":5852349}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6837162125161434374/?region=CN&mid=6738439639826287365&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837162125161434374", + "user_digged": 0, + "statistics": { + "aweme_id": "6837162125161434374", + "comment_count": 3341, + "digg_count": 457259, + "download_count": 2850, + "play_count": 1869209, + "share_count": 3066, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 866 + }, + "status": { + "aweme_id": "6837162125161434374", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 41, + "end": 52, + "user_id": "6760790946654323717", + "type": 0, + "sec_uid": "MS4wLjABAAAAKUvTIi7reXjyHu9ciMFtW4EbaObWHCpTJOgFLESsZ_AdAj-pqJ4Q9CyGa36jGtKO" + }, + { + "start": 53, + "end": 68, + "user_id": "6764004751870084101", + "type": 0, + "sec_uid": "MS4wLjABAAAAT7lAysDBOCUNN7J1RxooqLHzC0AdDKoWuaznTKRCKJs9zc2gpQT5Ftd_tyPEosyr" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6837162125161434374/?region=CN&mid=6738439639826287365&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837162125161434374", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out qpark’s video! #TikTok > ", + "share_desc": "Check out qpark's video! #TikTok", + "share_title": "Check out qpark’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 18830, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 106241438295736320, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837162125161434374", + "prevent_download": true, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": false, + "share_type": 0, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 4, + "allow_dynamic_wallpaper": false, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + }, + { + "aweme_id": "6837030410724068609", + "desc": "久しぶりにやられた気がする。#ドッキリ #本気出してみた #おうちで過ごし隊 #料理", + "create_time": 1591870193, + "author": { + "uid": "6504751690376462338", + "short_id": "2158262365", + "nickname": "伊吹", + "signature": "第2の宮川大輔\nって言われたい。\n相方:よへ PPP STUDIO所属\n⬇️マスク生活、敏感肌にマジでオススメ⬇️", + "avatar_thumb": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "ibukidayo8484", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "JP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + } + ], + "language": "ja", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664853879132161~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664853879132161~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAARSNKTJzHeEPCzXxPBsQye8ZkE-ubi8xP5NjlNlKmd9CYMmgQboHWZTJND088kmyF", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6837030443779493000, + "id_str": "6837030443779492610", + "title": "original sound - 伊吹", + "author": "伊吹", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6837030348572953345.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6837030348572953345.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 42, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6504751690376462338", + "owner_nickname": "伊吹", + "is_original": false, + "mid": "6837030443779492610", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "ibukidayo8484", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 1, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAARSNKTJzHeEPCzXxPBsQye8ZkE-ubi8xP5NjlNlKmd9CYMmgQboHWZTJND088kmyF", + "avatar_thumb": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "16794140", + "cha_name": "ドッキリ", + "desc": "✨ドッキリをかけて友達をびっくりさせよう!✨\n💥💥💥ヒント ❶縦型全画面で投稿 ❷#ドッキり のハッシュタグをつける!❸Instagramにシェアの際は@tiktok_japanをメンションしてね!", + "schema": "aweme://aweme/challenge/detail?cid=16794140", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/16794140?name=%E3%83%89%E3%83%83%E3%82%AD%E3%83%AA&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=16794140", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #ドッキリ Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #ドッキリ Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: ドッキリ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "tiktok-obj/1630595738012674.PNG", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025690000brh05ggq829jaakntmf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025690000brh05ggq829jaakntmf0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025690000brh05ggq829jaakntmf0_h264_540p_1103428", + "data_size": 5912034 + }, + "cover": { + "uri": "large/v0201/7bb3c784ce8045a9a2d953ca18041873_1591870196", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/7bb3c784ce8045a9a2d953ca18041873_1591870196.webp?x-expires=1592658000&x-signature=hLiqQI2lUmSPXWDt3gcnZgWQWPc%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/0e70992e4cab4920a35e7c1a94c343b5_1591870197", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/0e70992e4cab4920a35e7c1a94c343b5_1591870197?x-expires=1592658000&x-signature=uSntMb6PkQ%2FbNDbhlczSUBlwxOo%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/b6a115d28cac40bebf4945faabf467c4_1591870196", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/b6a115d28cac40bebf4945faabf467c4_1591870196.jpeg?x-expires=1592658000&x-signature=5AVEYn0kkZZ7pqNWkKYGlJGgoqA%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025690000brh05ggq829jaakntmf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025690000brh05ggq829jaakntmf0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6154521 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1103428, + "play_addr": { + "uri": "v07025690000brh05ggq829jaakntmf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025690000brh05ggq829jaakntmf0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025690000brh05ggq829jaakntmf0_h264_540p_1103428", + "data_size": 5912034 + }, + "is_h265": 0 + } + ], + "duration": 42863, + "download_suffix_logo_addr": { + "uri": "v07025690000brh05ggq829jaakntmf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025690000brh05ggq829jaakntmf0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6222199 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507430, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025690000brh05ggq829jaakntmf0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025690000brh05ggq829jaakntmf0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":6432466}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6837030410724068609/?region=CN&mid=6837030443779492610&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837030410724068609", + "user_digged": 0, + "statistics": { + "aweme_id": "6837030410724068609", + "comment_count": 1046, + "digg_count": 262761, + "download_count": 1451, + "play_count": 3917312, + "share_count": 3132, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 53 + }, + "status": { + "aweme_id": "6837030410724068609", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 14, + "end": 19, + "type": 1, + "hashtag_name": "ドッキリ", + "hashtag_id": "16794140", + "is_commerce": false + }, + { + "start": 20, + "end": 28, + "type": 1, + "hashtag_name": "本気出してみた", + "hashtag_id": "1615825173018625", + "is_commerce": false + }, + { + "start": 29, + "end": 38, + "type": 1, + "hashtag_name": "おうちで過ごし隊", + "hashtag_id": "1662314533846017", + "is_commerce": false + }, + { + "start": 39, + "end": 42, + "type": 1, + "hashtag_name": "料理", + "hashtag_id": "34567353", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6837030410724068609/?region=CN&mid=6837030443779492610&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837030410724068609", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 伊吹’s video! #TikTok > ", + "share_desc": "Check out 伊吹's video! #TikTok", + "share_title": "Check out 伊吹’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 42863, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6504751690376462000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "JP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837030410724068609", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ja", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485788000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040660A238F43" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ja/resources.arsc b/config.ja/resources.arsc new file mode 100644 index 0000000..449a569 Binary files /dev/null and b/config.ja/resources.arsc differ diff --git a/config.ko/AndroidManifest.xml b/config.ko/AndroidManifest.xml new file mode 100644 index 0000000..f596ba6 Binary files /dev/null and b/config.ko/AndroidManifest.xml differ diff --git a/config.ko/META-INF/BNDLTOOL.RSA b/config.ko/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..f6037e3 Binary files /dev/null and b/config.ko/META-INF/BNDLTOOL.RSA differ diff --git a/config.ko/META-INF/BNDLTOOL.SF b/config.ko/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..46a746c --- /dev/null +++ b/config.ko/META-INF/BNDLTOOL.SF @@ -0,0 +1,14 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: n5MfLtZpmrLERlXzCMEFZiwi8ic= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: APgDYAWIXEDuD5M88hd09DxvlEo= + +Name: assets/i18#lang_ko/default.json +SHA1-Digest: fn+6tcviFYlg768Cgs/8LyIrP/I= + +Name: resources.arsc +SHA1-Digest: f5r2lGEECENkDscCZrn21IHJb7M= + diff --git a/config.ko/META-INF/MANIFEST.MF b/config.ko/META-INF/MANIFEST.MF new file mode 100644 index 0000000..327ef72 --- /dev/null +++ b/config.ko/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: y74W1ck6holgLHCD/H3Nb/I7NYU= + +Name: assets/i18#lang_ko/default.json +SHA1-Digest: 2gMqbWD3eeyRiFaETzfxD4FWtIA= + +Name: resources.arsc +SHA1-Digest: aymDP116p+N1Y0d5Ofbq3Jmv+Zc= + diff --git a/config.ko/assets/i18#lang_ko/default.json b/config.ko/assets/i18#lang_ko/default.json new file mode 100644 index 0000000..5dc3109 --- /dev/null +++ b/config.ko/assets/i18#lang_ko/default.json @@ -0,0 +1,1027 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6839212835831041282", + "desc": "북한이 영상을 처음으로 공개했습니다. 남과 북이 함께 지은 공동연락사무소가 순식간에 잿더미가 됐습니다. #sbsnews #sbs뉴스 #짧뚱뉴스 #틱톡교실 #tlog", + "create_time": 1592378329, + "author": { + "uid": "6750114792810431490", + "short_id": "33153581849", + "nickname": "SBSNEWS", + "signature": "쉽고 친절하고 유익한 뉴스\n🎉 based in Seoul, SOKO 🇰🇷", + "avatar_thumb": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "sbsnews", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "verified account", + "is_ad_fake": false, + "followers_detail": null, + "region": "KR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + } + ], + "language": "ko", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1647977737246722~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1647977737246722~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAJUo4t65sJpwu6HaSOAVbarqZVPb5NwR64L1X5xoVb0v0n8l62QfA3SHij_zLfV1H", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6839212861672148000, + "id_str": "6839212861672147714", + "title": "original sound - SBSNEWS", + "author": "SBSNEWS", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6839212728146594562.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6839212728146594562.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 17, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6750114792810431490", + "owner_nickname": "SBSNEWS", + "is_original": false, + "mid": "6839212861672147714", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "sbsnews", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAJUo4t65sJpwu6HaSOAVbarqZVPb5NwR64L1X5xoVb0v0n8l62QfA3SHij_zLfV1H", + "avatar_thumb": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1630493511180289", + "cha_name": "sbsnews", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1630493511180289", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1630493511180289?name=sbsnews&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1630493511180289", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #sbsnews Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #sbsnews Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: sbsnews", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025130000brks7kclr56b7u9hhskg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025130000brks7kclr56b7u9hhskg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025130000brks7kclr56b7u9hhskg_h264_540p_1376331", + "data_size": 2944318 + }, + "cover": { + "uri": "large/v0201/3e7ce8106d4e409eae287cdf8fb20fbe_1592378332", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/3e7ce8106d4e409eae287cdf8fb20fbe_1592378332.webp?x-expires=1592658000&x-signature=EHGPm%2FXU5mKm5pdezcwRgii0a0w%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/517caaa1530042769219b0db2eb08b0f_1592378332", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/517caaa1530042769219b0db2eb08b0f_1592378332?x-expires=1592658000&x-signature=RNpGHoM0V90ZxBmCBQdl2BTQeOU%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/02816838d51c4e21a106b985310a588c_1592378332", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/02816838d51c4e21a106b985310a588c_1592378332.jpeg?x-expires=1592658000&x-signature=Lxq56UMaGypusZC0tut8bcRfNRw%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025130000brks7kclr56b7u9hhskg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025130000brks7kclr56b7u9hhskg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3054570 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1376331, + "play_addr": { + "uri": "v07025130000brks7kclr56b7u9hhskg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025130000brks7kclr56b7u9hhskg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025130000brks7kclr56b7u9hhskg_h264_540p_1376331", + "data_size": 2944318 + }, + "is_h265": 0 + } + ], + "duration": 17114, + "download_suffix_logo_addr": { + "uri": "v07025130000brks7kclr56b7u9hhskg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025130000brks7kclr56b7u9hhskg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3123276 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507406, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025130000brks7kclr56b7u9hhskg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025130000brks7kclr56b7u9hhskg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3195725}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6839212835831041282/?region=CN&mid=6839212861672147714&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839212835831041282", + "user_digged": 0, + "statistics": { + "aweme_id": "6839212835831041282", + "comment_count": 10271, + "digg_count": 57953, + "download_count": 8852, + "play_count": 2576541, + "share_count": 9793, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 96 + }, + "status": { + "aweme_id": "6839212835831041282", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 58, + "end": 66, + "type": 1, + "hashtag_name": "sbsnews", + "hashtag_id": "1630493511180289", + "is_commerce": false + }, + { + "start": 67, + "end": 73, + "type": 1, + "hashtag_name": "sbs뉴스", + "hashtag_id": "1624266507179009", + "is_commerce": false + }, + { + "start": 74, + "end": 79, + "type": 1, + "hashtag_name": "짧뚱뉴스", + "hashtag_id": "1649268230232065", + "is_commerce": false + }, + { + "start": 80, + "end": 85, + "type": 1, + "hashtag_name": "틱톡교실", + "hashtag_id": "1613565602528258", + "is_commerce": false + }, + { + "start": 86, + "end": 91, + "type": 1, + "hashtag_name": "tlog", + "hashtag_id": "61219889", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6839212835831041282/?region=CN&mid=6839212861672147714&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839212835831041282", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out SBSNEWS’s video! #TikTok > ", + "share_desc": "Check out SBSNEWS's video! #TikTok", + "share_title": "Check out SBSNEWS’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 17114, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6750114792810431000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "KR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6839212835831041282", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ko", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6829867465447574789", + "desc": "First time waxing #familystorytime #waxing #foryou", + "create_time": 1590202441, + "author": { + "uid": "6628808851741425670", + "short_id": "32984000729", + "nickname": "ER Bros", + "signature": "YouTube & Insta: ERBros\nSnapchat: Edallar", + "avatar_thumb": { + "uri": "musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "erbros", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAApiKuEk4GapYrEzfIt5P01LNpr2WfDL6pUu9Wb5voYgWSYQDsh6XracT6EAAQ0ygp", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6758172399012678000, + "id_str": "6758172399012677634", + "title": "Buttercup", + "author": "Jack Stauber", + "album": "Pop Food", + "cover_hd": { + "uri": "tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/82b3651babdfa3a5a0684d34e5530afa.m4a", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/82b3651babdfa3a5a0684d34e5530afa.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 60, + "extra": "{\"reviewed\":1,\"beats\":{\"beats_tracker\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1653592896263175\",\"energy_trace\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1653592867205134\",\"merged_beats\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1653592896319501\",\"audio_effect_onset\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1653592867238925\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1223267132,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6758172399012677634", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1649972657320962", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1649972657320962" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1223267132", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 114, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1636271943174150", + "cha_name": "familystorytime", + "desc": "Every family has a story, so tell us your #FamilyStorytime.", + "schema": "aweme://aweme/challenge/detail?cid=1636271943174150", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1636271943174150?name=familystorytime&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1636271943174150", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #familystorytime Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #familystorytime Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: familystorytime", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/58393bcb5207848af058bed26dee83cf", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044e80000br490a02htni4ko9dl70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br490a02htni4ko9dl70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br490a02htni4ko9dl70_h264_540p_1476305", + "data_size": 10896426 + }, + "cover": { + "uri": "tos-maliva-p-0068/09df5340c45c47368691e36fb9aa1d07", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/09df5340c45c47368691e36fb9aa1d07~noop.webp?x-expires=1592658000&x-signature=%2BAYGldtJimllBRu4GfOn0cdwvn4%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/6235ec728b554023a25835a785f938a8_1590202444", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/6235ec728b554023a25835a785f938a8_1590202444?x-expires=1592658000&x-signature=rilrEXH%2B6d%2Ba%2Flj1OTQ1dK9xPfY%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/37bd685f19e545188eeede42e22f1739_1590202444", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/37bd685f19e545188eeede42e22f1739_1590202444~noop.image?x-expires=1592658000&x-signature=kSu85IHWlAgDDUYzBYrPtpBUkHQ%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044e80000br490a02htni4ko9dl70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br490a02htni4ko9dl70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 11442417 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1476305, + "play_addr": { + "uri": "v09044e80000br490a02htni4ko9dl70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br490a02htni4ko9dl70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br490a02htni4ko9dl70_h264_540p_1476305", + "data_size": 10896426 + }, + "is_h265": 0 + } + ], + "duration": 59047, + "download_suffix_logo_addr": { + "uri": "v09044e80000br490a02htni4ko9dl70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br490a02htni4ko9dl70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 11510642 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507448, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044e80000br490a02htni4ko9dl70\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br490a02htni4ko9dl70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":11883408}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6829867465447574789/?region=CN&mid=6758172399012677634&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829867465447574789", + "user_digged": 0, + "statistics": { + "aweme_id": "6829867465447574789", + "comment_count": 4914, + "digg_count": 919519, + "download_count": 2624, + "play_count": 15341189, + "share_count": 1943, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 39 + }, + "status": { + "aweme_id": "6829867465447574789", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 18, + "end": 34, + "type": 1, + "hashtag_name": "familystorytime", + "hashtag_id": "1636271943174150", + "is_commerce": false + }, + { + "start": 35, + "end": 42, + "type": 1, + "hashtag_name": "waxing", + "hashtag_id": "237700", + "is_commerce": false + }, + { + "start": 43, + "end": 50, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6829867465447574789/?region=CN&mid=6758172399012677634&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829867465447574789", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ER Bros’s video! #TikTok > ", + "share_desc": "Check out ER Bros's video! #TikTok", + "share_title": "Check out ER Bros’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 59047, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6628808851741426000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829867465447574789", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":0,\"end_time\":58966.6667,\"p\":-1,\"y\":259.2133,\"h\":0.1503,\"start_time\":56966.6667,\"r\":0,\"w\":0.8447,\"s\":1}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101152280761E23E7E6" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ko/resources.arsc b/config.ko/resources.arsc new file mode 100644 index 0000000..0379e56 Binary files /dev/null and b/config.ko/resources.arsc differ diff --git a/config.my/AndroidManifest.xml b/config.my/AndroidManifest.xml new file mode 100644 index 0000000..399d1cc Binary files /dev/null and b/config.my/AndroidManifest.xml differ diff --git a/config.my/META-INF/BNDLTOOL.RSA b/config.my/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..b688959 Binary files /dev/null and b/config.my/META-INF/BNDLTOOL.RSA differ diff --git a/config.my/META-INF/BNDLTOOL.SF b/config.my/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..0405846 --- /dev/null +++ b/config.my/META-INF/BNDLTOOL.SF @@ -0,0 +1,20 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: XwGEzwtiJty6keIVM+RgIZSacJk= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: XhvpTusFJ+JnpO0WOtYcJdjbsf0= + +Name: assets/i18#lang_my/default.json +SHA1-Digest: Ae8dGTAevihqNuNSDTsULChKJ/U= + +Name: assets/i18#lang_my/my.json +SHA1-Digest: mA7FPOEFaVmWVaiJ9NQVF7/8858= + +Name: assets/i18#lang_my/th.json +SHA1-Digest: XtI1pLH3RSubVRNY8oSTeHb0Ccg= + +Name: resources.arsc +SHA1-Digest: b3cjqD/FzC+ga/UfdrVJEMiKN/8= + diff --git a/config.my/META-INF/MANIFEST.MF b/config.my/META-INF/MANIFEST.MF new file mode 100644 index 0000000..ca14e74 --- /dev/null +++ b/config.my/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: 1VuDjmPl+Zi3v7GUSR7/uLYmBgY= + +Name: assets/i18#lang_my/default.json +SHA1-Digest: NGKh3jVZGQp69aE9esjlOwlO0x8= + +Name: assets/i18#lang_my/my.json +SHA1-Digest: 1WwDimCrl4eZGt5rdevCFNsWZI8= + +Name: assets/i18#lang_my/th.json +SHA1-Digest: WAYKCwDXwdRQBX6dBlLIde80uq4= + +Name: resources.arsc +SHA1-Digest: iZgGCzKboG2vEimZXCXiK4x8wig= + diff --git a/config.my/assets/i18#lang_my/default.json b/config.my/assets/i18#lang_my/default.json new file mode 100644 index 0000000..680cd0f --- /dev/null +++ b/config.my/assets/i18#lang_my/default.json @@ -0,0 +1,980 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6833693438668557574", + "desc": "", + "create_time": 1591093243, + "author": { + "uid": "22752735", + "short_id": "21456689058", + "nickname": "Than Thar Moe Theint", + "signature": "", + "avatar_thumb": { + "uri": "musically-maliva-obj/1652555829537798", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1652555829537798~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1652555829537798", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1652555829537798~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "thantharmoetheint", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "MM", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1652555829537798", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1652555829537798~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1652555829537798", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1652555829537798~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAPP1FwQsLTlge8reTvi8cBDlfr3PN8gTmBXFy-QZ-6Rw", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831469403498958000, + "id_str": "6831469403498957570", + "title": "original sound - Min Htet Khant", + "author": "Min Htet Khant", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/f0496cf8119fb012399a83c449c01ad9.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/f0496cf8119fb012399a83c449c01ad9.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 24, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6601431827494895622", + "owner_nickname": "Min Htet Khant", + "is_original": false, + "mid": "6831469403498957570", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "minhtetkhant1500", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAvv32tkr4vd0JZ0MPp5As0g8K1-vQjLozbX6g3vztFWCPV1a_FXhLlFEE0qYbRqEQ", + "avatar_thumb": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/ec6790c07fe9b5cc0edfacd53f4eba21.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brb2f4r9if2et9k8iki0_h264_540p_1264720", + "data_size": 2389531 + }, + "cover": { + "uri": "tos-maliva-p-0068/3c2f5d0579ac4c61a7ad8a690abb280b", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/3c2f5d0579ac4c61a7ad8a690abb280b~noop.webp?x-expires=1592658000&x-signature=bqsZlN2Jq6XJ6qB0VQNrRmfPF3o%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/6608d78740b54fe8ad678dbeb2c8bc11_1591093247", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/6608d78740b54fe8ad678dbeb2c8bc11_1591093247?x-expires=1592658000&x-signature=Iq0j1P0re248kdtT9%2F3YKpXI1YA%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/8e0928cf4ba64407930fe9a1118b3f8e_1591093246", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8e0928cf4ba64407930fe9a1118b3f8e_1591093246~noop.image?x-expires=1592658000&x-signature=SCaTY2k%2FHJKKokLOz7OkxjHSjG4%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2479947 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1264720, + "play_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brb2f4r9if2et9k8iki0_h264_540p_1264720", + "data_size": 2389531 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 753451, + "play_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brb2f4r9if2et9k8iki0_h264_540p_753451", + "data_size": 1423552 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 557393, + "play_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brb2f4r9if2et9k8iki0_h264_540p_557393", + "data_size": 1053126 + }, + "is_h265": 0 + } + ], + "duration": 15115, + "download_suffix_logo_addr": { + "uri": "v090444c0000brb2f4r9if2et9k8iki0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2548127 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090444c0000brb2f4r9if2et9k8iki0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brb2f4r9if2et9k8iki0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2620563}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6833693438668557574/?region=CN&mid=6831469403498957570&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833693438668557574", + "user_digged": 0, + "statistics": { + "aweme_id": "6833693438668557574", + "comment_count": 944, + "digg_count": 141384, + "download_count": 9578, + "play_count": 2318836, + "share_count": 3068, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 3 + }, + "status": { + "aweme_id": "6833693438668557574", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6833693438668557574/?region=CN&mid=6831469403498957570&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833693438668557574", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Than Thar Moe Theint’s video! #TikTok > ", + "share_desc": "Check out Than Thar Moe Theint's video! #TikTok", + "share_title": "Check out Than Thar Moe Theint’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15115, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 22752735, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "MM", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6833693438668557574", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6827221044663700742", + "desc": "#sketchers #remix out now!@dripreport", + "create_time": 1589586271, + "author": { + "uid": "6737419732012057606", + "short_id": "45531242208", + "nickname": "Tyga", + "signature": "T-Raww", + "avatar_thumb": { + "uri": "musically-maliva-obj/1649440773080070", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649440773080070~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1649440773080070", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649440773080070~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "tyga", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/1649440773080070", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649440773080070~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1649440773080070", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649440773080070~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAeHfFPnPBnjCA1bTwwwngsfwUiBHWbq-eqEjCH4MqOok4ojlOqQF1rc4KRt6ae1ZQ", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6824313089517701000, + "id_str": "6824313089517701121", + "title": "Skechers (feat. Tyga) (Remix)", + "author": "DripReport & Tyga", + "album": "Skechers (feat. Tyga) (Remix)", + "cover_hd": { + "uri": "tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/f0d1a2e5798f4e3592596fd9470807a7.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/c4fc1b6a0e24517bd0c7b5f77c703f91.m4a", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/c4fc1b6a0e24517bd0c7b5f77c703f91.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 30, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6824313089517701121", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 34, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "394820", + "cha_name": "sketchers", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=394820", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/394820?name=sketchers&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=394820", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #sketchers Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #sketchers Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: sketchers", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449d0000bqviikhsihvdq9mknmcg_h264_540p_2449932", + "data_size": 4408348 + }, + "cover": { + "uri": "tos-maliva-p-0068/ca256c181c094cccbc7a75866f43d307_1589586274", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ca256c181c094cccbc7a75866f43d307_1589586274~noop.webp?x-expires=1592658000&x-signature=O1BK%2FW%2FKAs2slhmS%2FB9Daywdubw%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/66890ed77674482f9d449053a54bb45f_1589586273", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/66890ed77674482f9d449053a54bb45f_1589586273?x-expires=1592658000&x-signature=sFWlKdd%2F2vOxEVPOmfwYDQLWYZo%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/bdaa45e047de4005958ebc92fad719d6_1589586274", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/bdaa45e047de4005958ebc92fad719d6_1589586274~noop.image?x-expires=1592658000&x-signature=%2BxwQ%2BO%2FFiH9dITk5mJ3RiDrdArU%3D&l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4554519 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2449932, + "play_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449d0000bqviikhsihvdq9mknmcg_h264_540p_2449932", + "data_size": 4408348 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1406345, + "play_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449d0000bqviikhsihvdq9mknmcg_h264_540p_1406345", + "data_size": 2530543 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 1016565, + "play_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090449d0000bqviikhsihvdq9mknmcg_h264_540p_1016565", + "data_size": 1829183 + }, + "is_h265": 0 + } + ], + "duration": 14395, + "download_suffix_logo_addr": { + "uri": "v090449d0000bqviikhsihvdq9mknmcg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4623467 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090449d0000bqviikhsihvdq9mknmcg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090449d0000bqviikhsihvdq9mknmcg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4683291}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6827221044663700742/?region=CN&mid=6824313089517701121&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827221044663700742", + "user_digged": 0, + "statistics": { + "aweme_id": "6827221044663700742", + "comment_count": 23427, + "digg_count": 2092742, + "download_count": 15652, + "play_count": 10967289, + "share_count": 26269, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 3750 + }, + "status": { + "aweme_id": "6827221044663700742", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 26, + "end": 37, + "user_id": "6613538952690827270", + "type": 0, + "sec_uid": "MS4wLjABAAAAFkqljjXDF8hzeUXiUUME1tBRKtyc7mP7oPT81J4kanKNn8Smtcmt097ZKEXeMxcT" + }, + { + "start": 0, + "end": 10, + "type": 1, + "hashtag_name": "sketchers", + "hashtag_id": "394820", + "is_commerce": false + }, + { + "start": 11, + "end": 17, + "type": 1, + "hashtag_name": "remix", + "hashtag_id": "5425", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150040561D243EB1" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6827221044663700742/?region=CN&mid=6824313089517701121&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827221044663700742", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Tyga’s video! #TikTok > ", + "share_desc": "Check out Tyga's video! #TikTok", + "share_title": "Check out Tyga’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 14395, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6737419732012058000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6827221044663700742", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101150040561D243EB1" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.my/assets/i18#lang_my/my.json b/config.my/assets/i18#lang_my/my.json new file mode 100644 index 0000000..2ea14d4 --- /dev/null +++ b/config.my/assets/i18#lang_my/my.json @@ -0,0 +1,1505 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6826642661441588482", + "desc": "#zoommyface", + "create_time": 1589451607, + "author": { + "uid": "77105514261684224", + "short_id": "21463362668", + "nickname": "Nadiraisaac", + "signature": "Instagram @nadiraisaac", + "avatar_thumb": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666462649114626.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666462649114626.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "nadiraisaac", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "MY", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "ms", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666462649114626~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666462649114626~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAegJOuW2ezJneXyREEzOIZrfR3e2U8W4BLv9bpwd0QVFVu1EvsCCn0uXzvACj9G5x", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6817319822334922000, + "id_str": "6817319822334921473", + "title": "Cari Mama Muda", + "author": "Bballgntng🚀", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664387989637121.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664387989637121.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 12, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6694206941936141313", + "owner_nickname": "Bballgntng🚀", + "is_original": false, + "mid": "6817319822334921473", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "bballmaniss_2710", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAUxPCq4ZhkyFB_osTlGng3zdurPSQOFyRdJajpzyETdt37775BQqhDsVUqU_PNiqI", + "avatar_thumb": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "81462767", + "cha_name": "zoommyface", + "desc": "which is your cutest expression? Try this trending effect with you!🔥🎬", + "schema": "aweme://aweme/challenge/detail?cid=81462767", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/81462767?name=zoommyface&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=81462767", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #zoommyface Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #zoommyface Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: zoommyface", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/c92e8f2dc4a4b60d2cca43b8a1e247a2", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1952003", + "data_size": 2996813 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/e7193304166d400abe63a6ed69410a3a", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/e7193304166d400abe63a6ed69410a3a.webp?x-expires=1592658000&x-signature=sxA7uoCQzjWDe1CoxuzoE72hcHI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/dceb4cfefcf944548e1ccfd7bb8036cf_1589451609", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/dceb4cfefcf944548e1ccfd7bb8036cf_1589451609?x-expires=1592658000&x-signature=WaZM%2FQAGOQMtZqK5cYETrMcuCbU%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/fe5536f44fe94fa6819f3554440f5209_1589451610", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/fe5536f44fe94fa6819f3554440f5209_1589451610.jpeg?x-expires=1592658000&x-signature=8wlE3UPU1xeOkrrBLLn6m24FuBw%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3048539 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1952003, + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1952003", + "data_size": 2996813 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1054082, + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1054082", + "data_size": 1618280 + }, + "is_h265": 0 + } + ], + "duration": 12282, + "download_suffix_logo_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3106638 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v070256e0000bquhmk5sk0etnap0a9pg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3162561}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6826642661441588482/?region=CN&mid=6817319822334921473&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826642661441588482", + "user_digged": 0, + "statistics": { + "aweme_id": "6826642661441588482", + "comment_count": 1151, + "digg_count": 92703, + "download_count": 7645, + "play_count": 2389579, + "share_count": 5016, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1938 + }, + "status": { + "aweme_id": "6826642661441588482", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 11, + "type": 1, + "hashtag_name": "zoommyface", + "hashtag_id": "81462767", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6826642661441588482/?region=CN&mid=6817319822334921473&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826642661441588482", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Nadiraisaac’s video! #TikTok > ", + "share_desc": "Check out Nadiraisaac's video! #TikTok", + "share_title": "Check out Nadiraisaac’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12282, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 77105514261684220, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "MY", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "stickers": "235261", + "group_id": "6826642661441588482", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "sticker_detail": { + "id": "235261", + "name": "Zoom Me", + "children": null, + "tags": null + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6839407117871664390", + "desc": "😳 Why would somebody do this? 💔 With @trifinn Come back tomorrow for part 2... #kittens", + "create_time": 1592423564, + "author": { + "uid": "6718992235998741510", + "short_id": "44477201384", + "nickname": "SCOTT 🔥 🔥 🔥", + "signature": "😳🔞Ending is on my insta (@tri.scott) ↗️\nFollow for more crazy pranks 😅", + "avatar_thumb": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "tri.scott", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "GB", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAQq58m31S-GAQ7zOvlqwAVJ39xsO_LwHgXYISlxlreKA1mPkDoQVbaBRYNBNKPMAz", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6777935271007619000, + "id_str": "6777935271007619074", + "title": "Surrender", + "author": "Natalie Taylor", + "album": "Surrender", + "cover_hd": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6616921c9a2fb7a099e9872cadc75fb0.m4a", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6616921c9a2fb7a099e9872cadc75fb0.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 60, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218666896392\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218677436429\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218666860551\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218677471245\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6777935271007619074", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656528675791873", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656528675791873" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 107.83, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "17709", + "cha_name": "kittens", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=17709", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/17709?name=kittens&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=17709", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #kittens Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #kittens Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: kittens", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_2706639", + "data_size": 5192349 + }, + "cover": { + "uri": "tos-maliva-p-0068/d0831e54eff64fa4a5bd0d52352de277", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d0831e54eff64fa4a5bd0d52352de277~noop.webp?x-expires=1592658000&x-signature=w3sjgpghqGwkALCxAsdVCwr6QUo%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/dd81511378304c1e973c990dc5f383b7_1592423566", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/dd81511378304c1e973c990dc5f383b7_1592423566?x-expires=1592658000&x-signature=JVi%2BopJ8pIlo9VlyHmH4GxsOVJc%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/d92e9043395645b9a952afd8fbe8a653_1592423568", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d92e9043395645b9a952afd8fbe8a653_1592423568~noop.image?x-expires=1592658000&x-signature=lDbifvE9vrwcVNHm8ub%2FO2%2BgWmE%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5342737 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2706639, + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_2706639", + "data_size": 5192349 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1455703, + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_1455703", + "data_size": 2792586 + }, + "is_h265": 0 + } + ], + "duration": 15347, + "download_suffix_logo_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5413811 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507407, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044e00000brl790gbiapcs9qmj0m0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":5519889}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6839407117871664390/?region=CN&mid=6777935271007619074&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839407117871664390", + "user_digged": 0, + "statistics": { + "aweme_id": "6839407117871664390", + "comment_count": 9173, + "digg_count": 426700, + "download_count": 24115, + "play_count": 9118163, + "share_count": 49199, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 22763 + }, + "status": { + "aweme_id": "6839407117871664390", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 39, + "end": 47, + "user_id": "6718768300996707334", + "type": 0, + "sec_uid": "MS4wLjABAAAA_-Y4Auotwdtok9sC0inkxtv4pOkZfQmZfxt-r_7iNpe_UJ0kvsn2CNAJS-glTroa" + }, + { + "start": 81, + "end": 89, + "type": 1, + "hashtag_name": "kittens", + "hashtag_id": "17709", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6839407117871664390/?region=CN&mid=6777935271007619074&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839407117871664390", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out SCOTT 🔥 🔥 🔥’s video! #TikTok > ", + "share_desc": "Check out SCOTT 🔥 🔥 🔥's video! #TikTok", + "share_title": "Check out SCOTT 🔥 🔥 🔥’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15347, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6718992235998742000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "GB", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6839407117871664390", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-28.2093,\"end_time\":9366.6667,\"p\":-1,\"y\":84.5312,\"h\":0.1105,\"start_time\":7333.3333,\"r\":0,\"w\":0.622,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":0,\"end_time\":2666.6667,\"p\":-1,\"y\":76.0035,\"h\":0.269,\"start_time\":166.6667,\"r\":0,\"w\":0.7569,\"s\":2.3519}]", + "attr": "" + }, + { + "type": 5, + "index": 2, + "track_info": "[{\"x\":-30.4684,\"end_time\":5666.6667,\"p\":-1,\"y\":86.4804,\"h\":0.1664,\"start_time\":2533.3333,\"r\":0,\"w\":0.7111,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 3, + "track_info": "[{\"x\":-117.243,\"end_time\":5633.3333,\"p\":-1,\"y\":186.1506,\"h\":0.1056,\"start_time\":0,\"r\":0,\"w\":0.3854,\"s\":0.9559}]", + "attr": "" + }, + { + "type": 5, + "index": 4, + "track_info": "[{\"x\":70.7108,\"end_time\":13966.6667,\"p\":-1,\"y\":-260.9235,\"h\":0.1068,\"start_time\":6500,\"r\":0,\"w\":0.3898,\"s\":0.9669}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6818716475365264642", + "desc": "눈감는거 진짜 너무 귀엽다구~~💕😆#뽕짝비트", + "create_time": 1587606150, + "author": { + "uid": "6624101169890639873", + "short_id": "31538989017", + "nickname": "최지원(Jiwon)", + "signature": "· 최지원 9살, 최주원 6살 + 아빠, 엄마\n· 관리는 엄마가 합니다.\n- 댓글은 거의 다 봐요❤️\n💖광고문의 soonent@daum.net", + "avatar_thumb": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666369713957890.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666369713957890.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "인기 틱톡커", + "unique_id": "jiw_juw", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "KR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "ko", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666369713957890~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666369713957890~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAADojbrID8PT6JiKZr888cyCGasWbtwo36WTQxRvCuO9rWNh8g5Pqg0ra8T8v09IGb", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6804093117843770000, + "id_str": "6804093117843770118", + "title": "Laxed (Siren Beat)", + "author": "Jawsh 685", + "album": "Laxed (Siren Beat)", + "cover_hd": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"apple_song_id\":1509920512,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353615373\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349662733\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353668615\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349691399\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6804093117843770118", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1509920512", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 71, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1664466174753794", + "cha_name": "뽕짝비트", + "desc": "🤛⬆️ (뽕짝) 🤜⬆️ (뽕짝) ✋⬆️🤚~~~🎵\n왠지 모르게 흥얼흥얼 콧노래가 나올 것 같은 뽕짝한 음악에 맞춰 #뽕짝비트 춤춰 보자! 🙆", + "schema": "aweme://aweme/challenge/detail?cid=1664466174753794", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1664466174753794?name=%EB%BD%95%EC%A7%9D%EB%B9%84%ED%8A%B8&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664466174753794", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #뽕짝비트 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #뽕짝비트 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 뽕짝비트", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025680000bqgf50c1a8b4ss0b7c70_h264_540p_805327", + "data_size": 1521565 + }, + "cover": { + "uri": "large/v0201/400c2d6b7ea24ea08061f99f857f63ba", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/400c2d6b7ea24ea08061f99f857f63ba.webp?x-expires=1592658000&x-signature=%2FwP0ZuC9xfqb1hLNZ9k6NZXWphE%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/4facabbe1c7e47a38f3449f8ee87020a_1587606154", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/4facabbe1c7e47a38f3449f8ee87020a_1587606154?x-expires=1592658000&x-signature=8ho06DZsoPkkTx6G5RRfOzMmYLI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/9c2ee2057d67416eae254f830b8c2523_1587606153", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/9c2ee2057d67416eae254f830b8c2523_1587606153.jpeg?x-expires=1592658000&x-signature=5MX4E1%2FnmUO3qDkZMth2h07d2BI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1627831 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 805327, + "play_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025680000bqgf50c1a8b4ss0b7c70_h264_540p_805327", + "data_size": 1521565 + }, + "is_h265": 0 + } + ], + "duration": 15115, + "download_suffix_logo_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1696449 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507407, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025680000bqgf50c1a8b4ss0b7c70\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1767018}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6818716475365264642/?region=CN&mid=6804093117843770118&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6818716475365264642", + "user_digged": 0, + "statistics": { + "aweme_id": "6818716475365264642", + "comment_count": 5488, + "digg_count": 488650, + "download_count": 4472, + "play_count": 6334744, + "share_count": 7925, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2447 + }, + "status": { + "aweme_id": "6818716475365264642", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 21, + "end": 26, + "type": 1, + "hashtag_name": "뽕짝비트", + "hashtag_id": "1664466174753794", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6818716475365264642/?region=CN&mid=6804093117843770118&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6818716475365264642", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 최지원(Jiwon)’s video! #TikTok > ", + "share_desc": "Check out 최지원(Jiwon)'s video! #TikTok", + "share_title": "Check out 최지원(Jiwon)’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15115, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6624101169890640000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "KR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6818716475365264642", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ko", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485792000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309510101152280680E23F803" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.my/assets/i18#lang_my/th.json b/config.my/assets/i18#lang_my/th.json new file mode 100644 index 0000000..83ce3b2 --- /dev/null +++ b/config.my/assets/i18#lang_my/th.json @@ -0,0 +1,1081 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838989854651485445", + "desc": "🤣 Follow to see more @baileyhall208 #foryou #trend #fyp #foryoupage #funny #viral", + "create_time": 1592326411, + "author": { + "uid": "6793978522702791685", + "short_id": "47173227664", + "nickname": "Mv Ryhan", + "signature": "Follow me\n I love my Followers \n⬇️ New Video ❤❤❤", + "avatar_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mvryhan", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "FR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAy80UAaf4ccYNfiPoSagJ03zHVxAzuDHkIb_oFsw51qLVHNEsv1ijPVWp_a-wbIkr", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6838989845474463000, + "id_str": "6838989845474462470", + "title": "original sound - Mv Ryhan", + "author": "Mv Ryhan", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838989826637777669.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838989826637777669.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6793978522702791685", + "owner_nickname": "Mv Ryhan", + "is_original": false, + "mid": "6838989845474462470", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mvryhan", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAy80UAaf4ccYNfiPoSagJ03zHVxAzuDHkIb_oFsw51qLVHNEsv1ijPVWp_a-wbIkr", + "avatar_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "42164", + "cha_name": "foryou", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=42164", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/42164?name=foryou&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=42164", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_1518534", + "data_size": 2481475 + }, + "cover": { + "uri": "tos-maliva-p-0068/cdcd6c3c20de4c158019b5fbccb28fb9_1592326415", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/cdcd6c3c20de4c158019b5fbccb28fb9_1592326415~noop.webp?x-expires=1592658000&x-signature=Uo6Y4fTYJNUoMR3Wnc3bTX%2BraPQ%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/ea083abdde704eadbee181c5d843fdf5_1592326414", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/ea083abdde704eadbee181c5d843fdf5_1592326414?x-expires=1592658000&x-signature=tJk15Mxn02eVNWnAMew7bZ4KTgY%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/03eb30d15bb54b18a4ef295d73972013_1592326414", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/03eb30d15bb54b18a4ef295d73972013_1592326414~noop.image?x-expires=1592658000&x-signature=FkwOgtJzb44GerKsurdQiJWrDYE%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2475571 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1518534, + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_1518534", + "data_size": 2481475 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 715348, + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_715348", + "data_size": 1168969 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 441226, + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_441226", + "data_size": 721019 + }, + "is_h265": 0 + } + ], + "duration": 13073, + "download_suffix_logo_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2544442 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044100000brkfhm3r1j8791lvp99g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2621941}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6838989854651485445/?region=CN&mid=6838989845474462470&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838989854651485445", + "user_digged": 0, + "statistics": { + "aweme_id": "6838989854651485445", + "comment_count": 576, + "digg_count": 191156, + "download_count": 2485, + "play_count": 12915467, + "share_count": 6929, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1879 + }, + "status": { + "aweme_id": "6838989854651485445", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 22, + "end": 36, + "user_id": "6735556032577881093", + "type": 0, + "sec_uid": "MS4wLjABAAAANOTqdMGVuOoGGkkXiS8tf7Uy6e7QZArJm1_CFw1MO5ByWo4HyTFhkNpQ1vB0OGj3" + }, + { + "start": 37, + "end": 44, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 45, + "end": 51, + "type": 1, + "hashtag_name": "trend", + "hashtag_id": "44895", + "is_commerce": false + }, + { + "start": 52, + "end": 56, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 57, + "end": 68, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 69, + "end": 75, + "type": 1, + "hashtag_name": "funny", + "hashtag_id": "5424", + "is_commerce": false + }, + { + "start": 76, + "end": 82, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6838989854651485445/?region=CN&mid=6838989845474462470&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838989854651485445", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Mv Ryhan’s video! #TikTok > ", + "share_desc": "Check out Mv Ryhan's video! #TikTok", + "share_title": "Check out Mv Ryhan’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13073, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6793978522702792000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "FR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838989854651485445", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6836943379440487682", + "desc": "คิดถึง@san_tarclaus @grace7831 @arnon605ac @james2233443 @kiw.z @ponlawad", + "create_time": 1591849930, + "author": { + "uid": "6564259654394150914", + "short_id": "2179731474", + "nickname": "ปอม ปาร์คเกอร์🙈💕", + "signature": "FB ปอม ปาร์คเกอร์\nIG. Pomparker3\nติดต่องาน LINE pomparker2", + "avatar_thumb": { + "uri": "tiktok-obj/1665388543455234", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1665388543455234.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1665388543455234", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1665388543455234.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "pomparker3", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "TH", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + } + ], + "language": "th", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1665388543455234", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1665388543455234~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1665388543455234", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1665388543455234~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAq43Jz--Oqgq1DHjZnqYeQmsH3dznXw9WScanRWWn7VzggL-XykjWOKuuO_oF-77m", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6815239209398439000, + "id_str": "6815239209398438658", + "title": "original sound - ดีเจบอล จี๊ดจ๊าด", + "author": "ดีเจบอล จี๊ดจ๊าด", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663878261097474.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663878261097474.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 40, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6525717943756898305", + "owner_nickname": "ดีเจบอล จี๊ดจ๊าด", + "is_original": false, + "mid": "6815239209398438658", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "djball", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAHFMjQ1p1Wiy7EJCDEYyYb_ewdsaplrlEKfp1H6emAjmZuk99v866L1UXC1x5xP7V", + "avatar_thumb": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000brgr6qscsjqp7hcmsjl0_h264_540p_1837857", + "data_size": 2357512 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/4a44e377e5fb4eb7ad010c7c3151440c", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/4a44e377e5fb4eb7ad010c7c3151440c.webp?x-expires=1592658000&x-signature=CRdb2AERV7zKTje5T5o%2BLuKGnBM%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "height": 540, + "width": 960, + "dynamic_cover": { + "uri": "v0201/8e7adeacfa094379b675902890aacf2d_1591849933", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/8e7adeacfa094379b675902890aacf2d_1591849933?x-expires=1592658000&x-signature=%2F9a5MjFfPmgvokSYxq%2FJP93Y35k%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/4926007cfc3e455ca4887399987443bf_1591849933", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/4926007cfc3e455ca4887399987443bf_1591849933.jpeg?x-expires=1592658000&x-signature=J7ibCXpIiQ49JASqc%2B3A%2FntbGf4%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2438374 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1837857, + "play_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000brgr6qscsjqp7hcmsjl0_h264_540p_1837857", + "data_size": 2357512 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1037060, + "play_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000brgr6qscsjqp7hcmsjl0_h264_540p_1037060", + "data_size": 1330289 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 727853, + "play_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000brgr6qscsjqp7hcmsjl0_h264_540p_727853", + "data_size": 933654 + }, + "is_h265": 0 + } + ], + "duration": 10262, + "download_suffix_logo_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2509981 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025080000brgr6qscsjqp7hcmsjl0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2611025}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6836943379440487682/?region=CN&mid=6815239209398438658&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836943379440487682", + "user_digged": 0, + "statistics": { + "aweme_id": "6836943379440487682", + "comment_count": 2574, + "digg_count": 874583, + "download_count": 47392, + "play_count": 10476804, + "share_count": 27266, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 295 + }, + "status": { + "aweme_id": "6836943379440487682", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 6, + "end": 19, + "user_id": "6546550942689984513", + "type": 0, + "sec_uid": "MS4wLjABAAAAcOiI8gwz4B-zCzN17BtFFTyceP8pZUpgljgZECUO7Ym3fXdDCcawiSOteZTlsyYW" + }, + { + "start": 20, + "end": 30, + "user_id": "6513356778670178306", + "type": 0, + "sec_uid": "MS4wLjABAAAAP6RB6oDgJFMQzNYym--vnl0FRE280xgqDBvznfDzib1jVH4OoH65HPtFSN17GVh-" + }, + { + "start": 31, + "end": 42, + "user_id": "80569407300", + "type": 0, + "sec_uid": "MS4wLjABAAAAb6_J4bkp-x8W_2jziEK0MSxGoCrfexQyV6rC49ZQAAw" + }, + { + "start": 43, + "end": 56, + "user_id": "6578620797504733185", + "type": 0, + "sec_uid": "MS4wLjABAAAALdkN1jtmPnOXNDdE06vJewMrubrmSY9Yq45kBGlObzanl1yJ5VAcyCAZxHBNAd_U" + }, + { + "start": 57, + "end": 63, + "user_id": "6533772710082183170", + "type": 0, + "sec_uid": "MS4wLjABAAAAZAgnVUtkxbRkidcBiSvmH3c2ATA96jheVaeU8qc42YxnvE8yPcb7aPcK0XLT4w6a" + }, + { + "start": 64, + "end": 73, + "user_id": "85258329080", + "type": 0, + "sec_uid": "MS4wLjABAAAALGWVUv1RkGJ9VaTutlZFXD6a1_Cr8FzFxXrEZ0YE3_0" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6836943379440487682/?region=CN&mid=6815239209398438658&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836943379440487682", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ปอม ปาร์คเกอร์🙈💕’s video! #TikTok > ", + "share_desc": "Check out ปอม ปาร์คเกอร์🙈💕's video! #TikTok", + "share_title": "Check out ปอม ปาร์คเกอร์🙈💕’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10262, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6564259654394151000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "TH", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836943379440487682", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "th", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309490101152280700523DB58" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.my/resources.arsc b/config.my/resources.arsc new file mode 100644 index 0000000..23ed76b Binary files /dev/null and b/config.my/resources.arsc differ diff --git a/config.pt/AndroidManifest.xml b/config.pt/AndroidManifest.xml new file mode 100644 index 0000000..3d0ce9f Binary files /dev/null and b/config.pt/AndroidManifest.xml differ diff --git a/config.pt/META-INF/BNDLTOOL.RSA b/config.pt/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..9f3ca17 Binary files /dev/null and b/config.pt/META-INF/BNDLTOOL.RSA differ diff --git a/config.pt/META-INF/BNDLTOOL.SF b/config.pt/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..87f6efc --- /dev/null +++ b/config.pt/META-INF/BNDLTOOL.SF @@ -0,0 +1,23 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: pJY2BljAHofGXMtLtCmicU27eS8= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: AHxV+f3+/iCBQSYSQYMHNvt96Ko= + +Name: assets/i18#lang_pt/ao.json +SHA1-Digest: 5Y51Ihx7tCiL2T00EqG4uKOB0rk= + +Name: assets/i18#lang_pt/default.json +SHA1-Digest: pyHmCeICHDiHcFjLiKw9laSdO6I= + +Name: assets/i18#lang_pt/pt.json +SHA1-Digest: G6G+tzqKGboYXnJeEJlV/WYK0Lk= + +Name: assets/i18#lang_pt/us.json +SHA1-Digest: MeaevjoCMZWDGdYlXyl4DXWRcbk= + +Name: resources.arsc +SHA1-Digest: 2HDyz5Q6lDUa0ruLcBcHA89Vx7s= + diff --git a/config.pt/META-INF/MANIFEST.MF b/config.pt/META-INF/MANIFEST.MF new file mode 100644 index 0000000..145e955 --- /dev/null +++ b/config.pt/META-INF/MANIFEST.MF @@ -0,0 +1,22 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: LFNQDp6hYyvRIWHKQY66AkZUuEo= + +Name: assets/i18#lang_pt/ao.json +SHA1-Digest: h2+xBqkuFMIcygY03dUDX/eSK4c= + +Name: assets/i18#lang_pt/default.json +SHA1-Digest: SIoFXgpNaKUaHjlG6qvLAHYjzmk= + +Name: assets/i18#lang_pt/pt.json +SHA1-Digest: mXyeCUt6rf92Qczb70keTWzY1qQ= + +Name: assets/i18#lang_pt/us.json +SHA1-Digest: dAsKbeyfIsx2YRmwQFI9qIDP8oM= + +Name: resources.arsc +SHA1-Digest: HkGCMuvv6Sb8XqZ6yK3decY8/Tk= + diff --git a/config.pt/assets/i18#lang_pt/ao.json b/config.pt/assets/i18#lang_pt/ao.json new file mode 100644 index 0000000..b89c28a --- /dev/null +++ b/config.pt/assets/i18#lang_pt/ao.json @@ -0,0 +1,1005 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6818876465820503302", + "desc": "", + "create_time": 1587643398, + "author": { + "uid": "6796649850018087941", + "short_id": "47313383528", + "nickname": "Neide Sofia", + "signature": "Cantora", + "avatar_thumb": { + "uri": "musically-maliva-obj/1659597668094981", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659597668094981~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1659597668094981", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659597668094981~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "neidesofiacriola", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AO", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151761331223D1B7" + ], + "width": 720, + "height": 720 + } + ], + "language": "pt", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1659597668094981", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659597668094981~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1659597668094981", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659597668094981~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAQPqbpZYhuOw1AzbD25mj1mux83_xFsUMzFntWu_MeAHmyd-7p_Gadztg0txoVuEh", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6815753558504394000, + "id_str": "6815753558504393478", + "title": "original sound - chefona_anene", + "author": "user1224303022619", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1660634390676486", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660634390676486~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1660634390676486", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660634390676486~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1660634390676486", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1660634390676486~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1660634390676486", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660634390676486~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1664002965698566.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1664002965698566.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6798534928704799749", + "owner_nickname": "user1224303022619", + "is_original": false, + "mid": "6815753558504393478", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "chefona_anene", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAGsAYO_54_oFsFSWIz7CVc3yjvETi2xL8aMzawbS4s5ZNsi9gOyobAAdVRN7EZPbh", + "avatar_thumb": { + "uri": "musically-maliva-obj/1660634390676486", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660634390676486~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1660634390676486", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1660634390676486~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1660634390676486", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660634390676486~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044990000bqgo7kqasdpvcipnvn1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044990000bqgo7kqasdpvcipnvn1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044990000bqgo7kqasdpvcipnvn1g_h264_540p_1251074", + "data_size": 1485026 + }, + "cover": { + "uri": "tos-maliva-p-0068/921fd87b1daa407d916797234b41112f", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/921fd87b1daa407d916797234b41112f~noop.webp?x-expires=1592658000&x-signature=yLMb4Rwp%2B%2BxtdWaXCoGjP0%2FL%2BEg%3D&l=202006181309470101151761331223D1B7" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/0c94f5df0c364216ad3ce06d09de9849_1587643400", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/0c94f5df0c364216ad3ce06d09de9849_1587643400?x-expires=1592658000&x-signature=016tqcJx4hdD0PYh6zYLiTZEQPo%3D&l=202006181309470101151761331223D1B7" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/af443f989631478c98e4fdbd3afb6385_1587643399", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/af443f989631478c98e4fdbd3afb6385_1587643399~noop.image?x-expires=1592658000&x-signature=uyC7lpbEwnXEKZ3vjY5EbFaGS5o%3D&l=202006181309470101151761331223D1B7" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044990000bqgo7kqasdpvcipnvn1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044990000bqgo7kqasdpvcipnvn1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1535372 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 721316, + "play_addr": { + "uri": "v09044990000bqgo7kqasdpvcipnvn1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044990000bqgo7kqasdpvcipnvn1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044990000bqgo7kqasdpvcipnvn1g_h264_540p_721316", + "data_size": 856203 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 523593, + "play_addr": { + "uri": "v09044990000bqgo7kqasdpvcipnvn1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044990000bqgo7kqasdpvcipnvn1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044990000bqgo7kqasdpvcipnvn1g_h264_540p_523593", + "data_size": 621506 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 424441, + "play_addr": { + "uri": "v09044990000bqgo7kqasdpvcipnvn1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044990000bqgo7kqasdpvcipnvn1g&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044990000bqgo7kqasdpvcipnvn1g_h264_480p_424441", + "data_size": 503812 + }, + "is_h265": 0 + } + ], + "duration": 9496, + "download_suffix_logo_addr": { + "uri": "v09044990000bqgo7kqasdpvcipnvn1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044990000bqgo7kqasdpvcipnvn1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1602430 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044990000bqgo7kqasdpvcipnvn1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044990000bqgo7kqasdpvcipnvn1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1631544}}\n" + }, + "share_url": "https://m.tiktok.com/v/6818876465820503302.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6818876465820503302", + "user_digged": 0, + "statistics": { + "aweme_id": "6818876465820503302", + "comment_count": 431, + "digg_count": 28651, + "download_count": 4392, + "play_count": 618391, + "share_count": 3009, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1618 + }, + "status": { + "aweme_id": "6818876465820503302", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151761331223D1B7" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6818876465820503302.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6818876465820503302", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Neide Sofia’s video! #TikTok > ", + "share_desc": "Check out Neide Sofia's video! #TikTok", + "share_title": "Check out Neide Sofia’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9496, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6796649850018088000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AO", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6818876465820503302", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":0,\"end_time\":9433.3333,\"p\":null,\"y\":-305.2384,\"h\":0.1453,\"start_time\":0,\"r\":-10.6159,\"w\":0.9649,\"s\":1.4521}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":-99.7664,\"end_time\":9433.3333,\"p\":null,\"y\":31.88,\"h\":0.3878,\"start_time\":0,\"r\":0,\"w\":0.7593,\"s\":3.8761}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151761331223D1B7" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309470101151761331223D1B7" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309470101151761331223D1B7" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309470101151761331223D1B7" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 201287, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_480p_201287", + "data_size": 257069 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575904, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151761331223D1B7" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"308743\",\"mv_info\":{\"id\":\"308743\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101151761331223D1B7" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.pt/assets/i18#lang_pt/default.json b/config.pt/assets/i18#lang_pt/default.json new file mode 100644 index 0000000..3aedc58 --- /dev/null +++ b/config.pt/assets/i18#lang_pt/default.json @@ -0,0 +1,950 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6835651089350659334", + "desc": "essa foi boa", + "create_time": 1591549044, + "author": { + "uid": "6815211500962350085", + "short_id": "48449150912", + "nickname": "Edy é Top Produções", + "signature": "Proprietário na Empresa Edy é Top Produções e Eventos \nTwitter \n@edyprod", + "avatar_thumb": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "edyetopproducoeseeventos", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "BR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101150040711424015D" + ], + "width": 720, + "height": 720 + } + ], + "language": "pt", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA3EQKN6GCZR0jjnWbjk9YrQ8-KBY8YwASkqEXW51Bjh0NXdaQXmwtjA8cAM2sq9ep", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6835651196661845000, + "id_str": "6835651196661844742", + "title": "original sound - edyetopproducoeseeventos", + "author": "Edy é Top Produções", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6835651212793088773.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6835651212793088773.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 10, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6815211500962350085", + "owner_nickname": "Edy é Top Produções", + "is_original": false, + "mid": "6835651196661844742", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "edyetopproducoeseeventos", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAA3EQKN6GCZR0jjnWbjk9YrQ8-KBY8YwASkqEXW51Bjh0NXdaQXmwtjA8cAM2sq9ep", + "avatar_thumb": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5fbc781ef24e7fb2258ef85e78dd2340~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v090442d0000brehop14uh3sj5135p2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brehop14uh3sj5135p2g&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090442d0000brehop14uh3sj5135p2g_h264_480p_427570", + "data_size": 536174 + }, + "cover": { + "uri": "tos-maliva-p-0068/8c1739ad8ec04f589bcbc75ac16325af", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8c1739ad8ec04f589bcbc75ac16325af~noop.webp?x-expires=1592658000&x-signature=3iwKPh%2FnCfKNStc%2FzmDMf0FM%2FAI%3D&l=202006181309510101150040711424015D" + ], + "width": 720, + "height": 720 + }, + "height": 720, + "width": 400, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/50804622db2f438480c01a97abfaaf4d_1591549046", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/50804622db2f438480c01a97abfaaf4d_1591549046?x-expires=1592658000&x-signature=Pa787QA%2BFCBLhJqEWTCRIj23smc%3D&l=202006181309510101150040711424015D" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/02a4e5ab05cd4b169c8527988498501b_1591549046", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/02a4e5ab05cd4b169c8527988498501b_1591549046~noop.image?x-expires=1592658000&x-signature=EKRtR8TQuE36kJ5pf%2Blwuv2h0Ps%3D&l=202006181309510101150040711424015D" + ], + "width": 720, + "height": 720 + }, + "ratio": "480p", + "download_addr": { + "uri": "v090442d0000brehop14uh3sj5135p2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brehop14uh3sj5135p2g&line=0&ratio=480p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 636680 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_480", + "quality_type": 30, + "bit_rate": 427570, + "play_addr": { + "uri": "v090442d0000brehop14uh3sj5135p2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brehop14uh3sj5135p2g&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090442d0000brehop14uh3sj5135p2g_h264_480p_427570", + "data_size": 536174 + }, + "is_h265": 0 + } + ], + "duration": 10032, + "is_h265": 0, + "cdn_url_expired": 1592507402, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090442d0000brehop14uh3sj5135p2g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brehop14uh3sj5135p2g&line=0&ratio=480p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":662858}}\n" + }, + "share_url": "https://m.tiktok.com/v/6835651089350659334.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835651089350659334", + "user_digged": 0, + "statistics": { + "aweme_id": "6835651089350659334", + "comment_count": 7295, + "digg_count": 621118, + "download_count": 214548, + "play_count": 14222686, + "share_count": 176604, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 162129 + }, + "status": { + "aweme_id": "6835651089350659334", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101150040711424015D" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6835651089350659334.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835651089350659334", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Edy é Top Produções’s video! #TikTok > ", + "share_desc": "Check out Edy é Top Produções's video! #TikTok", + "share_title": "Check out Edy é Top Produções’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10032, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6815211500962350000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "BR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6835651089350659334", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "pt", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101150040711424015D" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309510101150040711424015D" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309510101150040711424015D" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309510101150040711424015D" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507402, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575910, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101150040711424015D" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309389\",\"mv_info\":{\"id\":\"309389\",\"name\":\"Exposição Dupla\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485793000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309510101150040711424015D" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.pt/assets/i18#lang_pt/pt.json b/config.pt/assets/i18#lang_pt/pt.json new file mode 100644 index 0000000..962c2d9 --- /dev/null +++ b/config.pt/assets/i18#lang_pt/pt.json @@ -0,0 +1,1125 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6834515004344028421", + "desc": "Quando o vês a dar like na foto de uma gaja #memedocaixão #fyp #foryourpage", + "create_time": 1591284530, + "author": { + "uid": "6785174508669076485", + "short_id": "46857757784", + "nickname": "barbaraflorim", + "signature": "22 ✨ Portugal 🇵🇹", + "avatar_thumb": { + "uri": "musically-maliva-obj/8e155f486cfdd45212cbf131b03e5c0f", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/8e155f486cfdd45212cbf131b03e5c0f~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/8e155f486cfdd45212cbf131b03e5c0f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/8e155f486cfdd45212cbf131b03e5c0f~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "barbaraflorim", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PT", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181310080101150040561F23FB85" + ], + "width": 720, + "height": 720 + } + ], + "language": "pt", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/8e155f486cfdd45212cbf131b03e5c0f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/8e155f486cfdd45212cbf131b03e5c0f~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/8e155f486cfdd45212cbf131b03e5c0f", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/8e155f486cfdd45212cbf131b03e5c0f~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAQ6ZiZpxl7ZJXw64wcWN1qMLMLvLcWkAHXS_STwSkDCXSNcF-6BF4ONM6t3O7CMOp", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6819731463714508000, + "id_str": "6819731463714507521", + "title": "original sound - gdaestrings", + "author": "Ziyad", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1663605795407874", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1663605795407874.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1663605795407874", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1663605795407874.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1663605795407874", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1663605795407874.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1663605795407874", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1663605795407874.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b5fc56ebbe06d753a8ba24fafb31ade0.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b5fc56ebbe06d753a8ba24fafb31ade0.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6790995290515325953", + "owner_nickname": "Ziyad", + "is_original": false, + "mid": "6819731463714507521", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "gdaestrings", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAqAGiIybC4fvMJJ8qbpIDHGrfL_LBeZUT6z_0-Q8c9TiAk8qX9BciegqKgcJG39w6", + "avatar_thumb": { + "uri": "tiktok-obj/1663605795407874", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1663605795407874.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1663605795407874", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1663605795407874.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1663605795407874", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1663605795407874.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1662821345869830", + "cha_name": "memedocaixão", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1662821345869830", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1662821345869830.html?name=memedocaix%C3%A3o&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1662821345869830", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #memedocaixão Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #memedocaixão Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: memedocaixão", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044ac0000brch6b37mt2ud4oatvo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brch6b37mt2ud4oatvo0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brch6b37mt2ud4oatvo0_h264_540p_840057", + "data_size": 1382419 + }, + "cover": { + "uri": "tos-maliva-p-0068/d76186990e7a4466b9d7f52c663316ff_1591284531", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d76186990e7a4466b9d7f52c663316ff_1591284531~noop.webp?x-expires=1592658000&x-signature=pLJcn0NFhiTTXEUtrv5k3R13nFo%3D&l=202006181310080101150040561F23FB85" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/f2522f4f26334e85af38f1098e9a6950_1591284532", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/f2522f4f26334e85af38f1098e9a6950_1591284532?x-expires=1592658000&x-signature=iHgL6G8z1GEOXAQkM9VmKPPq6vw%3D&l=202006181310080101150040561F23FB85" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/6dc3247e09d24369b186cde30f159847_1591284531", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/6dc3247e09d24369b186cde30f159847_1591284531~noop.image?x-expires=1592658000&x-signature=9OA2T%2B9MiN8GWke3AbkEqXGUVL0%3D&l=202006181310080101150040561F23FB85" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044ac0000brch6b37mt2ud4oatvo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brch6b37mt2ud4oatvo0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1492843 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 840057, + "play_addr": { + "uri": "v09044ac0000brch6b37mt2ud4oatvo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brch6b37mt2ud4oatvo0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brch6b37mt2ud4oatvo0_h264_540p_840057", + "data_size": 1382419 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 461464, + "play_addr": { + "uri": "v09044ac0000brch6b37mt2ud4oatvo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brch6b37mt2ud4oatvo0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brch6b37mt2ud4oatvo0_h264_540p_461464", + "data_size": 759397 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 321488, + "play_addr": { + "uri": "v09044ac0000brch6b37mt2ud4oatvo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brch6b37mt2ud4oatvo0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000brch6b37mt2ud4oatvo0_h264_540p_321488", + "data_size": 529049 + }, + "is_h265": 0 + } + ], + "duration": 13165, + "download_suffix_logo_addr": { + "uri": "v09044ac0000brch6b37mt2ud4oatvo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000brch6b37mt2ud4oatvo0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1561284 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507422 + }, + "share_url": "https://m.tiktok.com/v/6834515004344028421.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834515004344028421", + "user_digged": 0, + "statistics": { + "aweme_id": "6834515004344028421", + "comment_count": 82, + "digg_count": 18866, + "download_count": 991, + "play_count": 534487, + "share_count": 1530, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 794 + }, + "status": { + "aweme_id": "6834515004344028421", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 44, + "end": 57, + "type": 1, + "hashtag_name": "memedocaixão", + "hashtag_id": "1662821345869830", + "is_commerce": false + }, + { + "start": 58, + "end": 62, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 63, + "end": 75, + "type": 1, + "hashtag_name": "foryourpage", + "hashtag_id": "1598498371111942", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181310080101150040561F23FB85" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834515004344028421.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834515004344028421", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out barbaraflorim’s video! #TikTok > ", + "share_desc": "Check out barbaraflorim's video! #TikTok", + "share_title": "Check out barbaraflorim’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13165, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6785174508669076000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PT", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6834515004344028421", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "pt", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":0,\"end_time\":13111.6667,\"p\":-1,\"y\":-233.2885,\"h\":0.121,\"start_time\":0,\"r\":0,\"w\":0.6606,\"s\":0.7443}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6817819101101083909", + "desc": "love you jaan 😘💖💖#lifebuoykarona #handschallenge #gharbethoindia #janatacarfuew #foryou #trending #foryoupage #tiktok__india", + "create_time": 1587397210, + "author": { + "uid": "6716011340114576385", + "short_id": "33408122529", + "nickname": "jannat Jamirul", + "signature": "how are you all 💞\n♥️ like and follow ♥️\n💖 support me 😘💖", + "avatar_thumb": { + "uri": "musically-maliva-obj/1662315359590406", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662315359590406~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1662315359590406", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662315359590406~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "jannatjamirul786", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "IN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181310080101150040561F23FB85" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1662315359590406", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662315359590406~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1662315359590406", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662315359590406~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAzF7hmazZsy7PlbTe9G6HuqOfNhcgmgpH-bkRY77LA-EHoC0-xPCcLDfv7llGkhSs", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6813149742814498000, + "id_str": "6813149742814497537", + "title": "original sound - sonu_shonki", + "author": "Sonu Shonki", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663368859499537.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663368859499537.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 16, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6761228520758379522", + "owner_nickname": "Sonu Shonki", + "is_original": false, + "mid": "6813149742814497537", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "sonu_shonki", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAmZDZHqXmViJYBCnrjZBXiSpQ0FK2sQBxBwV-gSxS8dqaDXENbUDBNpkcdA8O9KbH", + "avatar_thumb": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1661957136212993", + "cha_name": "LifebuoyKarona", + "desc": "#LifebuoyKarona to wash your hands like a Boss. \nSpread the word, not germs. \n\nTag 3 Friends and make the good habit of handwashing viral.", + "schema": "aweme://aweme/challenge/detail?cid=1661957136212993&is_commerce=1", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1661957136212993.html?name=LifebuoyKarona&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1661957136212993", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #LifebuoyKarona Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #LifebuoyKarona Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: LifebuoyKarona", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 1, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": true, + "hashtag_profile": "musically-maliva-obj/202003249cc6e2ab7d5e11ba47edadac", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044560000bqes3u07di7422d208og", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044560000bqes3u07di7422d208og&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044560000bqes3u07di7422d208og_h264_540p_457819", + "data_size": 584693 + }, + "cover": { + "uri": "tos-maliva-p-0068/b4336e58c7ce48589f74b8c48e6ec4cf", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b4336e58c7ce48589f74b8c48e6ec4cf~noop.webp?x-expires=1592658000&x-signature=%2F%2BxdyeYgSFVLZ8seZ4XfepWpKgc%3D&l=202006181310080101150040561F23FB85" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/b72e6289e83d494384d430aba5ce9cd7_1587397216", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/b72e6289e83d494384d430aba5ce9cd7_1587397216?x-expires=1592658000&x-signature=yb7LWje1UVy%2Bo2CdZ%2FEB6YUY8Fk%3D&l=202006181310080101150040561F23FB85" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/ee3e4d3fa636415ab869e33263714da7_1587397212", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ee3e4d3fa636415ab869e33263714da7_1587397212~noop.image?x-expires=1592658000&x-signature=jJduy4XNvzDXEjajypkYjsZ8rj0%3D&l=202006181310080101150040561F23FB85" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044560000bqes3u07di7422d208og", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044560000bqes3u07di7422d208og&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 682363 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 457819, + "play_addr": { + "uri": "v09044560000bqes3u07di7422d208og", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044560000bqes3u07di7422d208og&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044560000bqes3u07di7422d208og_h264_540p_457819", + "data_size": 584693 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 266464, + "play_addr": { + "uri": "v09044560000bqes3u07di7422d208og", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044560000bqes3u07di7422d208og&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044560000bqes3u07di7422d208og_h264_540p_266464", + "data_size": 340309 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 192909, + "play_addr": { + "uri": "v09044560000bqes3u07di7422d208og", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044560000bqes3u07di7422d208og&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044560000bqes3u07di7422d208og_h264_540p_192909", + "data_size": 246369 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v09044560000bqes3u07di7422d208og", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044560000bqes3u07di7422d208og&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 751407 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507419 + }, + "share_url": "https://m.tiktok.com/v/6817819101101083909.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6817819101101083909", + "user_digged": 0, + "statistics": { + "aweme_id": "6817819101101083909", + "comment_count": 10, + "digg_count": 5941, + "download_count": 5600, + "play_count": 242680, + "share_count": 3407, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2695 + }, + "status": { + "aweme_id": "6817819101101083909", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 20, + "end": 35, + "type": 1, + "hashtag_name": "lifebuoykarona", + "hashtag_id": "1661957136212993", + "is_commerce": true + }, + { + "start": 36, + "end": 51, + "type": 1, + "hashtag_name": "handschallenge", + "hashtag_id": "4947803", + "is_commerce": false + }, + { + "start": 52, + "end": 67, + "type": 1, + "hashtag_name": "gharbethoindia", + "hashtag_id": "1661974509674498", + "is_commerce": false + }, + { + "start": 68, + "end": 82, + "type": 1, + "hashtag_name": "janatacarfuew", + "hashtag_id": "1661761240437761", + "is_commerce": false + }, + { + "start": 83, + "end": 90, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 91, + "end": 100, + "type": 1, + "hashtag_name": "trending", + "hashtag_id": "20105", + "is_commerce": false + }, + { + "start": 101, + "end": 112, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 113, + "end": 127, + "type": 1, + "hashtag_name": "tiktok__india", + "hashtag_id": "1607767787749382", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181310080101150040561F23FB85" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6817819101101083909.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6817819101101083909", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out jannat Jamirul’s video! #TikTok > ", + "share_desc": "Check out jannat Jamirul's video! #TikTok", + "share_title": "Check out jannat Jamirul’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6716011340114576385,\"author_country\":\"Saudi Arabia\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6716011340114576000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "SA", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6817819101101083909", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "hi", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309389\",\"mv_info\":{\"id\":\"309389\",\"name\":\"Exposição Dupla\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485810000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181310080101150040561F23FB85" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.pt/assets/i18#lang_pt/us.json b/config.pt/assets/i18#lang_pt/us.json new file mode 100644 index 0000000..cc1939c --- /dev/null +++ b/config.pt/assets/i18#lang_pt/us.json @@ -0,0 +1,1194 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837284920138697990", + "desc": "When she knows you too well @jenafrumes", + "create_time": 1591929459, + "author": { + "uid": "21609287", + "short_id": "21758544594", + "nickname": "Jason Derulo", + "signature": "IG: jasonderulo\nSavage Love OUT NOW", + "avatar_thumb": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "jasonderulo", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1656115901452294~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAC5mIlEsDQSlfaWV6PSINVnfJOJz-eGhbAffi9TDrURw", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6795008547961753000, + "id_str": "6795008547961752326", + "title": "Ultra Instinct", + "author": "AdamDevito", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6631791650333310981", + "owner_nickname": "AdamDevito", + "is_original": false, + "mid": "6795008547961752326", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "adamdevito", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhZfDfpjGD4wtumUrvXYWkXyptLg3ojx-QJLuFcKmJLuC7-_lWU3BWB7kH2U00Egz", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "cover": { + "uri": "tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462~noop.webp?x-expires=1592658000&x-signature=6dByh3utXF%2FtkxCOsraCGeNMHfI%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463?x-expires=1592658000&x-signature=u%2FP4vH0drvWb83WYAkNu27hTMio%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461~noop.image?x-expires=1592658000&x-signature=iSC%2Bii7l2mOHRif%2F9nm64AmEL%2B4%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2112636 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1924466, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1076800, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1076800", + "data_size": 1131313 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 763213, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_763213", + "data_size": 801851 + }, + "is_h265": 0 + } + ], + "duration": 8405, + "download_suffix_logo_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2181877 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507396, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brhekmc45u0f2vn03o5g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2238071}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "user_digged": 0, + "statistics": { + "aweme_id": "6837284920138697990", + "comment_count": 23400, + "digg_count": 5665744, + "download_count": 77381, + "play_count": 59110271, + "share_count": 136584, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 35030 + }, + "status": { + "aweme_id": "6837284920138697990", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 28, + "end": 39, + "user_id": "8021707", + "type": 0, + "sec_uid": "MS4wLjABAAAAQ7HxcSD0aFjrh-8XtCI7p5Fz5oqF1Iuxd_gU81_Y_sw" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Jason Derulo’s video! #TikTok > ", + "share_desc": "Check out Jason Derulo's video! #TikTok", + "share_title": "Check out Jason Derulo’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8405, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 21609287, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837284920138697990", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6829682692141927682", + "desc": "Spread the Word Of God ❤️ #xyzbca #fyp #viral #christian #makethisviral #christianlife #bible #JesusChrist #foryoupage#motivationph", + "create_time": 1590159420, + "author": { + "uid": "6806009756420867074", + "short_id": "34475225769", + "nickname": "🔱 Julian 🔱", + "signature": "TRY EVERYTHING ✊🏻❤️\nTeamYacult 🇵🇭", + "avatar_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "theboynextdoor17", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PH", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/f55c32a9831d751451d9ef0401eac582~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/f55c32a9831d751451d9ef0401eac582~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAISzScRJu4ca1DBwV0Uz0uDF1ya3fH57Uto0AYKk-H9M4gx5GzfeNmam5b1eHg-UQ", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6829682715177127000, + "id_str": "6829682715177126658", + "title": "original sound - theboynextdoor17", + "author": "🔱 Julian 🔱", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/244e3c5d284fb5c92fb259f8085f0d30.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/244e3c5d284fb5c92fb259f8085f0d30.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 59, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6806009756420867074", + "owner_nickname": "🔱 Julian 🔱", + "is_original": false, + "mid": "6829682715177126658", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "theboynextdoor17", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAISzScRJu4ca1DBwV0Uz0uDF1ya3fH57Uto0AYKk-H9M4gx5GzfeNmam5b1eHg-UQ", + "avatar_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1652484531221509", + "cha_name": "xyzbca", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1652484531221509", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1652484531221509.html?name=xyzbca&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1652484531221509", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #xyzbca Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #xyzbca Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: xyzbca", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_406634", + "data_size": 3001419 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/57e398ba015844eb9d0ddd9f649bad9d", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/57e398ba015844eb9d0ddd9f649bad9d.webp?x-expires=1592658000&x-signature=7z6fr0EM45xTOD0J2qcG0QV5pmY%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/a3232cc88b2b49108181bfadf713e093_1590159424", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/a3232cc88b2b49108181bfadf713e093_1590159424?x-expires=1592658000&x-signature=Vc%2FR9%2FXp%2F4W9bXTFBUTFLWeda8I%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/37684e30819e4a939384d4d25f7fd2b7_1590159423", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/37684e30819e4a939384d4d25f7fd2b7_1590159423.jpeg?x-expires=1592658000&x-signature=BhIptB7SUNUSmbCA3xuGuYy51wE%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6283469 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 406634, + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_406634", + "data_size": 3001419 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 281182, + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_281182", + "data_size": 2075441 + }, + "is_h265": 0 + } + ], + "duration": 59049, + "download_suffix_logo_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6347309 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507447, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v070256f0000br3udca8kv9o4hm5eg3g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":6611241}}\n" + }, + "share_url": "https://m.tiktok.com/v/6829682692141927682.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829682692141927682", + "user_digged": 0, + "statistics": { + "aweme_id": "6829682692141927682", + "comment_count": 247279, + "digg_count": 2154633, + "download_count": 85515, + "play_count": 7985990, + "share_count": 309395, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 5520 + }, + "status": { + "aweme_id": "6829682692141927682", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 26, + "end": 33, + "type": 1, + "hashtag_name": "xyzbca", + "hashtag_id": "1652484531221509", + "is_commerce": false + }, + { + "start": 34, + "end": 38, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 39, + "end": 45, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + }, + { + "start": 46, + "end": 56, + "type": 1, + "hashtag_name": "christian", + "hashtag_id": "46249", + "is_commerce": false + }, + { + "start": 57, + "end": 71, + "type": 1, + "hashtag_name": "makethisviral", + "hashtag_id": "335768", + "is_commerce": false + }, + { + "start": 72, + "end": 86, + "type": 1, + "hashtag_name": "christianlife", + "hashtag_id": "272517", + "is_commerce": false + }, + { + "start": 87, + "end": 93, + "type": 1, + "hashtag_name": "bible", + "hashtag_id": "10593", + "is_commerce": false + }, + { + "start": 94, + "end": 106, + "type": 1, + "hashtag_name": "JesusChrist", + "hashtag_id": "8521", + "is_commerce": false + }, + { + "start": 107, + "end": 118, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 118, + "end": 131, + "type": 1, + "hashtag_name": "motivationph", + "hashtag_id": "1656355848758273", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6829682692141927682.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829682692141927682", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 🔱 Julian 🔱’s video! #TikTok > ", + "share_desc": "Check out 🔱 Julian 🔱's video! #TikTok", + "share_title": "Check out 🔱 Julian 🔱’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 59049, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6806009756420867074,\"author_country\":\"Philippines\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6806009756420867000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PH", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829682692141927682", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-56.6667,\"end_time\":7100,\"p\":-1,\"y\":-259.9467,\"h\":0.091,\"start_time\":4666.6667,\"r\":0,\"w\":0.5936,\"s\":0.8849}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":-69.1741,\"end_time\":7633.3333,\"p\":-1,\"y\":92.5157,\"h\":0.0975,\"start_time\":6300,\"r\":0,\"w\":0.5004,\"s\":0.6445}]", + "attr": "" + }, + { + "type": 5, + "index": 2, + "track_info": "[{\"x\":44.88,\"end_time\":7333.3333,\"p\":-1,\"y\":10.6106,\"h\":0.0727,\"start_time\":5566.6667,\"r\":0,\"w\":0.6366,\"s\":0.7075}]", + "attr": "" + }, + { + "type": 5, + "index": 3, + "track_info": "[{\"x\":0,\"end_time\":2833.3333,\"p\":-1,\"y\":-244.7608,\"h\":0.1413,\"start_time\":0,\"r\":0,\"w\":0.8289,\"s\":0.9338}]", + "attr": "" + }, + { + "type": 5, + "index": 4, + "track_info": "[{\"x\":-1.8056,\"end_time\":10000,\"p\":-1,\"y\":128.4765,\"h\":0.1287,\"start_time\":8600,\"r\":0,\"w\":0.7731,\"s\":1.2517}]", + "attr": "" + }, + { + "type": 5, + "index": 5, + "track_info": "[{\"x\":43.1009,\"end_time\":16066.6667,\"p\":-1,\"y\":-1.1269,\"h\":0.0989,\"start_time\":14900,\"r\":0,\"w\":0.6277,\"s\":0.9623}]", + "attr": "" + }, + { + "type": 5, + "index": 6, + "track_info": "[{\"x\":-67.6883,\"end_time\":14800,\"p\":-1,\"y\":-51.4412,\"h\":0.1098,\"start_time\":12866.6667,\"r\":0,\"w\":0.5611,\"s\":0.7573}]", + "attr": "" + }, + { + "type": 5, + "index": 7, + "track_info": "[{\"x\":0,\"end_time\":19900,\"p\":-1,\"y\":-182.2443,\"h\":0.1222,\"start_time\":18133.3333,\"r\":0,\"w\":0.7868,\"s\":0.8434}]", + "attr": "" + }, + { + "type": 5, + "index": 8, + "track_info": "[{\"x\":1.8676,\"end_time\":17833.3333,\"p\":-1,\"y\":-263.4976,\"h\":0.1267,\"start_time\":16266.6667,\"r\":0,\"w\":0.7734,\"s\":0.8744}]", + "attr": "" + }, + { + "type": 5, + "index": 9, + "track_info": "[{\"x\":0,\"end_time\":21166.6667,\"p\":-1,\"y\":-155.2009,\"h\":0.1577,\"start_time\":20000,\"r\":0,\"w\":0.7674,\"s\":1.0425}]", + "attr": "" + }, + { + "type": 5, + "index": 10, + "track_info": "[{\"x\":-18.7926,\"end_time\":25000,\"p\":-1,\"y\":-206.074,\"h\":0.1387,\"start_time\":23966.6667,\"r\":0,\"w\":0.814,\"s\":0.8982}]", + "attr": "" + }, + { + "type": 5, + "index": 11, + "track_info": "[{\"x\":7.9925,\"end_time\":27466.6667,\"p\":-1,\"y\":113.0216,\"h\":0.1177,\"start_time\":25566.6667,\"r\":0,\"w\":0.6277,\"s\":0.7778}]", + "attr": "" + }, + { + "type": 5, + "index": 12, + "track_info": "[{\"x\":0,\"end_time\":33133.3333,\"p\":-1,\"y\":-105.1051,\"h\":0.1945,\"start_time\":29900,\"r\":0,\"w\":0.9415,\"s\":1.0225}]", + "attr": "" + }, + { + "type": 5, + "index": 13, + "track_info": "[{\"x\":-2.5062,\"end_time\":49466.6667,\"p\":-1,\"y\":-231.806,\"h\":0.1351,\"start_time\":35566.6667,\"r\":0,\"w\":0.7709,\"s\":0.8928}]", + "attr": "" + }, + { + "type": 5, + "index": 14, + "track_info": "[{\"x\":-115.5485,\"end_time\":50000,\"p\":-1,\"y\":-288.1337,\"h\":0.0999,\"start_time\":33000,\"r\":0,\"w\":0.4511,\"s\":1.0027}]", + "attr": "" + }, + { + "type": 5, + "index": 15, + "track_info": "[{\"x\":0,\"end_time\":12733.3333,\"p\":-1,\"y\":-247.28,\"h\":0.1697,\"start_time\":10433.3333,\"r\":0,\"w\":0.7301,\"s\":0.8495}]", + "attr": "" + }, + { + "type": 5, + "index": 16, + "track_info": "[{\"x\":-2.5,\"end_time\":49833.3333,\"p\":-1,\"y\":-174.28,\"h\":0.1265,\"start_time\":39366.6667,\"r\":0,\"w\":0.7439,\"s\":0.8365}]", + "attr": "" + }, + { + "type": 5, + "index": 17, + "track_info": "[{\"x\":0,\"end_time\":49633.3333,\"p\":-1,\"y\":-110.5673,\"h\":0.137,\"start_time\":46400,\"r\":0,\"w\":0.8027,\"s\":0.9059}]", + "attr": "" + }, + { + "type": 5, + "index": 18, + "track_info": "[{\"x\":28.3888,\"end_time\":53566.6667,\"p\":-1,\"y\":-45.7408,\"h\":0.1406,\"start_time\":52166.6667,\"r\":0,\"w\":0.8441,\"s\":0.9298}]", + "attr": "" + }, + { + "type": 5, + "index": 19, + "track_info": "[{\"x\":-58.9199,\"end_time\":52300,\"p\":-1,\"y\":-182.3874,\"h\":0.1358,\"start_time\":50666.6667,\"r\":0,\"w\":0.6862,\"s\":0.9373}]", + "attr": "" + }, + { + "type": 5, + "index": 20, + "track_info": "[{\"x\":-5.6135,\"end_time\":56133.3333,\"p\":-1,\"y\":89.1711,\"h\":0.1558,\"start_time\":53866.6667,\"r\":0,\"w\":0.7726,\"s\":1.5632}]", + "attr": "" + }, + { + "type": 5, + "index": 21, + "track_info": "[{\"x\":-48.9282,\"end_time\":23233.3333,\"p\":-1,\"y\":-13.2555,\"h\":0.1332,\"start_time\":21333.3333,\"r\":0,\"w\":0.7328,\"s\":0.8807}]", + "attr": "" + }, + { + "type": 5, + "index": 22, + "track_info": "[{\"x\":40.0669,\"end_time\":29633.3333,\"p\":-1,\"y\":-113.6177,\"h\":0.1343,\"start_time\":27800,\"r\":0,\"w\":0.7314,\"s\":0.8876}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040561C23DEA0" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.pt/resources.arsc b/config.pt/resources.arsc new file mode 100644 index 0000000..22aa8c5 Binary files /dev/null and b/config.pt/resources.arsc differ diff --git a/config.ru/AndroidManifest.xml b/config.ru/AndroidManifest.xml new file mode 100644 index 0000000..84eb634 Binary files /dev/null and b/config.ru/AndroidManifest.xml differ diff --git a/config.ru/META-INF/BNDLTOOL.RSA b/config.ru/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..290692a Binary files /dev/null and b/config.ru/META-INF/BNDLTOOL.RSA differ diff --git a/config.ru/META-INF/BNDLTOOL.SF b/config.ru/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..ee898d7 --- /dev/null +++ b/config.ru/META-INF/BNDLTOOL.SF @@ -0,0 +1,41 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: haQ8eaGGQ++i5H/Px09aw/xSulI= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: AvOQtakyc9Gh2nEpSlUs9KXECtI= + +Name: assets/i18#lang_ru/am.json +SHA1-Digest: A4QNEwj0KVjFLJS20ZgKTJ4A6Z4= + +Name: assets/i18#lang_ru/az.json +SHA1-Digest: PDXQbfjGCslpdjpx1EwsSnqgXv4= + +Name: assets/i18#lang_ru/by.json +SHA1-Digest: bIjrF9acd/5OE2T7poofcpIIR90= + +Name: assets/i18#lang_ru/default.json +SHA1-Digest: BCIWUksfT4GQyVo/z0wSQpr8+c0= + +Name: assets/i18#lang_ru/ge.json +SHA1-Digest: 7R4SURlhPks5JOTzxeu5v0+r6OE= + +Name: assets/i18#lang_ru/kg.json +SHA1-Digest: yLg/qpyB4HmLEDu1rBi2+tjPTOE= + +Name: assets/i18#lang_ru/kz.json +SHA1-Digest: pjCUVHDqi/icQjnYqOcRJvW3rwQ= + +Name: assets/i18#lang_ru/md.json +SHA1-Digest: Um7ppiimpNvBOhaCo3jxTWPtgSY= + +Name: assets/i18#lang_ru/ua.json +SHA1-Digest: hkjwYCPfSlQ38up3s8AjyD30IKU= + +Name: assets/i18#lang_ru/uz.json +SHA1-Digest: S6q5H7AXd+DkieLaInI+p4xdJnc= + +Name: resources.arsc +SHA1-Digest: czu8cwZadFfFL+9aU7Kpwy/MXPI= + diff --git a/config.ru/META-INF/MANIFEST.MF b/config.ru/META-INF/MANIFEST.MF new file mode 100644 index 0000000..e64c05c --- /dev/null +++ b/config.ru/META-INF/MANIFEST.MF @@ -0,0 +1,40 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: CjcIUtk2saqDpR/Kd8zjQT33iM4= + +Name: assets/i18#lang_ru/am.json +SHA1-Digest: sgFl0mgqv0x7rdFV9kj9D9JgW2U= + +Name: assets/i18#lang_ru/az.json +SHA1-Digest: DNF3QSDsmFNunf3IWrQiLhnN78I= + +Name: assets/i18#lang_ru/by.json +SHA1-Digest: 2evoBgKK8cv+H2HmtIfjKKUYVq8= + +Name: assets/i18#lang_ru/default.json +SHA1-Digest: dJ6Qu3P+d5v8byS/ESxVcgjm2A4= + +Name: assets/i18#lang_ru/ge.json +SHA1-Digest: KuC1AhxFGhB51l+tedcfIvAuewM= + +Name: assets/i18#lang_ru/kg.json +SHA1-Digest: N+pJz9cmHMfhlak9oAy0wqZszv0= + +Name: assets/i18#lang_ru/kz.json +SHA1-Digest: Ufd1Y7SNa2VDBhRk7pjXhYInYYY= + +Name: assets/i18#lang_ru/md.json +SHA1-Digest: mVSqfwl2g6Z8Yhcr+MoDdT3EO8g= + +Name: assets/i18#lang_ru/ua.json +SHA1-Digest: CkQ/lhiuQDBp41k2xhJeJTz4Gog= + +Name: assets/i18#lang_ru/uz.json +SHA1-Digest: 2OzaiH0Kh5rzDSJc1iI1FYBB31A= + +Name: resources.arsc +SHA1-Digest: eInRCnj+tbyUcuJm8Kgdn1RfJO8= + diff --git a/config.ru/assets/i18#lang_ru/am.json b/config.ru/assets/i18#lang_ru/am.json new file mode 100644 index 0000000..69ab6e9 --- /dev/null +++ b/config.ru/assets/i18#lang_ru/am.json @@ -0,0 +1,1005 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6836304401766960389", + "desc": "Մինչև վերջ նայեք😂😂😂Բորիսենկոն ոնցա ընկնում😂😂😂😂", + "create_time": 1591701156, + "author": { + "uid": "6632717564277424129", + "short_id": "45551487864", + "nickname": "mariamaleqsanyan", + "signature": "Actress | Tv Host", + "avatar_thumb": { + "uri": "musically-maliva-obj/1649324648887302", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1649324648887302~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1649324648887302", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649324648887302~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mariamaleqsanyan97", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AM", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813095101011522807118239E2F" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1649324648887302", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649324648887302~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1649324648887302", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649324648887302~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA1Bzqa5ZwvccvS0wp8kePYgdKz5BhvBTfANUKVJEGVNb0-R3EpZGhz_FSalDYc4-g", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6819996087378529000, + "id_str": "6819996087378529030", + "title": "original sound - kolyntarz", + "author": "Michał Stuglik ❤️🔒", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/ec9df28fb685937dcd3f98cc4c7758ef.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/ec9df28fb685937dcd3f98cc4c7758ef.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "254689232223649792", + "owner_nickname": "Michał Stuglik ❤️🔒", + "is_original": false, + "mid": "6819996087378529030", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "kolyntarz", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAThu5fqxrMpTtyUx5BvQy2zcoPALX9DIaW9Axo-CU1d8xbX02Cw7IpYmt_XiQsrb6", + "avatar_thumb": { + "uri": "musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/4c0dea0cb19076247b3f3a5e6771008a~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044190000brfmspj9if262b3p2lug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brfmspj9if262b3p2lug&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000brfmspj9if262b3p2lug_h264_540p_2697661", + "data_size": 3037567 + }, + "cover": { + "uri": "tos-maliva-p-0068/b08cd05888da4bf39613cad620bebdcf_1591701157", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b08cd05888da4bf39613cad620bebdcf_1591701157~noop.webp?x-expires=1592658000&x-signature=18juP5uoCBiAT5g61CwLkCDITQQ%3D&l=2020061813095101011522807118239E2F" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/e6dd507534564d37a53413790d41ce9a_1591701158", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/e6dd507534564d37a53413790d41ce9a_1591701158?x-expires=1592658000&x-signature=bT%2FymhvKZgK4gmpHYoN8RYeCxjE%3D&l=2020061813095101011522807118239E2F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/2e297fa883534f62996ec1730888ba1d_1591701157", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/2e297fa883534f62996ec1730888ba1d_1591701157~noop.image?x-expires=1592658000&x-signature=9joI8JJ1S91ueQZ3PyNY6wA9j2Q%3D&l=2020061813095101011522807118239E2F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044190000brfmspj9if262b3p2lug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brfmspj9if262b3p2lug&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3134875 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2697661, + "play_addr": { + "uri": "v09044190000brfmspj9if262b3p2lug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brfmspj9if262b3p2lug&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000brfmspj9if262b3p2lug_h264_540p_2697661", + "data_size": 3037567 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1629771, + "play_addr": { + "uri": "v09044190000brfmspj9if262b3p2lug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brfmspj9if262b3p2lug&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000brfmspj9if262b3p2lug_h264_540p_1629771", + "data_size": 1835123 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 1137840, + "play_addr": { + "uri": "v09044190000brfmspj9if262b3p2lug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brfmspj9if262b3p2lug&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000brfmspj9if262b3p2lug_h264_540p_1137840", + "data_size": 1281208 + }, + "is_h265": 0 + } + ], + "duration": 9008, + "download_suffix_logo_addr": { + "uri": "v09044190000brfmspj9if262b3p2lug", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000brfmspj9if262b3p2lug&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3245792 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400 + }, + "share_url": "https://m.tiktok.com/v/6836304401766960389.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836304401766960389", + "user_digged": 0, + "statistics": { + "aweme_id": "6836304401766960389", + "comment_count": 168, + "digg_count": 18726, + "download_count": 226, + "play_count": 249437, + "share_count": 167, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 32 + }, + "status": { + "aweme_id": "6836304401766960389", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813095101011522807118239E2F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6836304401766960389.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836304401766960389", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out mariamaleqsanyan’s video! #TikTok > ", + "share_desc": "Check out mariamaleqsanyan's video! #TikTok", + "share_title": "Check out mariamaleqsanyan’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9008, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6632717564277424000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AM", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836304401766960389", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "hy", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6831875556313730305", + "desc": "pr tumhy kbi nhi (S💖)#standwithkashmir #tranding#viral_video #foryou", + "create_time": 1590669987, + "author": { + "uid": "6750681135086306306", + "short_id": "33162949305", + "nickname": "#Qůĕěñ👑Š💝", + "signature": "Don't let someone who dont know your value tell you how much you're worth💯👑", + "avatar_thumb": { + "uri": "tiktok-obj/d7d06f37b21ae87d4db3632c9bc7a26f", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/d7d06f37b21ae87d4db3632c9bc7a26f.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/d7d06f37b21ae87d4db3632c9bc7a26f", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/d7d06f37b21ae87d4db3632c9bc7a26f.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "saher_hayyat_02", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813095101011522807118239E2F" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/d7d06f37b21ae87d4db3632c9bc7a26f", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/d7d06f37b21ae87d4db3632c9bc7a26f~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/d7d06f37b21ae87d4db3632c9bc7a26f", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/d7d06f37b21ae87d4db3632c9bc7a26f~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAIOrzDn4aQ_4r_zVWWSbBhrGiEuMgMK1qiFJ5OsQPkb-Uy3f_W1v_PYShaGUYmlHu", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6821154157257362000, + "id_str": "6821154157257362177", + "title": "original sound - sonu_shonki", + "author": "Sonu Shonki", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/cc0548e768a64ac5c44b5409b787c897.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/cc0548e768a64ac5c44b5409b787c897.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 12, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6761228520758379522", + "owner_nickname": "Sonu Shonki", + "is_original": false, + "mid": "6821154157257362177", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "sonu_shonki", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAmZDZHqXmViJYBCnrjZBXiSpQ0FK2sQBxBwV-gSxS8dqaDXENbUDBNpkcdA8O9KbH", + "avatar_thumb": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1664286351092737", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664286351092737.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1624626732781573", + "cha_name": "standwithkashmir", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1624626732781573", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1624626732781573.html?name=standwithkashmir&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1624626732781573", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #standwithkashmir Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #standwithkashmir Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: standwithkashmir", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044ac0000br7r4oq91d8lb54mhtj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br7r4oq91d8lb54mhtj0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000br7r4oq91d8lb54mhtj0_h264_540p_402828", + "data_size": 514462 + }, + "cover": { + "uri": "tos-maliva-p-0068/49517d6c4d1b41b3b4ec92aab1656fd7", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/49517d6c4d1b41b3b4ec92aab1656fd7~noop.webp?x-expires=1592658000&x-signature=uSD9moy%2FJzsiKpd1%2Bit61R98Hr4%3D&l=2020061813095101011522807118239E2F" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/0556460fc1d848ee97ffde8cdc6c82f6_1590669991", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/0556460fc1d848ee97ffde8cdc6c82f6_1590669991?x-expires=1592658000&x-signature=gpzK6sIU1myhY4AgWjve2lR9PDQ%3D&l=2020061813095101011522807118239E2F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/bce6015eb8cc4de3940953215d683479_1590669991", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/bce6015eb8cc4de3940953215d683479_1590669991~noop.image?x-expires=1592658000&x-signature=9ai%2FMNgjRaKGOMvirA9VOamiQeg%3D&l=2020061813095101011522807118239E2F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044ac0000br7r4oq91d8lb54mhtj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br7r4oq91d8lb54mhtj0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 605877 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 402828, + "play_addr": { + "uri": "v09044ac0000br7r4oq91d8lb54mhtj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br7r4oq91d8lb54mhtj0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000br7r4oq91d8lb54mhtj0_h264_540p_402828", + "data_size": 514462 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 243413, + "play_addr": { + "uri": "v09044ac0000br7r4oq91d8lb54mhtj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br7r4oq91d8lb54mhtj0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000br7r4oq91d8lb54mhtj0_h264_540p_243413", + "data_size": 310869 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 181454, + "play_addr": { + "uri": "v09044ac0000br7r4oq91d8lb54mhtj0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br7r4oq91d8lb54mhtj0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044ac0000br7r4oq91d8lb54mhtj0_h264_540p_181454", + "data_size": 231740 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "is_h265": 0, + "cdn_url_expired": 1592507402, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044ac0000br7r4oq91d8lb54mhtj0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044ac0000br7r4oq91d8lb54mhtj0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":668270}}\n" + }, + "share_url": "https://m.tiktok.com/v/6831875556313730305.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831875556313730305", + "user_digged": 0, + "statistics": { + "aweme_id": "6831875556313730305", + "comment_count": 68, + "digg_count": 22729, + "download_count": 11336, + "play_count": 328901, + "share_count": 5175, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 4497 + }, + "status": { + "aweme_id": "6831875556313730305", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 23, + "end": 40, + "type": 1, + "hashtag_name": "standwithkashmir", + "hashtag_id": "1624626732781573", + "is_commerce": false + }, + { + "start": 41, + "end": 50, + "type": 1, + "hashtag_name": "tranding", + "hashtag_id": "470640", + "is_commerce": false + }, + { + "start": 50, + "end": 62, + "type": 1, + "hashtag_name": "viral_video", + "hashtag_id": "84715653", + "is_commerce": false + }, + { + "start": 63, + "end": 70, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813095101011522807118239E2F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6831875556313730305.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831875556313730305", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out #Qůĕěñ👑Š💝’s video! #TikTok > ", + "share_desc": "Check out #Qůĕěñ👑Š💝's video! #TikTok", + "share_title": "Check out #Qůĕěñ👑Š💝’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6750681135086306306,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6750681135086306000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6831875556313730305", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "hi", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309377\",\"mv_info\":{\"id\":\"309377\",\"name\":\"Двойной взрыв\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485793000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813095101011522807118239E2F" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ru/assets/i18#lang_ru/az.json b/config.ru/assets/i18#lang_ru/az.json new file mode 100644 index 0000000..c8cdbd7 --- /dev/null +++ b/config.ru/assets/i18#lang_ru/az.json @@ -0,0 +1,1232 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6831918397899410694", + "desc": "@tutu__1994 yemeye 2 günlük zeher 😂😂😀😀 #tiktokazerbaycan #tiktokazeri #tiktokaze #ilkinmemmedov #azerbaycantiktok #azeritiktok #azeri #aze #az", + "create_time": 1590679961, + "author": { + "uid": "6608127282740609030", + "short_id": "31543769648", + "nickname": "ⒾⓁⓀⒾⓃ ⓂⒺⓂⓂⒺⒹⓄⓋ", + "signature": "ⓈⒶⓁⒶⓂ ⒹⓄⓈⓉⓁⒶⓇ ⓈⒺⒽⒾⒻⒺⓂⒺ ⓍⓄⓈ ⒼⒺⓁⒹⒾⓃⒾⓏ ⓋⒾⒹⒺⓄⓁⒶⓇⒾ ⒷⒺⓎⒺⓃⓂⒺⓎⒾ ⓊⓃⓊⓉⓂⒶⓎⒾⓃ", + "avatar_thumb": { + "uri": "musically-maliva-obj/2476e97b00383ed356eb886e15869920", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2476e97b00383ed356eb886e15869920~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2476e97b00383ed356eb886e15869920", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2476e97b00383ed356eb886e15869920~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "ilkin.memmedov", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AZ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1639872819084293", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1639872819084293" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 1, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/2476e97b00383ed356eb886e15869920", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2476e97b00383ed356eb886e15869920~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2476e97b00383ed356eb886e15869920", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2476e97b00383ed356eb886e15869920~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAABtYQzHsfAvAPfoVfjPvqmS7EGhJwqiriwgJ1hiT0GqpT_Fb7b7p-AhxHwxY9J6py", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6827802506911911000, + "id_str": "6827802506911910661", + "title": "original sound - tural_nesirov_1985", + "author": "Tural Nəsirov", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/05da80ec2e5ad4ee54a7b8e5338a8a3e.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/05da80ec2e5ad4ee54a7b8e5338a8a3e.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6657328640390496261", + "owner_nickname": "Tural Nəsirov", + "is_original": false, + "mid": "6827802506911910661", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "tural_nesirov_1985", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAedbGUY1JqxC_QQmYX1lxM3ELjIzuVJfm9CfHtY52iwJExYOuBazfZawt0HOVbdrP", + "avatar_thumb": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1609252033545221", + "cha_name": "tiktokazerbaycan", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1609252033545221", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1609252033545221.html?name=tiktokazerbaycan&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1609252033545221", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #tiktokazerbaycan Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #tiktokazerbaycan Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: tiktokazerbaycan", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br7tilfdee91gqsohu90_h264_540p_1462332", + "data_size": 1719155 + }, + "cover": { + "uri": "tos-maliva-p-0068/c358075fab9f4660aef26d600fc1034c_1590679963", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/c358075fab9f4660aef26d600fc1034c_1590679963~noop.webp?x-expires=1592658000&x-signature=8lVT4xjSrQaOquevx6GYL5KSOZw%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/c7684b07afff4f1ab13ca4c4efbbdb12_1590679964", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/c7684b07afff4f1ab13ca4c4efbbdb12_1590679964?x-expires=1592658000&x-signature=C7Xv9ncOeCBxVsBo4KfMrSpmhiQ%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/b52508c0ab3c4fd5a247fa55858aae3c_1590679964", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b52508c0ab3c4fd5a247fa55858aae3c_1590679964~noop.image?x-expires=1592658000&x-signature=Pk5hPusKQ4rSMHENPn0LXUDVv0w%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1713342 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1462332, + "play_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br7tilfdee91gqsohu90_h264_540p_1462332", + "data_size": 1719155 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 601946, + "play_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br7tilfdee91gqsohu90_h264_540p_601946", + "data_size": 707663 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 395815, + "play_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br7tilfdee91gqsohu90_h264_540p_395815", + "data_size": 465331 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 294956, + "play_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br7tilfdee91gqsohu90_h264_480p_294956", + "data_size": 346758 + }, + "is_h265": 0 + } + ], + "duration": 9405, + "download_suffix_logo_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1784365 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399 + }, + "share_url": "https://m.tiktok.com/v/6831918397899410694.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831918397899410694", + "user_digged": 0, + "statistics": { + "aweme_id": "6831918397899410694", + "comment_count": 6, + "digg_count": 41141, + "download_count": 8891, + "play_count": 1167809, + "share_count": 4413, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 3827 + }, + "status": { + "aweme_id": "6831918397899410694", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 11, + "user_id": "6610264038620938245", + "type": 0, + "sec_uid": "MS4wLjABAAAAMu3T5c6tg0tyKmt6axW9inm1tGagqdqssycF3qNh89LFuBDpwK3CLkEXMH69ScRi" + }, + { + "start": 43, + "end": 60, + "type": 1, + "hashtag_name": "tiktokazerbaycan", + "hashtag_id": "1609252033545221", + "is_commerce": false + }, + { + "start": 61, + "end": 73, + "type": 1, + "hashtag_name": "tiktokazeri", + "hashtag_id": "1612121750531077", + "is_commerce": false + }, + { + "start": 74, + "end": 84, + "type": 1, + "hashtag_name": "tiktokaze", + "hashtag_id": "1609588522506245", + "is_commerce": false + }, + { + "start": 85, + "end": 99, + "type": 1, + "hashtag_name": "ilkinmemmedov", + "hashtag_id": "1629262341534726", + "is_commerce": false + }, + { + "start": 100, + "end": 117, + "type": 1, + "hashtag_name": "azerbaycantiktok", + "hashtag_id": "1613044461924357", + "is_commerce": false + }, + { + "start": 118, + "end": 130, + "type": 1, + "hashtag_name": "azeritiktok", + "hashtag_id": "1616849969490950", + "is_commerce": false + }, + { + "start": 131, + "end": 137, + "type": 1, + "hashtag_name": "azeri", + "hashtag_id": "262419", + "is_commerce": false + }, + { + "start": 138, + "end": 142, + "type": 1, + "hashtag_name": "aze", + "hashtag_id": "581367", + "is_commerce": false + }, + { + "start": 143, + "end": 146, + "type": 1, + "hashtag_name": "az", + "hashtag_id": "10133", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6831918397899410694.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831918397899410694", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⒾⓁⓀⒾⓃ ⓂⒺⓂⓂⒺⒹⓄⓋ’s video! #TikTok > ", + "share_desc": "Check out ⒾⓁⓀⒾⓃ ⓂⒺⓂⓂⒺⒹⓄⓋ's video! #TikTok", + "share_title": "Check out ⒾⓁⓀⒾⓃ ⓂⒺⓂⓂⒺⒹⓄⓋ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9405, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6608127282740609000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AZ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6831918397899410694", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "tr", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6834709679029898497", + "desc": "#whatspp_status #viralvideo #foryourpage #standwithkashmir #allah #islam #foryou #burhan_tv #illu #fyp #islamic", + "create_time": 1591329856, + "author": { + "uid": "6673769917407953926", + "short_id": "41146771224", + "nickname": "Hira Khan", + "signature": "FollOw And Share My Official Account😘", + "avatar_thumb": { + "uri": "tiktok-obj/1664018392733698", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664018392733698.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664018392733698", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664018392733698.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "hirakhan5572", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1664018392733698", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664018392733698~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1664018392733698", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664018392733698~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAYBWpUdpbtpQ8tP3k7EC2LjgWOJ1AD_bT9Efkq8G_6ZRjRuWg_48Yr_X6teB5pmN1", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6821148889907793000, + "id_str": "6821148889907792646", + "title": "original sound - irfanjan56", + "author": "KaLasH PeOpLE", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/e529070c1e9edb439b316d61d2d4a9ae.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/e529070c1e9edb439b316d61d2d4a9ae.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6639135549372366854", + "owner_nickname": "KaLasH PeOpLE", + "is_original": false, + "mid": "6821148889907792646", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "irfanjan56", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAABfEfRvjRhXSYC5L-CErBMMRGGfu1y2x7u32ycfwHaei1dVWhR4RvWQuakjH5NDDm", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1606423369369605", + "cha_name": "whatspp_status", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1606423369369605", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1606423369369605.html?name=whatspp_status&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1606423369369605", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #whatspp_status Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #whatspp_status Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: whatspp_status", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025840000brcs86klr56ek4r9cj40_h264_540p_795509", + "data_size": 1015965 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/de45f8580fe94a448d68c759413a33bc", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/de45f8580fe94a448d68c759413a33bc.webp?x-expires=1592658000&x-signature=v91fy60%2FzswY9f3su0xbP3dn7hY%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/08bb30addaeb4f348a7639c2a7b70e7b_1591329860", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/08bb30addaeb4f348a7639c2a7b70e7b_1591329860?x-expires=1592658000&x-signature=VOUyHeItsi1qV0oqVMXPgdfpDIg%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/298aaf86cc204392b5d2d31246586893_1591329859", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/298aaf86cc204392b5d2d31246586893_1591329859.jpeg?x-expires=1592658000&x-signature=LWvFb3uAzU25Ekkv9wSG0IiMIaA%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1101403 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 795509, + "play_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025840000brcs86klr56ek4r9cj40_h264_540p_795509", + "data_size": 1015965 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 415703, + "play_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025840000brcs86klr56ek4r9cj40_h264_540p_415703", + "data_size": 530905 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 286315, + "play_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025840000brcs86klr56ek4r9cj40_h264_540p_286315", + "data_size": 365661 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 234648, + "play_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025840000brcs86klr56ek4r9cj40_h264_480p_234648", + "data_size": 299675 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1168639 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025840000brcs86klr56ek4r9cj40\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1197302}}\n" + }, + "share_url": "https://m.tiktok.com/v/6834709679029898497.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834709679029898497", + "user_digged": 0, + "statistics": { + "aweme_id": "6834709679029898497", + "comment_count": 396, + "digg_count": 90889, + "download_count": 3189, + "play_count": 684092, + "share_count": 3436, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2735 + }, + "status": { + "aweme_id": "6834709679029898497", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 15, + "type": 1, + "hashtag_name": "whatspp_status", + "hashtag_id": "1606423369369605", + "is_commerce": false + }, + { + "start": 16, + "end": 27, + "type": 1, + "hashtag_name": "viralvideo", + "hashtag_id": "85133", + "is_commerce": false + }, + { + "start": 28, + "end": 40, + "type": 1, + "hashtag_name": "foryourpage", + "hashtag_id": "1598498371111942", + "is_commerce": false + }, + { + "start": 41, + "end": 58, + "type": 1, + "hashtag_name": "standwithkashmir", + "hashtag_id": "1624626732781573", + "is_commerce": false + }, + { + "start": 59, + "end": 65, + "type": 1, + "hashtag_name": "allah", + "hashtag_id": "202706", + "is_commerce": false + }, + { + "start": 66, + "end": 72, + "type": 1, + "hashtag_name": "islam", + "hashtag_id": "350677", + "is_commerce": false + }, + { + "start": 73, + "end": 80, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 81, + "end": 91, + "type": 1, + "hashtag_name": "burhan_tv", + "hashtag_id": "1640911455753222", + "is_commerce": false + }, + { + "start": 92, + "end": 97, + "type": 1, + "hashtag_name": "illu", + "hashtag_id": "5152318", + "is_commerce": false + }, + { + "start": 98, + "end": 102, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 103, + "end": 111, + "type": 1, + "hashtag_name": "islamic", + "hashtag_id": "158391", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834709679029898497.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834709679029898497", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Hira Khan’s video! #TikTok > ", + "share_desc": "Check out Hira Khan's video! #TikTok", + "share_title": "Check out Hira Khan’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6673769917407953926,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6673769917407954000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6834709679029898497", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309377\",\"mv_info\":{\"id\":\"309377\",\"name\":\"Двойной взрыв\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101152290620623A57E" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ru/assets/i18#lang_ru/by.json b/config.ru/assets/i18#lang_ru/by.json new file mode 100644 index 0000000..f6aff5c --- /dev/null +++ b/config.ru/assets/i18#lang_ru/by.json @@ -0,0 +1,982 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6830109907849678085", + "desc": "Шпицуля 🐶", + "create_time": 1590258887, + "author": { + "uid": "6762217401969263621", + "short_id": "46657404184", + "nickname": "Lana", + "signature": "", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655191423461382", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655191423461382~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655191423461382", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655191423461382~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "lanaaapop", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "BY", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151510961D23D61A" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1655191423461382", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655191423461382~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1655191423461382", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655191423461382~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA3GtMMEGnBnByTOX3FlgVmSFRnh5GvsKmgf3EmJSI7eRoywJkz-VoZI86EPTISVy6", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6792789377002065000, + "id_str": "6792789377002064645", + "title": "original sound - ramlui", + "author": "Mavi melek ", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1660889135883270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660889135883270~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1660889135883270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660889135883270~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1660889135883270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660889135883270~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1660889135883270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660889135883270~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658398003185669.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1658398003185669.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6585164704816103429", + "owner_nickname": "Mavi melek ", + "is_original": false, + "mid": "6792789377002064645", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "ramlui", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAJRGFpxuP4bbR1EEWKHCV9VQxxYGT3HvScaNcW41LkFZpUtoyekWHMWCX_j97wleT", + "avatar_thumb": { + "uri": "musically-maliva-obj/1660889135883270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660889135883270~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1660889135883270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660889135883270~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1660889135883270", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1660889135883270~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044e80000br4mpd8pfrilt0idbd6g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br4mpd8pfrilt0idbd6g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br4mpd8pfrilt0idbd6g_h264_540p_865591", + "data_size": 1507320 + }, + "cover": { + "uri": "tos-maliva-p-0068/28aeb63c9d2643e6a8002e17467fae45", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/28aeb63c9d2643e6a8002e17467fae45~noop.webp?x-expires=1592658000&x-signature=ZYqkHxBhZA8BVaUk4Jo0P%2Fn5Nx0%3D&l=202006181309480101151510961D23D61A" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/6c22917a91974781bb33c69d152b24ca_1590258889", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/6c22917a91974781bb33c69d152b24ca_1590258889?x-expires=1592658000&x-signature=LfZk5NCm%2FOUVCpdn5M29cpi%2Ffho%3D&l=202006181309480101151510961D23D61A" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/979e1e8cef9b4be18ea03fb124ae367e_1590258890", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/979e1e8cef9b4be18ea03fb124ae367e_1590258890~noop.image?x-expires=1592658000&x-signature=ydRw7UR8favw6OXNEIzLJRbp%2BO8%3D&l=202006181309480101151510961D23D61A" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044e80000br4mpd8pfrilt0idbd6g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br4mpd8pfrilt0idbd6g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1610909 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 865591, + "play_addr": { + "uri": "v09044e80000br4mpd8pfrilt0idbd6g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br4mpd8pfrilt0idbd6g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br4mpd8pfrilt0idbd6g_h264_540p_865591", + "data_size": 1507320 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 492578, + "play_addr": { + "uri": "v09044e80000br4mpd8pfrilt0idbd6g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br4mpd8pfrilt0idbd6g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br4mpd8pfrilt0idbd6g_h264_540p_492578", + "data_size": 857764 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 357969, + "play_addr": { + "uri": "v09044e80000br4mpd8pfrilt0idbd6g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br4mpd8pfrilt0idbd6g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br4mpd8pfrilt0idbd6g_h264_540p_357969", + "data_size": 623360 + }, + "is_h265": 0 + } + ], + "duration": 13931, + "is_h265": 0, + "cdn_url_expired": 1592507403, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044e80000br4mpd8pfrilt0idbd6g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br4mpd8pfrilt0idbd6g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1654257}}\n" + }, + "share_url": "https://m.tiktok.com/v/6830109907849678085.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830109907849678085", + "user_digged": 0, + "statistics": { + "aweme_id": "6830109907849678085", + "comment_count": 159, + "digg_count": 31551, + "download_count": 116, + "play_count": 376367, + "share_count": 807, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 78 + }, + "status": { + "aweme_id": "6830109907849678085", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151510961D23D61A" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6830109907849678085.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830109907849678085", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Lana’s video! #TikTok > ", + "share_desc": "Check out Lana's video! #TikTok", + "share_title": "Check out Lana’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13931, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6762217401969264000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "BY", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6830109907849678085", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "ru", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6832006724073917697", + "desc": "#🤲🤲🤲🤲🤲🤲❤❤❤😥", + "create_time": 1590700545, + "author": { + "uid": "6685030903439475717", + "short_id": "41365163584", + "nickname": "ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ", + "signature": "Prince Imran Yousafzai", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "itsimrano011", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101151510961D23D61A" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1665883792265221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665883792265221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAGfLsLYq511bJ1te0tkq9JxaUpLy4Gf5lKGloFYq2ookkAw7dcp17P-jDUJ0BWxrx", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6831484516310224000, + "id_str": "6831484516310223618", + "title": "original sound - mehwish.....80", + "author": "Mehwish👑", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6538019ebbd5db3e092f68f61663502b.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6662645826354380806", + "owner_nickname": "Mehwish👑", + "is_original": false, + "mid": "6831484516310223618", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mehwish.....80", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAt_ta0cTcg6tjsX64ejN1jwgJGFPCNb_8UeGwrylvXvQkLRelMZ1L8l9ouuahUFkI", + "avatar_thumb": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1656895414676481", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1656895414676481.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1664379293467649", + "cha_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1664379293467649", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1664379293467649.html?name=%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%F0%9F%A4%B2%E2%9D%A4%E2%9D%A4%E2%9D%A4%F0%9F%98%A5&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664379293467649", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #🤲🤲🤲🤲🤲🤲❤❤❤😥 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 🤲🤲🤲🤲🤲🤲❤❤❤😥", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "cover": { + "uri": "tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/fd53a39ffcde413fbeed4815fa10e6ab~noop.webp?x-expires=1592658000&x-signature=kiJpNQ7ewDlTuggSYfc3jtXEBHc%3D&l=202006181309480101151510961D23D61A" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/1631c68a4c854c98801b811a9af7056c_1590700547?x-expires=1592658000&x-signature=AZ6WeT2X6Dd5sECyzDZoXZXgp7s%3D&l=202006181309480101151510961D23D61A" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/62afd06e8dbc48c28686641085fe07fa_1590700547~noop.image?x-expires=1592658000&x-signature=CP1b7eVb3vdZNxPLJwVT5mIO%2Feg%3D&l=202006181309480101151510961D23D61A" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 831522 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 584601, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_584601", + "data_size": 746609 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 333187, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_333187", + "data_size": 425522 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 243800, + "play_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090447c0000br82jscqq9hbpnba8v1g_h264_540p_243800", + "data_size": 311364 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v090447c0000br82jscqq9hbpnba8v1g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 903186 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090447c0000br82jscqq9hbpnba8v1g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090447c0000br82jscqq9hbpnba8v1g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":949865}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "user_digged": 0, + "statistics": { + "aweme_id": "6832006724073917697", + "comment_count": 412, + "digg_count": 136546, + "download_count": 29563, + "play_count": 1575904, + "share_count": 8745, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6929 + }, + "status": { + "aweme_id": "6832006724073917697", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 18, + "type": 1, + "hashtag_name": "🤲🤲🤲🤲🤲🤲❤❤❤😥", + "hashtag_id": "1664379293467649", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101151510961D23D61A" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832006724073917697.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832006724073917697", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "share_desc": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ's video! #TikTok", + "share_title": "Check out ⓘⓜⓡⓐⓝⓞⓞⓞⓞⓞⓞ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6685030903439475717,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6685030903439476000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832006724073917697", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309377\",\"mv_info\":{\"id\":\"309377\",\"name\":\"Двойной взрыв\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101151510961D23D61A" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ru/assets/i18#lang_ru/default.json b/config.ru/assets/i18#lang_ru/default.json new file mode 100644 index 0000000..c26a4a7 --- /dev/null +++ b/config.ru/assets/i18#lang_ru/default.json @@ -0,0 +1,1081 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6826952632519773446", + "desc": "#карантин #самоизоляция #рекомендации #топ #василийсмольный #сегоднябудеттуса", + "create_time": 1589523782, + "author": { + "uid": "6667195651020144646", + "short_id": "37958779824", + "nickname": "smolniy", + "signature": "ЗОЖ, пи»дёжь и провокация! #БЕШЕНАЯСУШКА", + "avatar_thumb": { + "uri": "musically-maliva-obj/1640191000925190", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1640191000925190~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1640191000925190", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1640191000925190~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "smolniy", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "RU", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150170140823C33F" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1640191000925190", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1640191000925190~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1640191000925190", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1640191000925190~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA9ZtHyI0_t1fuP2NHCtsTy-r4uxsOtL8yyHsiB2iqukTM9_EkHpcOfbo_Ga8KvWmt", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6798981838347013000, + "id_str": "6798981838347012870", + "title": "original sound - lyrics", + "author": "Lyrics", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1649492140531718", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649492140531718~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1649492140531718", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649492140531718~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1649492140531718", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649492140531718~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1649492140531718", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649492140531718~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1659912650759206.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1659912650759206.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 14, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6747802249530491910", + "owner_nickname": "Lyrics", + "is_original": false, + "mid": "6798981838347012870", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "lyrics", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAdAFua_tOOqgz7o0xvgTqI2GTddQJ8E912NvhmTWJDIE1dwQf-MZBhmbtFN8nH7k0", + "avatar_thumb": { + "uri": "musically-maliva-obj/1649492140531718", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649492140531718~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1649492140531718", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649492140531718~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1649492140531718", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1649492140531718~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "5717380", + "cha_name": "карантин", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=5717380", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/5717380.html?name=%D0%BA%D0%B0%D1%80%D0%B0%D0%BD%D1%82%D0%B8%D0%BD&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=5717380", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #карантин Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #карантин Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: карантин", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044a30000bqv393jkh7bn613mqvag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqv393jkh7bn613mqvag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a30000bqv393jkh7bn613mqvag_h264_540p_1627297", + "data_size": 2862009 + }, + "cover": { + "uri": "tos-maliva-p-0068/c5cef5a7346d4e1e956cba4b736dc067_1589523784", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/c5cef5a7346d4e1e956cba4b736dc067_1589523784~noop.webp?x-expires=1592658000&x-signature=W0agNI5Ko%2BUOlSWDW%2BN5OH8xlo0%3D&l=202006181309470101150170140823C33F" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/44647d5bfd5646d8a2bb0002c87917a4_1589523784", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/44647d5bfd5646d8a2bb0002c87917a4_1589523784?x-expires=1592658000&x-signature=vefk3VlKs6PH%2FVnl2CdrZ4a3sL0%3D&l=202006181309470101150170140823C33F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/0ead01bb1eeb4312acd662474f5b3552_1589523783", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/0ead01bb1eeb4312acd662474f5b3552_1589523783~noop.image?x-expires=1592658000&x-signature=cFFbVK%2FGRWxgatmWB4H1mYtdQCI%3D&l=202006181309470101150170140823C33F" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044a30000bqv393jkh7bn613mqvag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqv393jkh7bn613mqvag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2988929 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1627297, + "play_addr": { + "uri": "v09044a30000bqv393jkh7bn613mqvag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqv393jkh7bn613mqvag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a30000bqv393jkh7bn613mqvag_h264_540p_1627297", + "data_size": 2862009 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 996114, + "play_addr": { + "uri": "v09044a30000bqv393jkh7bn613mqvag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqv393jkh7bn613mqvag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a30000bqv393jkh7bn613mqvag_h264_540p_996114", + "data_size": 1751916 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 744736, + "play_addr": { + "uri": "v09044a30000bqv393jkh7bn613mqvag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqv393jkh7bn613mqvag&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a30000bqv393jkh7bn613mqvag_h264_540p_744736", + "data_size": 1309806 + }, + "is_h265": 0 + } + ], + "duration": 14070, + "download_suffix_logo_addr": { + "uri": "v09044a30000bqv393jkh7bn613mqvag", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqv393jkh7bn613mqvag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3055957 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044a30000bqv393jkh7bn613mqvag\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqv393jkh7bn613mqvag&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3128418}}\n" + }, + "share_url": "https://m.tiktok.com/v/6826952632519773446.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826952632519773446", + "user_digged": 0, + "statistics": { + "aweme_id": "6826952632519773446", + "comment_count": 1922, + "digg_count": 458210, + "download_count": 81065, + "play_count": 11059629, + "share_count": 89984, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 61522 + }, + "status": { + "aweme_id": "6826952632519773446", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 9, + "type": 1, + "hashtag_name": "карантин", + "hashtag_id": "5717380", + "is_commerce": false + }, + { + "start": 10, + "end": 23, + "type": 1, + "hashtag_name": "самоизоляция", + "hashtag_id": "1661176406351877", + "is_commerce": false + }, + { + "start": 24, + "end": 37, + "type": 1, + "hashtag_name": "рекомендации", + "hashtag_id": "49711363", + "is_commerce": false + }, + { + "start": 38, + "end": 42, + "type": 1, + "hashtag_name": "топ", + "hashtag_id": "7450077", + "is_commerce": false + }, + { + "start": 43, + "end": 59, + "type": 1, + "hashtag_name": "василийсмольный", + "hashtag_id": "1641034451548165", + "is_commerce": false + }, + { + "start": 60, + "end": 77, + "type": 1, + "hashtag_name": "сегоднябудеттуса", + "hashtag_id": "69989160", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150170140823C33F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6826952632519773446.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826952632519773446", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out smolniy’s video! #TikTok > ", + "share_desc": "Check out smolniy's video! #TikTok", + "share_title": "Check out smolniy’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 14070, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": true, + "risk_sink": false, + "type": 0, + "content": "Consult your local health authorities for the latest on COVID-19." + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6667195651020145000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "RU", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6826952632519773446", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6827060314559827205", + "desc": "Сделай так же с нашим тренером Андреем Соболевым #kek #top #врек #тренды #фитнес #гимнастика #рекомендации #tiktokchallenge", + "create_time": 1589548850, + "author": { + "uid": "6649474151215300614", + "short_id": "35706398184", + "nickname": "World Class | Фитнес", + "signature": "💪 Тренируйся в прямом эфире\nв нашем инстаграме:", + "avatar_thumb": { + "uri": "musically-maliva-obj/b48d4e8a5dd136e32c411fd43163e2a7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/b48d4e8a5dd136e32c411fd43163e2a7~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/b48d4e8a5dd136e32c411fd43163e2a7", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/b48d4e8a5dd136e32c411fd43163e2a7~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "worldclassclubs", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "verified account", + "is_ad_fake": false, + "followers_detail": null, + "region": "RU", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150170140823C33F" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/b48d4e8a5dd136e32c411fd43163e2a7", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/b48d4e8a5dd136e32c411fd43163e2a7~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/b48d4e8a5dd136e32c411fd43163e2a7", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/b48d4e8a5dd136e32c411fd43163e2a7~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAATbZUFJvt7skmrFD5LM2V52M44vpemd9LJKbgD-ZQp6SpOu5eN4aSVmiZSHDegheB", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6792291743887788000, + "id_str": "6792291743887788033", + "title": "Tik Tok Челлендж", + "author": "SLAVA MARLOW", + "album": "Tik Tok Челлендж", + "cover_hd": { + "uri": "tos-alisg-i-0000/55da9b5dd25f4fc5a53d88f1f39b035d", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/55da9b5dd25f4fc5a53d88f1f39b035d.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/55da9b5dd25f4fc5a53d88f1f39b035d", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/55da9b5dd25f4fc5a53d88f1f39b035d.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/55da9b5dd25f4fc5a53d88f1f39b035d", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/55da9b5dd25f4fc5a53d88f1f39b035d.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/55da9b5dd25f4fc5a53d88f1f39b035d", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/55da9b5dd25f4fc5a53d88f1f39b035d.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/39e44f52b4e99c749c4faac1863813b0.m4a", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/39e44f52b4e99c749c4faac1863813b0.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 33, + "extra": "{\"apple_song_id\":1498634824,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6792291743887788033", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1498634824", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 6, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "279044", + "cha_name": "kek", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=279044", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/279044.html?name=kek&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=279044", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #kek Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #kek Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: kek", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044530000bqv9dc384u29o0r12m30", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqv9dc384u29o0r12m30&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044530000bqv9dc384u29o0r12m30_h264_480p_557277", + "data_size": 574274 + }, + "cover": { + "uri": "tos-maliva-p-0068/ca50de2d575743109dd4df81b2504914_1589548853", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ca50de2d575743109dd4df81b2504914_1589548853~noop.webp?x-expires=1592658000&x-signature=IsNize38BbbWzH0kzPh9ywFNPSY%3D&l=202006181309470101150170140823C33F" + ], + "width": 720, + "height": 720 + }, + "height": 848, + "width": 480, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/e658e61dfff34b9b8127ab30702f2eec_1589548852", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/e658e61dfff34b9b8127ab30702f2eec_1589548852?x-expires=1592658000&x-signature=VAdYr6MOVufLaZWXK2fxfd7Ml8k%3D&l=202006181309470101150170140823C33F" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/d248c20b08a84fbfb8c2acd93519fad9_1589548852", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d248c20b08a84fbfb8c2acd93519fad9_1589548852~noop.image?x-expires=1592658000&x-signature=Tp2xOCijVklTJ7EIOCMruC48CN8%3D&l=202006181309470101150170140823C33F" + ], + "width": 720, + "height": 720 + }, + "ratio": "480p", + "download_addr": { + "uri": "v09044530000bqv9dc384u29o0r12m30", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqv9dc384u29o0r12m30&line=0&ratio=480p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 632218 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_480", + "quality_type": 30, + "bit_rate": 557277, + "play_addr": { + "uri": "v09044530000bqv9dc384u29o0r12m30", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqv9dc384u29o0r12m30&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044530000bqv9dc384u29o0r12m30_h264_480p_557277", + "data_size": 574274 + }, + "is_h265": 0 + } + ], + "duration": 8244, + "is_h265": 0, + "cdn_url_expired": 1592507397 + }, + "share_url": "https://m.tiktok.com/v/6827060314559827205.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827060314559827205", + "user_digged": 0, + "statistics": { + "aweme_id": "6827060314559827205", + "comment_count": 203, + "digg_count": 23421, + "download_count": 157, + "play_count": 953238, + "share_count": 192, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 77 + }, + "status": { + "aweme_id": "6827060314559827205", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 0, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 51, + "end": 55, + "type": 1, + "hashtag_name": "kek", + "hashtag_id": "279044", + "is_commerce": false + }, + { + "start": 56, + "end": 60, + "type": 1, + "hashtag_name": "top", + "hashtag_id": "22907", + "is_commerce": false + }, + { + "start": 61, + "end": 66, + "type": 1, + "hashtag_name": "врек", + "hashtag_id": "1595387971382277", + "is_commerce": false + }, + { + "start": 67, + "end": 74, + "type": 1, + "hashtag_name": "тренды", + "hashtag_id": "44600146", + "is_commerce": false + }, + { + "start": 75, + "end": 82, + "type": 1, + "hashtag_name": "фитнес", + "hashtag_id": "6344673", + "is_commerce": false + }, + { + "start": 83, + "end": 94, + "type": 1, + "hashtag_name": "гимнастика", + "hashtag_id": "5365691", + "is_commerce": false + }, + { + "start": 95, + "end": 108, + "type": 1, + "hashtag_name": "рекомендации", + "hashtag_id": "49711363", + "is_commerce": false + }, + { + "start": 109, + "end": 125, + "type": 1, + "hashtag_name": "tiktokchallenge", + "hashtag_id": "349124", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150170140823C33F" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6827060314559827205.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827060314559827205", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out World Class | Фитнес’s video! #TikTok > ", + "share_desc": "Check out World Class | Фитнес's video! #TikTok", + "share_title": "Check out World Class | Фитнес’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8244, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6649474151215300614,\"author_country\":\"Russian Federation\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6649474151215301000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "RU", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6827060314559827205", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ru", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": false, + "share_type": 0, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 2, + "allow_dynamic_wallpaper": false, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150170140823C33F" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ru/assets/i18#lang_ru/ge.json b/config.ru/assets/i18#lang_ru/ge.json new file mode 100644 index 0000000..ae5f4f9 --- /dev/null +++ b/config.ru/assets/i18#lang_ru/ge.json @@ -0,0 +1,1043 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838543641825283333", + "desc": "Übers Geländer?!😱🤯 #waitforit #fürdich #viral", + "create_time": 1592222521, + "author": { + "uid": "6664894458910425093", + "short_id": "45401983616", + "nickname": "SENDDICTED", + "signature": "Thomas | 23 🇩🇪\n🔥CEO of cliffjumping🤘🏼\n⬇️ Schaut auch auf YouTube vorbei!⬇️", + "avatar_thumb": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1647902179339269~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "senddicted", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "DE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1655085640501253", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1655085640501253" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094701011500406705238B28" + ], + "width": 720, + "height": 720 + } + ], + "language": "de", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAwe5H3_gAb16KGIbHwmBGtMvaNc2wMWbKnlMOaRlrtKb0eaWu46vY6mU-AXH9xV7L", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6515231601595518000, + "id_str": "6515231601595517698", + "title": "Believer [NSG Remix]", + "author": "Romy Wave", + "album": "", + "cover_hd": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1590632695033858.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1590632695033858.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 141, + "start_time": 0, + "end_time": 0, + "duration": 44, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6515231601595517698", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617286365010966", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617286365010966" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 7, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "18474", + "cha_name": "waitforit", + "desc": "Wait till the end, to find out the surprise. 🤔", + "schema": "aweme://aweme/challenge/detail?cid=18474", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/18474.html?name=waitforit&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=18474", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #waitforit Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #waitforit Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: waitforit", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/fbe71967963542743b12940221371e62", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_3586752", + "data_size": 4603148 + }, + "cover": { + "uri": "tos-maliva-p-0068/6be2dabb7b244b0bade4b75abb1c05d8", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/6be2dabb7b244b0bade4b75abb1c05d8~noop.webp?x-expires=1592658000&x-signature=6Y%2BLWVVR4ySHsA7yfDfSSDQ4F2g%3D&l=2020061813094701011500406705238B28" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/2c10c27ad20e49bd9a02f58e23757bb1_1592222523", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/2c10c27ad20e49bd9a02f58e23757bb1_1592222523?x-expires=1592658000&x-signature=9wMi6wiE1FIC8ciIR1KMy2p2%2FSo%3D&l=2020061813094701011500406705238B28" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/4e17020e4de34d369b8a3ef3f98ed88a_1592222523", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/4e17020e4de34d369b8a3ef3f98ed88a_1592222523~noop.image?x-expires=1592658000&x-signature=v5H8Gu22kPJrNDd0boql25c8u44%3D&l=2020061813094701011500406705238B28" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4663775 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 3586752, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_3586752", + "data_size": 4603148 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1934979, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_1934979", + "data_size": 2483304 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 1303777, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_1303777", + "data_size": 1673235 + }, + "is_h265": 0 + } + ], + "duration": 10267, + "download_suffix_logo_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4721548 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brjm6ck45u0f2vkvibv0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4794553}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838543641825283333.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838543641825283333", + "user_digged": 0, + "statistics": { + "aweme_id": "6838543641825283333", + "comment_count": 5760, + "digg_count": 705325, + "download_count": 10715, + "play_count": 22080860, + "share_count": 20459, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 10760 + }, + "status": { + "aweme_id": "6838543641825283333", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 21, + "end": 31, + "type": 1, + "hashtag_name": "waitforit", + "hashtag_id": "18474", + "is_commerce": false + }, + { + "start": 32, + "end": 40, + "type": 1, + "hashtag_name": "fürdich", + "hashtag_id": "5457735", + "is_commerce": false + }, + { + "start": 41, + "end": 47, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094701011500406705238B28" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838543641825283333.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838543641825283333", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out SENDDICTED’s video! #TikTok > ", + "share_desc": "Check out SENDDICTED's video! #TikTok", + "share_title": "Check out SENDDICTED’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10267, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": true, + "risk_sink": false, + "type": 1, + "content": "The action in this video could result in serious injury." + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6664894458910425000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "DE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838543641825283333", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "de", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6835584824053419270", + "desc": "#foryou #foryoupage #4you", + "create_time": 1591533617, + "author": { + "uid": "106427023593525248", + "short_id": "21548487430", + "nickname": "Ani Javakhi", + "signature": "INSTAGRAM 👉🏾 anijavakhi", + "avatar_thumb": { + "uri": "musically-maliva-obj/e283a40b4685ec5207ee60f3322a36fd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/e283a40b4685ec5207ee60f3322a36fd~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/e283a40b4685ec5207ee60f3322a36fd", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/e283a40b4685ec5207ee60f3322a36fd~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "anijavakhiii", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "GE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094701011500406705238B28" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/e283a40b4685ec5207ee60f3322a36fd", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/e283a40b4685ec5207ee60f3322a36fd~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/e283a40b4685ec5207ee60f3322a36fd", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/e283a40b4685ec5207ee60f3322a36fd~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAWthIgFABmA0UyJtY09hzUOHrS2bNo_raxH2ZuE7jRjOz7mz11HhSw7rstFAgP3_z", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6788456091559677000, + "id_str": "6788456091559676678", + "title": "Skechers", + "author": "DripReport", + "album": "Skechers", + "cover_hd": { + "uri": "tos-alisg-i-0000/4150de8f2ebd494a8191887abcef867b", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/4150de8f2ebd494a8191887abcef867b.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/4150de8f2ebd494a8191887abcef867b", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/4150de8f2ebd494a8191887abcef867b.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/4150de8f2ebd494a8191887abcef867b", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/4150de8f2ebd494a8191887abcef867b.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/4150de8f2ebd494a8191887abcef867b", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/4150de8f2ebd494a8191887abcef867b.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/3f22dd7948068d0a7450ee316155b91e.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/3f22dd7948068d0a7450ee316155b91e.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 20, + "extra": "{\"beats\":{\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1664517601204235\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1664517596703755\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1664517601230852\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1664517596735492\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1504500040,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6788456091559676678", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1504500040", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 37.3, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "42164", + "cha_name": "foryou", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=42164", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/42164.html?name=foryou&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=42164", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044190000bree08ho1k5t8382bifg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bree08ho1k5t8382bifg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000bree08ho1k5t8382bifg_h264_540p_2215893", + "data_size": 4186654 + }, + "cover": { + "uri": "tos-maliva-p-0068/de7e297a59904b70894c43fa0942691a_1591533620", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/de7e297a59904b70894c43fa0942691a_1591533620~noop.webp?x-expires=1592658000&x-signature=43F%2BV%2FGb%2BcCinkdC7lNchjAjF64%3D&l=2020061813094701011500406705238B28" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/f2b5650d4c5b4887b5b3b6309f491638_1591533620", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/f2b5650d4c5b4887b5b3b6309f491638_1591533620?x-expires=1592658000&x-signature=I%2BXoVIukKpHQLWVVo8CFc7Lai%2BM%3D&l=2020061813094701011500406705238B28" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/98a512d29146479ab2cb712a7fda5f1e_1591533620", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/98a512d29146479ab2cb712a7fda5f1e_1591533620~noop.image?x-expires=1592658000&x-signature=Ug%2B3msEHt5LkrnykGpvX2pZ0TNs%3D&l=2020061813094701011500406705238B28" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044190000bree08ho1k5t8382bifg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bree08ho1k5t8382bifg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4237857 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2215893, + "play_addr": { + "uri": "v09044190000bree08ho1k5t8382bifg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bree08ho1k5t8382bifg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000bree08ho1k5t8382bifg_h264_540p_2215893", + "data_size": 4186654 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1364288, + "play_addr": { + "uri": "v09044190000bree08ho1k5t8382bifg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bree08ho1k5t8382bifg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000bree08ho1k5t8382bifg_h264_540p_1364288", + "data_size": 2577653 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 997652, + "play_addr": { + "uri": "v09044190000bree08ho1k5t8382bifg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bree08ho1k5t8382bifg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044190000bree08ho1k5t8382bifg_h264_540p_997652", + "data_size": 1884940 + }, + "is_h265": 0 + } + ], + "duration": 15115, + "download_suffix_logo_addr": { + "uri": "v09044190000bree08ho1k5t8382bifg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044190000bree08ho1k5t8382bifg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4304378 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403 + }, + "share_url": "https://m.tiktok.com/v/6835584824053419270.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835584824053419270", + "user_digged": 0, + "statistics": { + "aweme_id": "6835584824053419270", + "comment_count": 51, + "digg_count": 4877, + "download_count": 77, + "play_count": 54839, + "share_count": 33, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 0 + }, + "status": { + "aweme_id": "6835584824053419270", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 7, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 8, + "end": 19, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 20, + "end": 25, + "type": 1, + "hashtag_name": "4you", + "hashtag_id": "24574", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094701011500406705238B28" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6835584824053419270.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835584824053419270", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Ani Javakhi’s video! #TikTok > ", + "share_desc": "Check out Ani Javakhi's video! #TikTok", + "share_title": "Check out Ani Javakhi’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15115, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":106427023593525248,\"author_country\":\"Georgia\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 106427023593525250, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "GE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6835584824053419270", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813094701011500406705238B28" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ru/assets/i18#lang_ru/kg.json b/config.ru/assets/i18#lang_ru/kg.json new file mode 100644 index 0000000..14f609c --- /dev/null +++ b/config.ru/assets/i18#lang_ru/kg.json @@ -0,0 +1,986 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6830765571475262726", + "desc": "Оххх иййй!😂", + "create_time": 1590411548, + "author": { + "uid": "6619242297078317061", + "short_id": "32845099312", + "nickname": "Актан Рыскелдиев", + "signature": "Мен мококмун! Мококмун кантейин!\nИнстаграм @aktan_ryskeldiyev", + "avatar_thumb": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "aktan_ryskeldiyev", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "KG", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040551F23C8F7" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAgqUncJAseJyfoeTLgYvLpNQSwS4L-TOd0nvr0SP8Jv7wFhdFxpu21Gf419LrIHCI", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6830765538235420000, + "id_str": "6830765538235419397", + "title": "original sound - aktan_ryskeldiyev", + "author": "Актан Рыскелдиев", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/08a54a36784f6a734daab71c31deee13.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/08a54a36784f6a734daab71c31deee13.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 22, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6619242297078317061", + "owner_nickname": "Актан Рыскелдиев", + "is_original": false, + "mid": "6830765538235419397", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "aktan_ryskeldiyev", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAgqUncJAseJyfoeTLgYvLpNQSwS4L-TOd0nvr0SP8Jv7wFhdFxpu21Gf419LrIHCI", + "avatar_thumb": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1666469133644806", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1666469133644806~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044b80000br5s0qj84u21ode3vspg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br5s0qj84u21ode3vspg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br5s0qj84u21ode3vspg_h264_540p_1264230", + "data_size": 3511559 + }, + "cover": { + "uri": "tos-maliva-p-0068/b9aa07b64bd2439db8656fa0e3870b6a_1590411551", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b9aa07b64bd2439db8656fa0e3870b6a_1590411551~noop.webp?x-expires=1592658000&x-signature=ytzR%2BtYAFvb48fUgq%2BwulTkNF0I%3D&l=202006181309470101150040551F23C8F7" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/81faedb256b84cf2ac6aebc2e42ae208_1590411552", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/81faedb256b84cf2ac6aebc2e42ae208_1590411552?x-expires=1592658000&x-signature=LcjrwaWbydVIUraxvqY7XYEIgtM%3D&l=202006181309470101150040551F23C8F7" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/d6f41ef113764e52ae066869e0a99fe7_1590411552", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d6f41ef113764e52ae066869e0a99fe7_1590411552~noop.image?x-expires=1592658000&x-signature=HU0KBM1PlpMjvUrUkxgRcxUk%2B6o%3D&l=202006181309470101150040551F23C8F7" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044b80000br5s0qj84u21ode3vspg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br5s0qj84u21ode3vspg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3497731 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1264230, + "play_addr": { + "uri": "v09044b80000br5s0qj84u21ode3vspg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br5s0qj84u21ode3vspg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br5s0qj84u21ode3vspg_h264_540p_1264230", + "data_size": 3511559 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 626354, + "play_addr": { + "uri": "v09044b80000br5s0qj84u21ode3vspg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br5s0qj84u21ode3vspg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br5s0qj84u21ode3vspg_h264_540p_626354", + "data_size": 1739778 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 427049, + "play_addr": { + "uri": "v09044b80000br5s0qj84u21ode3vspg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br5s0qj84u21ode3vspg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br5s0qj84u21ode3vspg_h264_540p_427049", + "data_size": 1186184 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 353341, + "play_addr": { + "uri": "v09044b80000br5s0qj84u21ode3vspg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br5s0qj84u21ode3vspg&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br5s0qj84u21ode3vspg_h264_480p_353341", + "data_size": 981451 + }, + "is_h265": 0 + } + ], + "duration": 22221, + "download_suffix_logo_addr": { + "uri": "v09044b80000br5s0qj84u21ode3vspg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br5s0qj84u21ode3vspg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3565880 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507410 + }, + "share_url": "https://m.tiktok.com/v/6830765571475262726.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830765571475262726", + "user_digged": 0, + "statistics": { + "aweme_id": "6830765571475262726", + "comment_count": 435, + "digg_count": 50244, + "download_count": 5791, + "play_count": 769816, + "share_count": 2789, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1861 + }, + "status": { + "aweme_id": "6830765571475262726", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040551F23C8F7" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6830765571475262726.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6830765571475262726", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Актан Рыскелдиев’s video! #TikTok > ", + "share_desc": "Check out Актан Рыскелдиев's video! #TikTok", + "share_title": "Check out Актан Рыскелдиев’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 22221, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6619242297078317000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "KG", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6830710473944468741", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ru", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6837785356364991745", + "desc": "#0324MYTest", + "create_time": 1592045968, + "author": { + "uid": "6556922669702316034", + "short_id": "2171271581", + "nickname": "Dollaya Toonsaen", + "signature": "FB:Warinda Junthajorn \n Dollaya Toonsaen\n📍แม่ค้า400cc Shop", + "avatar_thumb": { + "uri": "tiktok-obj/c266aaef490a9d8221abc879cac2e500", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/c266aaef490a9d8221abc879cac2e500.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/c266aaef490a9d8221abc879cac2e500", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/c266aaef490a9d8221abc879cac2e500.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "idearce", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "TH", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040551F23C8F7" + ], + "width": 720, + "height": 720 + } + ], + "language": "th", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/c266aaef490a9d8221abc879cac2e500", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/c266aaef490a9d8221abc879cac2e500~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/c266aaef490a9d8221abc879cac2e500", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/c266aaef490a9d8221abc879cac2e500~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAxSAKefcxt4qC0L8o3deNEtZDAsDHFU6_WauZG9GkAQTi3aRlHWhrp6gNtr0hTg61", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6712899612438466000, + "id_str": "6712899612438465286", + "title": "Coño (feat. Jhorrmountain x Adje)", + "author": "Puri", + "album": "luluuu777", + "cover_hd": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/iesmusic-sg-local/v1/muse-ma-obj/1622878453881861.JPEG.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/3e90ce8a08ab9118d3247c8934ec2897.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/3e90ce8a08ab9118d3247c8934ec2897.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078040718340\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078036739076\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078040742915\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1668078036779011\"}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6712899612438465286", + "binded_challenge_id": 1662232588115974, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1662232588115974", + "cha_name": "0324MYTest", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1662232588115974&is_commerce=1", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1662232588115974.html?name=0324MYTest&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1662232588115974", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #0324MYTest Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #0324MYTest Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 0324MYTest", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 1, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": true, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025790000brib32c3utdel04d2cq0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025790000brib32c3utdel04d2cq0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025790000brib32c3utdel04d2cq0_h264_540p_2350130", + "data_size": 3928830 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/2d328aadf2fd4ff481dc5c3cad037164", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/2d328aadf2fd4ff481dc5c3cad037164.webp?x-expires=1592658000&x-signature=itdBVriL0WB4I9WO3qw8lX5vdGE%3D&l=202006181309470101150040551F23C8F7" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/6d8ee92a12fb43a2ba16f824b7851f33_1592045972", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/6d8ee92a12fb43a2ba16f824b7851f33_1592045972?x-expires=1592658000&x-signature=FQ4o10s5I35o%2B1imtVbJQFq%2FtpA%3D&l=202006181309470101150040551F23C8F7" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/6685bd24016c48fd9f7860da8f3498e8_1592045970", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/6685bd24016c48fd9f7860da8f3498e8_1592045970.jpeg?x-expires=1592658000&x-signature=YOzkF8%2F%2FBbHrvvY2VOLB5Rm0JvA%3D&l=202006181309470101150040551F23C8F7" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025790000brib32c3utdel04d2cq0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025790000brib32c3utdel04d2cq0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4046091 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2350130, + "play_addr": { + "uri": "v07025790000brib32c3utdel04d2cq0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025790000brib32c3utdel04d2cq0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025790000brib32c3utdel04d2cq0_h264_540p_2350130", + "data_size": 3928830 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1274502, + "play_addr": { + "uri": "v07025790000brib32c3utdel04d2cq0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025790000brib32c3utdel04d2cq0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025790000brib32c3utdel04d2cq0_h264_540p_1274502", + "data_size": 2130650 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 838785, + "play_addr": { + "uri": "v07025790000brib32c3utdel04d2cq0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025790000brib32c3utdel04d2cq0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025790000brib32c3utdel04d2cq0_h264_540p_838785", + "data_size": 1402239 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 650235, + "play_addr": { + "uri": "v07025790000brib32c3utdel04d2cq0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025790000brib32c3utdel04d2cq0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025790000brib32c3utdel04d2cq0_h264_480p_650235", + "data_size": 1087032 + }, + "is_h265": 0 + } + ], + "duration": 13374, + "is_h265": 0, + "cdn_url_expired": 1592507401, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025790000brib32c3utdel04d2cq0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025790000brib32c3utdel04d2cq0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4072490}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837785356364991745.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837785356364991745", + "user_digged": 0, + "statistics": { + "aweme_id": "6837785356364991745", + "comment_count": 1455, + "digg_count": 530332, + "download_count": 14162, + "play_count": 9548286, + "share_count": 9214, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 373 + }, + "status": { + "aweme_id": "6837785356364991745", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 11, + "type": 1, + "hashtag_name": "0324mytest", + "hashtag_id": "1662232588115974", + "is_commerce": true + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040551F23C8F7" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837785356364991745.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837785356364991745", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Dollaya Toonsaen’s video! #TikTok > ", + "share_desc": "Check out Dollaya Toonsaen's video! #TikTok", + "share_title": "Check out Dollaya Toonsaen’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13374, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6556922669702316034,\"author_country\":\"Thailand\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6556922669702316000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "TH", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837785356364991745", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040551F23C8F7" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ru/assets/i18#lang_ru/kz.json b/config.ru/assets/i18#lang_ru/kz.json new file mode 100644 index 0000000..da06413 --- /dev/null +++ b/config.ru/assets/i18#lang_ru/kz.json @@ -0,0 +1,1022 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6835530618055544069", + "desc": "Привеет🥴✌️#рекомендации", + "create_time": 1591520995, + "author": { + "uid": "6646341711838756869", + "short_id": "35256247088", + "nickname": "Asem Nygmetzhan 🥰", + "signature": "🇰🇿 𝗞𝗮𝘇𝗮𝗵𝘀𝘁𝗮𝗻-𝗔𝗹𝗺𝗮𝘁𝘆🇰🇿\n18 𝘆/𝗼 \nInst: 𝗲𝗿𝗸𝗲𝘄𝗼𝗸𝗮💛", + "avatar_thumb": { + "uri": "musically-maliva-obj/d082185241d93bb96421a0b4e8f71380", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d082185241d93bb96421a0b4e8f71380~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/d082185241d93bb96421a0b4e8f71380", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d082185241d93bb96421a0b4e8f71380~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "erkewoka7", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "KZ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101150170071E241666" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/d082185241d93bb96421a0b4e8f71380", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/d082185241d93bb96421a0b4e8f71380~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/d082185241d93bb96421a0b4e8f71380", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/d082185241d93bb96421a0b4e8f71380~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA-f1DMD-17MycVn3JLAbTR15PxKu2FHFvJWw5fAetzBMCyHEWWvX2aZ2yiJyjPKyW", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6827044662134590000, + "id_str": "6827044662134590214", + "title": "Привееет", + "author": "Я Крис 💖 I AM KRIS", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1663071717690373", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1663071717690373~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1663071717690373", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1663071717690373~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1663071717690373", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663071717690373~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1663071717690373", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663071717690373~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/030f9f14c9969be9d192387b9bdf2cbc.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/030f9f14c9969be9d192387b9bdf2cbc.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6765445394907972613", + "owner_nickname": "Я Крис 💖 I AM KRIS", + "is_original": false, + "mid": "6827044662134590214", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "iamkris", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAskV_Tl7XfLuJUKg2UrhqPfxC0aftZqToAbk2L03Yl995fRdKZLZHQrdX5ITfI6Fj", + "avatar_thumb": { + "uri": "musically-maliva-obj/1663071717690373", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663071717690373~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1663071717690373", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1663071717690373~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1663071717690373", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1663071717690373~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "49711363", + "cha_name": "рекомендации", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=49711363", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/49711363.html?name=%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=49711363", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #рекомендации Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #рекомендации Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: рекомендации", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044500000brearp02htnhjt6pvpv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brearp02htnhjt6pvpv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044500000brearp02htnhjt6pvpv0_h264_540p_1074174", + "data_size": 1814415 + }, + "cover": { + "uri": "tos-maliva-p-0068/2507d901bda64b8bb8741e946f67d697", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/2507d901bda64b8bb8741e946f67d697~noop.webp?x-expires=1592658000&x-signature=MiOlT3O%2BY6b7L0eQaLztQ1Zi8io%3D&l=202006181309490101150170071E241666" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/906fe5607a1d4ce9a6a8783e2d6fa9ac_1591520997", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/906fe5607a1d4ce9a6a8783e2d6fa9ac_1591520997?x-expires=1592658000&x-signature=21gxUFivAB7C7GRGz4P8DSj4Y88%3D&l=202006181309490101150170071E241666" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/a6ac67055f934b16bfb1b5e318020665_1591520997", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/a6ac67055f934b16bfb1b5e318020665_1591520997~noop.image?x-expires=1592658000&x-signature=uiMAHYbmoyOEo0H2dGzec8YAKNE%3D&l=202006181309490101150170071E241666" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044500000brearp02htnhjt6pvpv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brearp02htnhjt6pvpv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1877627 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1074174, + "play_addr": { + "uri": "v09044500000brearp02htnhjt6pvpv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brearp02htnhjt6pvpv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044500000brearp02htnhjt6pvpv0_h264_540p_1074174", + "data_size": 1814415 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 604121, + "play_addr": { + "uri": "v09044500000brearp02htnhjt6pvpv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brearp02htnhjt6pvpv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044500000brearp02htnhjt6pvpv0_h264_540p_604121", + "data_size": 1020437 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 436970, + "play_addr": { + "uri": "v09044500000brearp02htnhjt6pvpv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brearp02htnhjt6pvpv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044500000brearp02htnhjt6pvpv0_h264_540p_436970", + "data_size": 738098 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 356703, + "play_addr": { + "uri": "v09044500000brearp02htnhjt6pvpv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brearp02htnhjt6pvpv0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044500000brearp02htnhjt6pvpv0_h264_480p_356703", + "data_size": 602517 + }, + "is_h265": 0 + } + ], + "duration": 13513, + "download_suffix_logo_addr": { + "uri": "v09044500000brearp02htnhjt6pvpv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044500000brearp02htnhjt6pvpv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1946269 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404 + }, + "share_url": "https://m.tiktok.com/v/6835530618055544069.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835530618055544069", + "user_digged": 0, + "statistics": { + "aweme_id": "6835530618055544069", + "comment_count": 829, + "digg_count": 76659, + "download_count": 444, + "play_count": 1355473, + "share_count": 865, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 385 + }, + "status": { + "aweme_id": "6835530618055544069", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 11, + "end": 24, + "type": 1, + "hashtag_name": "рекомендации", + "hashtag_id": "49711363", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101150170071E241666" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6835530618055544069.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835530618055544069", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Asem Nygmetzhan 🥰’s video! #TikTok > ", + "share_desc": "Check out Asem Nygmetzhan 🥰's video! #TikTok", + "share_title": "Check out Asem Nygmetzhan 🥰’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13513, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6646341711838757000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "KZ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6835530618055544069", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ru", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6836096004467461382", + "desc": "", + "create_time": 1591652635, + "author": { + "uid": "6776000840836170758", + "short_id": "46514575392", + "nickname": "Tenille", + "signature": "👼🏼", + "avatar_thumb": { + "uri": "musically-maliva-obj/1654376847336454", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654376847336454~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1654376847336454", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654376847336454~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "tenillejoy", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101150170071E241666" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1654376847336454", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654376847336454~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1654376847336454", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1654376847336454~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAdYXsUCA1Gwg852U1CLthZOgpZQ3unlw6GbbocxQjyIASenrMOe1rc6ASTyTD_Zj9", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6801849817338351000, + "id_str": "6801849817338350341", + "title": "original sound - lamaryrose", + "author": "LaMaryrose", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/5146f4f42cbb1fce595269595019e43e", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5146f4f42cbb1fce595269595019e43e~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/5146f4f42cbb1fce595269595019e43e", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5146f4f42cbb1fce595269595019e43e~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/5146f4f42cbb1fce595269595019e43e", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5146f4f42cbb1fce595269595019e43e~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/5146f4f42cbb1fce595269595019e43e", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5146f4f42cbb1fce595269595019e43e~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1660608952987701.mp3", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1660608952987701.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6760976964360864774", + "owner_nickname": "LaMaryrose", + "is_original": false, + "mid": "6801849817338350341", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "lamaryrose", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAfSGwzTzRvBrI_ZtEmX8tHQxk3xHue2g8FdMY2HbnZHRzgdZdBIAgA_Eb4UKLkXOq", + "avatar_thumb": { + "uri": "musically-maliva-obj/5146f4f42cbb1fce595269595019e43e", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5146f4f42cbb1fce595269595019e43e~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/5146f4f42cbb1fce595269595019e43e", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5146f4f42cbb1fce595269595019e43e~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/5146f4f42cbb1fce595269595019e43e", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/5146f4f42cbb1fce595269595019e43e~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044490000brfb267kvluob2si2um0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brfb267kvluob2si2um0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brfb267kvluob2si2um0_h264_540p_2036431", + "data_size": 2399425 + }, + "cover": { + "uri": "tos-maliva-p-0068/f9bc5f44484f41c5b80a921c89d96d50_1591652637", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/f9bc5f44484f41c5b80a921c89d96d50_1591652637~noop.webp?x-expires=1592658000&x-signature=FbBHmzCU6AGszQf0ng%2BduXXyfQQ%3D&l=202006181309490101150170071E241666" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/9adda3985ba54498af2a50980d66494c_1591652637", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/9adda3985ba54498af2a50980d66494c_1591652637?x-expires=1592658000&x-signature=SSvJ%2FhKI%2F09nSIN8qAw4vTrKwOE%3D&l=202006181309490101150170071E241666" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/12064f77a9674b2591bd76bf459e3932_1591652636", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/12064f77a9674b2591bd76bf459e3932_1591652636~noop.image?x-expires=1592658000&x-signature=7KSW1m8KAaaWbytUylh4mS6aREo%3D&l=202006181309490101150170071E241666" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044490000brfb267kvluob2si2um0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brfb267kvluob2si2um0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2438997 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2036431, + "play_addr": { + "uri": "v09044490000brfb267kvluob2si2um0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brfb267kvluob2si2um0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brfb267kvluob2si2um0_h264_540p_2036431", + "data_size": 2399425 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1157771, + "play_addr": { + "uri": "v09044490000brfb267kvluob2si2um0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brfb267kvluob2si2um0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brfb267kvluob2si2um0_h264_540p_1157771", + "data_size": 1364144 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 824122, + "play_addr": { + "uri": "v09044490000brfb267kvluob2si2um0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brfb267kvluob2si2um0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brfb267kvluob2si2um0_h264_540p_824122", + "data_size": 971022 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 630703, + "play_addr": { + "uri": "v09044490000brfb267kvluob2si2um0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brfb267kvluob2si2um0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044490000brfb267kvluob2si2um0_h264_480p_630703", + "data_size": 743126 + }, + "is_h265": 0 + } + ], + "duration": 9426, + "download_suffix_logo_addr": { + "uri": "v09044490000brfb267kvluob2si2um0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brfb267kvluob2si2um0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2507374 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044490000brfb267kvluob2si2um0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044490000brfb267kvluob2si2um0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2560043}}\n" + }, + "share_url": "https://m.tiktok.com/v/6836096004467461382.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836096004467461382", + "user_digged": 0, + "statistics": { + "aweme_id": "6836096004467461382", + "comment_count": 126, + "digg_count": 24700, + "download_count": 2386, + "play_count": 651374, + "share_count": 690, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 85 + }, + "status": { + "aweme_id": "6836096004467461382", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101150170071E241666" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6836096004467461382.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836096004467461382", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Tenille’s video! #TikTok > ", + "share_desc": "Check out Tenille's video! #TikTok", + "share_title": "Check out Tenille’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9426, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6776000840836170758,\"author_country\":\"United States\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6776000840836171000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836085994568092934", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485791000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309490101150170071E241666" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ru/assets/i18#lang_ru/md.json b/config.ru/assets/i18#lang_ru/md.json new file mode 100644 index 0000000..d6adc27 --- /dev/null +++ b/config.ru/assets/i18#lang_ru/md.json @@ -0,0 +1,988 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838543641825283333", + "desc": "Übers Geländer?!😱🤯 #waitforit #fürdich #viral", + "create_time": 1592222521, + "author": { + "uid": "6664894458910425093", + "short_id": "45401983616", + "nickname": "SENDDICTED", + "signature": "Thomas | 23 🇩🇪\n🔥CEO of cliffjumping🤘🏼\n⬇️ Schaut auch auf YouTube vorbei!⬇️", + "avatar_thumb": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "senddicted", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "DE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1655085640501253", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1655085640501253" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151331381623ED30" + ], + "width": 720, + "height": 720 + } + ], + "language": "de", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAwe5H3_gAb16KGIbHwmBGtMvaNc2wMWbKnlMOaRlrtKb0eaWu46vY6mU-AXH9xV7L", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6515231601595518000, + "id_str": "6515231601595517698", + "title": "Believer [NSG Remix]", + "author": "Romy Wave", + "album": "", + "cover_hd": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1590632695033858.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1590632695033858.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 141, + "start_time": 0, + "end_time": 0, + "duration": 44, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6515231601595517698", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617286365010966", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617286365010966" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 7, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "18474", + "cha_name": "waitforit", + "desc": "Wait till the end, to find out the surprise. 🤔", + "schema": "aweme://aweme/challenge/detail?cid=18474", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/18474.html?name=waitforit&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=18474", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #waitforit Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #waitforit Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: waitforit", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/fbe71967963542743b12940221371e62", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_3586752", + "data_size": 4603148 + }, + "cover": { + "uri": "tos-maliva-p-0068/6be2dabb7b244b0bade4b75abb1c05d8", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/6be2dabb7b244b0bade4b75abb1c05d8~noop.webp?x-expires=1592658000&x-signature=6Y%2BLWVVR4ySHsA7yfDfSSDQ4F2g%3D&l=202006181309470101151331381623ED30" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/2c10c27ad20e49bd9a02f58e23757bb1_1592222523", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/2c10c27ad20e49bd9a02f58e23757bb1_1592222523?x-expires=1592658000&x-signature=9wMi6wiE1FIC8ciIR1KMy2p2%2FSo%3D&l=202006181309470101151331381623ED30" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/4e17020e4de34d369b8a3ef3f98ed88a_1592222523", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/4e17020e4de34d369b8a3ef3f98ed88a_1592222523~noop.image?x-expires=1592658000&x-signature=v5H8Gu22kPJrNDd0boql25c8u44%3D&l=202006181309470101151331381623ED30" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4663775 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 3586752, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_3586752", + "data_size": 4603148 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1934979, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_1934979", + "data_size": 2483304 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 1303777, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_1303777", + "data_size": 1673235 + }, + "is_h265": 0 + } + ], + "duration": 10267, + "download_suffix_logo_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4721548 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brjm6ck45u0f2vkvibv0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4794553}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838543641825283333.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838543641825283333", + "user_digged": 0, + "statistics": { + "aweme_id": "6838543641825283333", + "comment_count": 5760, + "digg_count": 705325, + "download_count": 10715, + "play_count": 22080863, + "share_count": 20459, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 10760 + }, + "status": { + "aweme_id": "6838543641825283333", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 21, + "end": 31, + "type": 1, + "hashtag_name": "waitforit", + "hashtag_id": "18474", + "is_commerce": false + }, + { + "start": 32, + "end": 40, + "type": 1, + "hashtag_name": "fürdich", + "hashtag_id": "5457735", + "is_commerce": false + }, + { + "start": 41, + "end": 47, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151331381623ED30" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838543641825283333.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838543641825283333", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out SENDDICTED’s video! #TikTok > ", + "share_desc": "Check out SENDDICTED's video! #TikTok", + "share_title": "Check out SENDDICTED’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10267, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": true, + "risk_sink": false, + "type": 1, + "content": "The action in this video could result in serious injury." + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6664894458910425000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "DE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838543641825283333", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "de", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6838869980759575813", + "desc": "So grateful ❤️", + "create_time": 1592298513, + "author": { + "uid": "6707212348945957894", + "short_id": "47537647200", + "nickname": "Keesha-Lee Joubert", + "signature": "Proudly South African 🇿🇦", + "avatar_thumb": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "keeshaleej12", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "ZA", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101151331381623ED30" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAB4-wWSGtwtd4AmIBp0fkYC8TRkPDvud59OtqaPxjU5Bqfce5-QGexBvlanJCZC05", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6838870089840840000, + "id_str": "6838870089840839430", + "title": "original sound - keeshaleej12", + "author": "Keesha-Lee Joubert", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838870167317940998.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838870167317940998.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 11, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6707212348945957894", + "owner_nickname": "Keesha-Lee Joubert", + "is_original": false, + "mid": "6838870089840839430", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "keeshaleej12", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAB4-wWSGtwtd4AmIBp0fkYC8TRkPDvud59OtqaPxjU5Bqfce5-QGexBvlanJCZC05", + "avatar_thumb": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1662614848724997", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662614848724997~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044700000brk8o03n6smsi6hh3oo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044700000brk8o03n6smsi6hh3oo0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044700000brk8o03n6smsi6hh3oo0_h264_540p_2456353", + "data_size": 3407577 + }, + "cover": { + "uri": "tos-maliva-p-0068/54109e81e1c942b893698d835b8c037f", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/54109e81e1c942b893698d835b8c037f~noop.webp?x-expires=1592658000&x-signature=okUCw1qmt1qC7wvTF1nyFrjKv6U%3D&l=202006181309470101151331381623ED30" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/48fada8b7c7f4290b04778d70ab2edb6_1592298515", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/48fada8b7c7f4290b04778d70ab2edb6_1592298515?x-expires=1592658000&x-signature=SaVefiahPB357Q2oIKg5lD4IAF8%3D&l=202006181309470101151331381623ED30" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/9bb77ebeeecb4ef7bfc83ead297e1c9a_1592298515", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/9bb77ebeeecb4ef7bfc83ead297e1c9a_1592298515~noop.image?x-expires=1592658000&x-signature=%2B8rv%2F7%2FNef2eugcr6AWPnwLFlDI%3D&l=202006181309470101151331381623ED30" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044700000brk8o03n6smsi6hh3oo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044700000brk8o03n6smsi6hh3oo0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3471253 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2456353, + "play_addr": { + "uri": "v09044700000brk8o03n6smsi6hh3oo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044700000brk8o03n6smsi6hh3oo0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044700000brk8o03n6smsi6hh3oo0_h264_540p_2456353", + "data_size": 3407577 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1456769, + "play_addr": { + "uri": "v09044700000brk8o03n6smsi6hh3oo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044700000brk8o03n6smsi6hh3oo0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044700000brk8o03n6smsi6hh3oo0_h264_540p_1456769", + "data_size": 2020903 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 1008970, + "play_addr": { + "uri": "v09044700000brk8o03n6smsi6hh3oo0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044700000brk8o03n6smsi6hh3oo0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044700000brk8o03n6smsi6hh3oo0_h264_540p_1008970", + "data_size": 1399695 + }, + "is_h265": 0 + } + ], + "duration": 11098, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044700000brk8o03n6smsi6hh3oo0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044700000brk8o03n6smsi6hh3oo0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3580832}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838869980759575813.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838869980759575813", + "user_digged": 0, + "statistics": { + "aweme_id": "6838869980759575813", + "comment_count": 22859, + "digg_count": 2134060, + "download_count": 94036, + "play_count": 39347274, + "share_count": 101169, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 81155 + }, + "status": { + "aweme_id": "6838869980759575813", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101151331381623ED30" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838869980759575813.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838869980759575813", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Keesha-Lee Joubert’s video! #TikTok > ", + "share_desc": "Check out Keesha-Lee Joubert's video! #TikTok", + "share_title": "Check out Keesha-Lee Joubert’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 11098, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6707212348945957894,\"author_country\":\"South Africa\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6707212348945958000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "ZA", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838869980759575813", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-9,\"end_time\":11031.6,\"p\":-1,\"y\":173.75,\"h\":0.1178,\"start_time\":0,\"r\":0,\"w\":0.7373,\"s\":1}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101151331381623ED30" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ru/assets/i18#lang_ru/ua.json b/config.ru/assets/i18#lang_ru/ua.json new file mode 100644 index 0000000..c0f5cde --- /dev/null +++ b/config.ru/assets/i18#lang_ru/ua.json @@ -0,0 +1,1113 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6836665325077925125", + "desc": "tutorial 😂 @positiff_ua", + "create_time": 1591785192, + "author": { + "uid": "6556167558418928640", + "short_id": "21819337347", + "nickname": "nadyadorofeeva", + "signature": "", + "avatar_thumb": { + "uri": "musically-maliva-obj/1605256501716998", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1605256501716998~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1605256501716998", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1605256501716998~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "nadyadorofeeva", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "UA", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1605767359056902", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1605767359056902" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040541B23B8D5" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1605256501716998", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1605256501716998~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1605256501716998", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1605256501716998~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAKzRXAjWD4vzm8JQrmrzxZizsW6PWoeMAmN3_gRHuCNpTNNEAg7aw8fYmiJGUxfaU", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6571644316488306000, + "id_str": "6571644316488305413", + "title": "original sound - shufflesoundhouse", + "author": "hi i love you", + "album": "shufflesoundhouse", + "cover_hd": { + "uri": "musically-maliva-obj/1639762469938182", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1639762469938182~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1639762469938182", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1639762469938182~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1639762469938182", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1639762469938182~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1639762469938182", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1639762469938182~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1604405350538246.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1604405350538246.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "313860224686338048", + "owner_nickname": "hi i love you", + "is_original": false, + "mid": "6571644316488305413", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "shufflesoundhouse", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617290376275973", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617290376275973" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAiMCQLsRibCm95trmE5n3hb5AvI3vfb86e3gLD1vg4BrIkRvIjw2xGgFB7lqeeOWd", + "avatar_thumb": { + "uri": "musically-maliva-obj/1639762469938182", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1639762469938182~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1639762469938182", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1639762469938182~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1639762469938182", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1639762469938182~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v090442d0000brgbd68fd3u38ogn9u0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brgbd68fd3u38ogn9u0g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090442d0000brgbd68fd3u38ogn9u0g_h264_540p_1813076", + "data_size": 3109880 + }, + "cover": { + "uri": "tos-maliva-p-0068/9e5ac1ab992345d8b16eb2ec67a24f54_1591785194", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/9e5ac1ab992345d8b16eb2ec67a24f54_1591785194~noop.webp?x-expires=1592658000&x-signature=5YQHcTRDc6juN%2BjgrBgYr7XasDs%3D&l=202006181309470101150040541B23B8D5" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/0bbb5d86a4874d6f84190ad251bb4932_1591785193", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/0bbb5d86a4874d6f84190ad251bb4932_1591785193?x-expires=1592658000&x-signature=LX88s60EUXpdtFOBVfBf24yR8SE%3D&l=202006181309470101150040541B23B8D5" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/001ccdcffee94a778aae92ec5b7729b2_1591785194", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/001ccdcffee94a778aae92ec5b7729b2_1591785194~noop.image?x-expires=1592658000&x-signature=OA6pKlEUSj2f9ysPG%2FPN0hinqXA%3D&l=202006181309470101150040541B23B8D5" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090442d0000brgbd68fd3u38ogn9u0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brgbd68fd3u38ogn9u0g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3184814 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1813076, + "play_addr": { + "uri": "v090442d0000brgbd68fd3u38ogn9u0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brgbd68fd3u38ogn9u0g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090442d0000brgbd68fd3u38ogn9u0g_h264_540p_1813076", + "data_size": 3109880 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1036823, + "play_addr": { + "uri": "v090442d0000brgbd68fd3u38ogn9u0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brgbd68fd3u38ogn9u0g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090442d0000brgbd68fd3u38ogn9u0g_h264_540p_1036823", + "data_size": 1778411 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 737926, + "play_addr": { + "uri": "v090442d0000brgbd68fd3u38ogn9u0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brgbd68fd3u38ogn9u0g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090442d0000brgbd68fd3u38ogn9u0g_h264_540p_737926", + "data_size": 1265729 + }, + "is_h265": 0 + } + ], + "duration": 13722, + "download_suffix_logo_addr": { + "uri": "v090442d0000brgbd68fd3u38ogn9u0g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brgbd68fd3u38ogn9u0g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3253859 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507402, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090442d0000brgbd68fd3u38ogn9u0g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090442d0000brgbd68fd3u38ogn9u0g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3312460}}\n" + }, + "share_url": "https://m.tiktok.com/v/6836665325077925125.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836665325077925125", + "user_digged": 0, + "statistics": { + "aweme_id": "6836665325077925125", + "comment_count": 1904, + "digg_count": 964627, + "download_count": 13602, + "play_count": 8528629, + "share_count": 6040, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1500 + }, + "status": { + "aweme_id": "6836665325077925125", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 12, + "end": 24, + "user_id": "6749929632563037189", + "type": 0, + "sec_uid": "MS4wLjABAAAAJeSgPpLXVMCHN9glGNkcIsqTkCgFVWu14fuEzfmsGOvrVyVjdE0YwY9_iyhbG0tU" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040541B23B8D5" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6836665325077925125.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836665325077925125", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out nadyadorofeeva’s video! #TikTok > ", + "share_desc": "Check out nadyadorofeeva's video! #TikTok", + "share_title": "Check out nadyadorofeeva’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13722, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6556167558418929000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "UA", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836665325077925125", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6834050583368846597", + "desc": "Restored #foryoupage #foryourpage #fyp #fypシ #fypchallenge #uk #tiktokphilippines #london #makemefamous #trending #viral #dance #tiktok #houseoftiktok", + "create_time": 1591176400, + "author": { + "uid": "6705018535704265733", + "short_id": "46779234712", + "nickname": "JessyHardy🇵🇭🇬🇧", + "signature": "FilBritish🇬🇧🇵🇭/AlternativeMissLondon2019 Winner/DANCER/healthworker", + "avatar_thumb": { + "uri": "musically-maliva-obj/1662466521011221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662466521011221~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1662466521011221", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662466521011221~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "j.a.thardy", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "GB", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040541B23B8D5" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1662466521011221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662466521011221~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1662466521011221", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662466521011221~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAANcuegWgDUP1WdErTkHGRfZCDZrqxW_XNHOSIWbeeQRjUt9_xFIsOkNJfdTCqpMIz", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6819024669455191000, + "id_str": "6819024669455190790", + "title": "barbie girl in a barbie world", + "author": "conrad rocha", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/add222339fed25fbd708e9a53b9d0006.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/add222339fed25fbd708e9a53b9d0006.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 19, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6706290103751017478", + "owner_nickname": "conrad rocha", + "is_original": false, + "mid": "6819024669455190790", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "conradrocha", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAa8fhosk9G4Lub6IOFjymZPU8lI0jpcDP7CTIfnM94N9DL-XkmyLo3k9owWcnSkig", + "avatar_thumb": { + "uri": "musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/d6ba0431fef76f7770dd9affbb76302b~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "88764338", + "cha_name": "foryoupage", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=88764338", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/88764338.html?name=foryoupage&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=88764338", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryoupage Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryoupage Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryoupage", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v090444c0000brbmphql83lb7l6i8e20", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbmphql83lb7l6i8e20&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbmphql83lb7l6i8e20_h264_540p_1464760", + "data_size": 2788721 + }, + "cover": { + "uri": "tos-maliva-p-0068/a84ed225fe8744029521f4b6b0ae5e92_1591176401", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/a84ed225fe8744029521f4b6b0ae5e92_1591176401~noop.webp?x-expires=1592658000&x-signature=epV6m2cgfxbyhlLTJt1zTgnGXYg%3D&l=202006181309470101150040541B23B8D5" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/a76c4c31cde94be09820d95fb8b116bc_1591176401", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/a76c4c31cde94be09820d95fb8b116bc_1591176401?x-expires=1592658000&x-signature=6BDpc3gQt6D6PLWrQUhdhkvoV9U%3D&l=202006181309470101150040541B23B8D5" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/df7c367ba0054d54884996346c8e19d8_1591176401", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/df7c367ba0054d54884996346c8e19d8_1591176401~noop.image?x-expires=1592658000&x-signature=GZEifSi9U6RTMU7I%2FfAnbn9mgTc%3D&l=202006181309470101150040541B23B8D5" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v090444c0000brbmphql83lb7l6i8e20", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbmphql83lb7l6i8e20&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2846656 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1464760, + "play_addr": { + "uri": "v090444c0000brbmphql83lb7l6i8e20", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbmphql83lb7l6i8e20&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbmphql83lb7l6i8e20_h264_540p_1464760", + "data_size": 2788721 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 927766, + "play_addr": { + "uri": "v090444c0000brbmphql83lb7l6i8e20", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbmphql83lb7l6i8e20&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbmphql83lb7l6i8e20_h264_540p_927766", + "data_size": 1766351 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 687585, + "play_addr": { + "uri": "v090444c0000brbmphql83lb7l6i8e20", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbmphql83lb7l6i8e20&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v090444c0000brbmphql83lb7l6i8e20_h264_540p_687585", + "data_size": 1309076 + }, + "is_h265": 0 + } + ], + "duration": 15231, + "download_suffix_logo_addr": { + "uri": "v090444c0000brbmphql83lb7l6i8e20", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbmphql83lb7l6i8e20&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2913613 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v090444c0000brbmphql83lb7l6i8e20\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v090444c0000brbmphql83lb7l6i8e20&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2990010}}\n" + }, + "share_url": "https://m.tiktok.com/v/6834050583368846597.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834050583368846597", + "user_digged": 0, + "statistics": { + "aweme_id": "6834050583368846597", + "comment_count": 213, + "digg_count": 7074, + "download_count": 2076, + "play_count": 222378, + "share_count": 1577, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 252 + }, + "status": { + "aweme_id": "6834050583368846597", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 9, + "end": 20, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 21, + "end": 33, + "type": 1, + "hashtag_name": "foryourpage", + "hashtag_id": "1598498371111942", + "is_commerce": false + }, + { + "start": 34, + "end": 38, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 39, + "end": 44, + "type": 1, + "hashtag_name": "fypシ", + "hashtag_id": "1637342470396934", + "is_commerce": false + }, + { + "start": 45, + "end": 58, + "type": 1, + "hashtag_name": "fypchallenge", + "hashtag_id": "1634922086900741", + "is_commerce": false + }, + { + "start": 59, + "end": 62, + "type": 1, + "hashtag_name": "uk", + "hashtag_id": "42801", + "is_commerce": false + }, + { + "start": 63, + "end": 81, + "type": 1, + "hashtag_name": "tiktokphilippines", + "hashtag_id": "89436630", + "is_commerce": false + }, + { + "start": 82, + "end": 89, + "type": 1, + "hashtag_name": "london", + "hashtag_id": "5609", + "is_commerce": false + }, + { + "start": 90, + "end": 103, + "type": 1, + "hashtag_name": "makemefamous", + "hashtag_id": "42733", + "is_commerce": false + }, + { + "start": 104, + "end": 113, + "type": 1, + "hashtag_name": "trending", + "hashtag_id": "20105", + "is_commerce": false + }, + { + "start": 114, + "end": 120, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + }, + { + "start": 121, + "end": 127, + "type": 1, + "hashtag_name": "dance", + "hashtag_id": "5054", + "is_commerce": false + }, + { + "start": 128, + "end": 135, + "type": 1, + "hashtag_name": "tiktok", + "hashtag_id": "23428", + "is_commerce": false + }, + { + "start": 136, + "end": 150, + "type": 1, + "hashtag_name": "houseoftiktok", + "hashtag_id": "1610458760028161", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040541B23B8D5" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834050583368846597.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834050583368846597", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out JessyHardy🇵🇭🇬🇧’s video! #TikTok > ", + "share_desc": "Check out JessyHardy🇵🇭🇬🇧's video! #TikTok", + "share_title": "Check out JessyHardy🇵🇭🇬🇧’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15231, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6705018535704265733,\"author_country\":\"United Kingdom\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6705018535704266000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "GB", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6822679324680899845", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040541B23B8D5" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ru/assets/i18#lang_ru/uz.json b/config.ru/assets/i18#lang_ru/uz.json new file mode 100644 index 0000000..f3e12eb --- /dev/null +++ b/config.ru/assets/i18#lang_ru/uz.json @@ -0,0 +1,1029 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6832997056559336709", + "desc": "", + "create_time": 1590931104, + "author": { + "uid": "6786720946369168390", + "short_id": "46973469648", + "nickname": "Aziza_Yoqubova", + "signature": "Actress", + "avatar_thumb": { + "uri": "musically-maliva-obj/1664786559709190", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664786559709190~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1664786559709190", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1664786559709190~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "aziza_yoqubova", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "UZ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094701011511923605242645" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1664786559709190", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664786559709190~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1664786559709190", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664786559709190~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA1Dw2DABimyqrsR7s5YG9I5Ub2W0fdpEgn5RP_TqxEuRDSxrDOY-dv2XLq46bBBDP", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6817142723322187000, + "id_str": "6817142723322186502", + "title": "original sound - ochilova_sevinch", + "author": "Seva", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/7657c9128498c41055e937978a3760ff", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7657c9128498c41055e937978a3760ff~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/7657c9128498c41055e937978a3760ff", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7657c9128498c41055e937978a3760ff~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/7657c9128498c41055e937978a3760ff", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7657c9128498c41055e937978a3760ff~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/7657c9128498c41055e937978a3760ff", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/7657c9128498c41055e937978a3760ff~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1664341116000293.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1664341116000293.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 12, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6803651781035492358", + "owner_nickname": "Seva", + "is_original": false, + "mid": "6817142723322186502", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "ochilova_sevinch", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAHGZ1OgbUp0o8U6Li_hCAiscFSu-8XaX8UhEPfy1SzIXdOaDPBTQQ8PvK2VGaL8F4", + "avatar_thumb": { + "uri": "musically-maliva-obj/7657c9128498c41055e937978a3760ff", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/7657c9128498c41055e937978a3760ff~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/7657c9128498c41055e937978a3760ff", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7657c9128498c41055e937978a3760ff~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/7657c9128498c41055e937978a3760ff", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/7657c9128498c41055e937978a3760ff~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044590000br9qsvvdee91gqpqmsc0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9qsvvdee91gqpqmsc0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br9qsvvdee91gqpqmsc0_h264_540p_1673321", + "data_size": 2607872 + }, + "cover": { + "uri": "tos-maliva-p-0068/59c795526bab44828ee79a1219b418f4", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/59c795526bab44828ee79a1219b418f4~noop.webp?x-expires=1592658000&x-signature=S%2BQHQJM9PhbwD4%2FYv0pAnvmar%2Bc%3D&l=2020061813094701011511923605242645" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/76ed2c35cb3b4de48973dc2f9ffdde77_1590931107", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/76ed2c35cb3b4de48973dc2f9ffdde77_1590931107?x-expires=1592658000&x-signature=dggsFaoc0gruqGi3Halkq4GhXA8%3D&l=2020061813094701011511923605242645" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/b94d2fd2373a452e8d4e454899e38bc3_1590931105", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b94d2fd2373a452e8d4e454899e38bc3_1590931105~noop.image?x-expires=1592658000&x-signature=mURzVigfRxMQ0hKe3ooNueHo%2Fdc%3D&l=2020061813094701011511923605242645" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044590000br9qsvvdee91gqpqmsc0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9qsvvdee91gqpqmsc0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2693161 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1673321, + "play_addr": { + "uri": "v09044590000br9qsvvdee91gqpqmsc0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9qsvvdee91gqpqmsc0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br9qsvvdee91gqpqmsc0_h264_540p_1673321", + "data_size": 2607872 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 906056, + "play_addr": { + "uri": "v09044590000br9qsvvdee91gqpqmsc0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9qsvvdee91gqpqmsc0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br9qsvvdee91gqpqmsc0_h264_540p_906056", + "data_size": 1412089 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 635197, + "play_addr": { + "uri": "v09044590000br9qsvvdee91gqpqmsc0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9qsvvdee91gqpqmsc0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br9qsvvdee91gqpqmsc0_h264_540p_635197", + "data_size": 989956 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 518789, + "play_addr": { + "uri": "v09044590000br9qsvvdee91gqpqmsc0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9qsvvdee91gqpqmsc0&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br9qsvvdee91gqpqmsc0_h264_480p_518789", + "data_size": 808534 + }, + "is_h265": 0 + } + ], + "duration": 12468, + "download_suffix_logo_addr": { + "uri": "v09044590000br9qsvvdee91gqpqmsc0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9qsvvdee91gqpqmsc0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2762683 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507401, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044590000br9qsvvdee91gqpqmsc0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br9qsvvdee91gqpqmsc0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2822518}}\n" + }, + "share_url": "https://m.tiktok.com/v/6832997056559336709.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832997056559336709", + "user_digged": 0, + "statistics": { + "aweme_id": "6832997056559336709", + "comment_count": 0, + "digg_count": 31962, + "download_count": 4834, + "play_count": 882087, + "share_count": 1345, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 396 + }, + "status": { + "aweme_id": "6832997056559336709", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094701011511923605242645" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6832997056559336709.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6832997056559336709", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Aziza_Yoqubova’s video! #TikTok > ", + "share_desc": "Check out Aziza_Yoqubova's video! #TikTok", + "share_title": "Check out Aziza_Yoqubova’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12468, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6786720946369168000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "UZ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6832997056559336709", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 3, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6827364423309577478", + "desc": "#угадайкто мая дикая касандра😈", + "create_time": 1589619659, + "author": { + "uid": "6663855430153191430", + "short_id": "36747829840", + "nickname": "nigina🧸♥️", + "signature": "insta @niginaa1_ 🖤\nПо поводу рекламы директ инстa❗️\nReklam uchun drekt insta‼️", + "avatar_thumb": { + "uri": "musically-maliva-obj/ca89eae4588850eb0c4536bf54e635dc", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca89eae4588850eb0c4536bf54e635dc~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/ca89eae4588850eb0c4536bf54e635dc", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca89eae4588850eb0c4536bf54e635dc~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "niginaa1_", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "UZ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094701011511923605242645" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/ca89eae4588850eb0c4536bf54e635dc", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca89eae4588850eb0c4536bf54e635dc~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/ca89eae4588850eb0c4536bf54e635dc", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca89eae4588850eb0c4536bf54e635dc~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA0SM0uMApvUd4NfsNyL_FheK25ALt0Qb7J7pEsXV7S61hSbxsLKUCw-nFIMd3tFV_", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6815599843319352000, + "id_str": "6815599843319352070", + "title": "original sound - ya_s_vami", + "author": "ShushannaBestt", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/e7082aa61e1c3746b698c792099cb090", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/e7082aa61e1c3746b698c792099cb090~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/e7082aa61e1c3746b698c792099cb090", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/e7082aa61e1c3746b698c792099cb090~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/e7082aa61e1c3746b698c792099cb090", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/e7082aa61e1c3746b698c792099cb090~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/e7082aa61e1c3746b698c792099cb090", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/e7082aa61e1c3746b698c792099cb090~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663965676276789.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663965676276789.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 41, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "65501072080838656", + "owner_nickname": "ShushannaBestt", + "is_original": false, + "mid": "6815599843319352070", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "ya_s_vami", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAXhRxFWNL86XtYRtVEvynmDZFLhRlVx5FUwj7nCgs0vWCOt3AXAam-io1djQMy2qA", + "avatar_thumb": { + "uri": "musically-maliva-obj/e7082aa61e1c3746b698c792099cb090", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/e7082aa61e1c3746b698c792099cb090~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/e7082aa61e1c3746b698c792099cb090", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/e7082aa61e1c3746b698c792099cb090~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/e7082aa61e1c3746b698c792099cb090", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/e7082aa61e1c3746b698c792099cb090~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "87638863", + "cha_name": "угадайкто", + "desc": "Запишите себя с друзьями, стоящими спиной к камере, и повернитесь вместе с ними! Тот, кого приблизит трекинг лица, будет всем покупать вкусняшки целый месяц 🔥", + "schema": "aweme://aweme/challenge/detail?cid=87638863", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/87638863.html?name=%D1%83%D0%B3%D0%B0%D0%B4%D0%B0%D0%B9%D0%BA%D1%82%D0%BE&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=87638863", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #угадайкто Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #угадайкто Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: угадайкто", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/b58c6d0a0d7c654a5e2661fd6468f72d", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044a30000bqvqna26agh9niq9hiog", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqvqna26agh9niq9hiog&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a30000bqvqna26agh9niq9hiog_h264_540p_985950", + "data_size": 1865664 + }, + "cover": { + "uri": "tos-maliva-p-0068/b4d58ca682024d12a57f8d71ca77e5dd", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b4d58ca682024d12a57f8d71ca77e5dd~noop.webp?x-expires=1592658000&x-signature=0UFsw%2FuftosEJ%2F8SGmgluY3kzGU%3D&l=2020061813094701011511923605242645" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/4603d8449789483cb6c6d361aaafc3ee_1589619661", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/4603d8449789483cb6c6d361aaafc3ee_1589619661?x-expires=1592658000&x-signature=ZpookCUUYkQEKUjFhu0Wt%2B9cCq8%3D&l=2020061813094701011511923605242645" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/516c63e405e14fc98096d5908cd177bb_1589619661", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/516c63e405e14fc98096d5908cd177bb_1589619661~noop.image?x-expires=1592658000&x-signature=xUmh0NT2Bgu2PdyHPdJN2fX8c%2BU%3D&l=2020061813094701011511923605242645" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044a30000bqvqna26agh9niq9hiog", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqvqna26agh9niq9hiog&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1953203 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 985950, + "play_addr": { + "uri": "v09044a30000bqvqna26agh9niq9hiog", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqvqna26agh9niq9hiog&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a30000bqvqna26agh9niq9hiog_h264_540p_985950", + "data_size": 1865664 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 502006, + "play_addr": { + "uri": "v09044a30000bqvqna26agh9niq9hiog", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqvqna26agh9niq9hiog&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a30000bqvqna26agh9niq9hiog_h264_540p_502006", + "data_size": 949921 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 354262, + "play_addr": { + "uri": "v09044a30000bqvqna26agh9niq9hiog", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqvqna26agh9niq9hiog&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a30000bqvqna26agh9niq9hiog_h264_540p_354262", + "data_size": 670354 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 287069, + "play_addr": { + "uri": "v09044a30000bqvqna26agh9niq9hiog", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqvqna26agh9niq9hiog&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044a30000bqvqna26agh9niq9hiog_h264_480p_287069", + "data_size": 543207 + }, + "is_h265": 0 + } + ], + "duration": 15138, + "download_suffix_logo_addr": { + "uri": "v09044a30000bqvqna26agh9niq9hiog", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044a30000bqvqna26agh9niq9hiog&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2020522 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404 + }, + "share_url": "https://m.tiktok.com/v/6827364423309577478.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827364423309577478", + "user_digged": 0, + "statistics": { + "aweme_id": "6827364423309577478", + "comment_count": 123, + "digg_count": 4843, + "download_count": 106, + "play_count": 50064, + "share_count": 32, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1 + }, + "status": { + "aweme_id": "6827364423309577478", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 10, + "type": 1, + "hashtag_name": "угадайкто", + "hashtag_id": "87638863", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094701011511923605242645" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6827364423309577478.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827364423309577478", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out nigina🧸♥️’s video! #TikTok > ", + "share_desc": "Check out nigina🧸♥️'s video! #TikTok", + "share_title": "Check out nigina🧸♥️’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15138, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6663855430153191430,\"author_country\":\"Uzbekistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6663855430153191000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "UZ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "stickers": "235287", + "group_id": "6827364423309577478", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "sticker_detail": { + "id": "235287", + "name": "Приближение лица", + "children": null, + "tags": null + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ru", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813094701011511923605242645" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.ru/resources.arsc b/config.ru/resources.arsc new file mode 100644 index 0000000..43f075d Binary files /dev/null and b/config.ru/resources.arsc differ diff --git a/config.th/AndroidManifest.xml b/config.th/AndroidManifest.xml new file mode 100644 index 0000000..501fceb Binary files /dev/null and b/config.th/AndroidManifest.xml differ diff --git a/config.th/META-INF/BNDLTOOL.RSA b/config.th/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..8e6e928 Binary files /dev/null and b/config.th/META-INF/BNDLTOOL.RSA differ diff --git a/config.th/META-INF/BNDLTOOL.SF b/config.th/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..130c998 --- /dev/null +++ b/config.th/META-INF/BNDLTOOL.SF @@ -0,0 +1,20 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: 8XuvYdD+dGDTLhBRELEh/aGSFuw= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: zMapp3clg1VPRyrykl4wzKRFXeA= + +Name: assets/i18#lang_th/default.json +SHA1-Digest: ri2vjG0+gpGeEvU9cLORE0sYtos= + +Name: assets/i18#lang_th/kr.json +SHA1-Digest: j+URfM9rOKSj6qHaybIQ75FGO0s= + +Name: assets/i18#lang_th/la.json +SHA1-Digest: KF4jomqsSAoqYhoQlX1YqDINVKs= + +Name: resources.arsc +SHA1-Digest: AtpEwsZl1CTPq/iolw0R/qUlhIs= + diff --git a/config.th/META-INF/MANIFEST.MF b/config.th/META-INF/MANIFEST.MF new file mode 100644 index 0000000..497c17c --- /dev/null +++ b/config.th/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: 5b3dTc2mzTgqewPBDgZ4K7DM5QU= + +Name: assets/i18#lang_th/default.json +SHA1-Digest: WAYKCwDXwdRQBX6dBlLIde80uq4= + +Name: assets/i18#lang_th/kr.json +SHA1-Digest: 2gMqbWD3eeyRiFaETzfxD4FWtIA= + +Name: assets/i18#lang_th/la.json +SHA1-Digest: RCmvLpZp9S0tHCA9Kzv+2ZC7MLo= + +Name: resources.arsc +SHA1-Digest: j0Maj2KpWYrY6qG5nP3ok8DIQWs= + diff --git a/config.th/assets/i18#lang_th/default.json b/config.th/assets/i18#lang_th/default.json new file mode 100644 index 0000000..83ce3b2 --- /dev/null +++ b/config.th/assets/i18#lang_th/default.json @@ -0,0 +1,1081 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838989854651485445", + "desc": "🤣 Follow to see more @baileyhall208 #foryou #trend #fyp #foryoupage #funny #viral", + "create_time": 1592326411, + "author": { + "uid": "6793978522702791685", + "short_id": "47173227664", + "nickname": "Mv Ryhan", + "signature": "Follow me\n I love my Followers \n⬇️ New Video ❤❤❤", + "avatar_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mvryhan", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "FR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAy80UAaf4ccYNfiPoSagJ03zHVxAzuDHkIb_oFsw51qLVHNEsv1ijPVWp_a-wbIkr", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6838989845474463000, + "id_str": "6838989845474462470", + "title": "original sound - Mv Ryhan", + "author": "Mv Ryhan", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838989826637777669.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838989826637777669.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6793978522702791685", + "owner_nickname": "Mv Ryhan", + "is_original": false, + "mid": "6838989845474462470", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mvryhan", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAy80UAaf4ccYNfiPoSagJ03zHVxAzuDHkIb_oFsw51qLVHNEsv1ijPVWp_a-wbIkr", + "avatar_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "42164", + "cha_name": "foryou", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=42164", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/42164?name=foryou&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=42164", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_1518534", + "data_size": 2481475 + }, + "cover": { + "uri": "tos-maliva-p-0068/cdcd6c3c20de4c158019b5fbccb28fb9_1592326415", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/cdcd6c3c20de4c158019b5fbccb28fb9_1592326415~noop.webp?x-expires=1592658000&x-signature=Uo6Y4fTYJNUoMR3Wnc3bTX%2BraPQ%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/ea083abdde704eadbee181c5d843fdf5_1592326414", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/ea083abdde704eadbee181c5d843fdf5_1592326414?x-expires=1592658000&x-signature=tJk15Mxn02eVNWnAMew7bZ4KTgY%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/03eb30d15bb54b18a4ef295d73972013_1592326414", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/03eb30d15bb54b18a4ef295d73972013_1592326414~noop.image?x-expires=1592658000&x-signature=FkwOgtJzb44GerKsurdQiJWrDYE%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2475571 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1518534, + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_1518534", + "data_size": 2481475 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 715348, + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_715348", + "data_size": 1168969 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 441226, + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_441226", + "data_size": 721019 + }, + "is_h265": 0 + } + ], + "duration": 13073, + "download_suffix_logo_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2544442 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044100000brkfhm3r1j8791lvp99g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2621941}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6838989854651485445/?region=CN&mid=6838989845474462470&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838989854651485445", + "user_digged": 0, + "statistics": { + "aweme_id": "6838989854651485445", + "comment_count": 576, + "digg_count": 191156, + "download_count": 2485, + "play_count": 12915467, + "share_count": 6929, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1879 + }, + "status": { + "aweme_id": "6838989854651485445", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 22, + "end": 36, + "user_id": "6735556032577881093", + "type": 0, + "sec_uid": "MS4wLjABAAAANOTqdMGVuOoGGkkXiS8tf7Uy6e7QZArJm1_CFw1MO5ByWo4HyTFhkNpQ1vB0OGj3" + }, + { + "start": 37, + "end": 44, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 45, + "end": 51, + "type": 1, + "hashtag_name": "trend", + "hashtag_id": "44895", + "is_commerce": false + }, + { + "start": 52, + "end": 56, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 57, + "end": 68, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 69, + "end": 75, + "type": 1, + "hashtag_name": "funny", + "hashtag_id": "5424", + "is_commerce": false + }, + { + "start": 76, + "end": 82, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6838989854651485445/?region=CN&mid=6838989845474462470&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838989854651485445", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Mv Ryhan’s video! #TikTok > ", + "share_desc": "Check out Mv Ryhan's video! #TikTok", + "share_title": "Check out Mv Ryhan’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13073, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6793978522702792000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "FR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838989854651485445", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6836943379440487682", + "desc": "คิดถึง@san_tarclaus @grace7831 @arnon605ac @james2233443 @kiw.z @ponlawad", + "create_time": 1591849930, + "author": { + "uid": "6564259654394150914", + "short_id": "2179731474", + "nickname": "ปอม ปาร์คเกอร์🙈💕", + "signature": "FB ปอม ปาร์คเกอร์\nIG. Pomparker3\nติดต่องาน LINE pomparker2", + "avatar_thumb": { + "uri": "tiktok-obj/1665388543455234", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1665388543455234.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1665388543455234", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1665388543455234.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "pomparker3", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "TH", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + } + ], + "language": "th", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1665388543455234", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1665388543455234~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1665388543455234", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1665388543455234~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAq43Jz--Oqgq1DHjZnqYeQmsH3dznXw9WScanRWWn7VzggL-XykjWOKuuO_oF-77m", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6815239209398439000, + "id_str": "6815239209398438658", + "title": "original sound - ดีเจบอล จี๊ดจ๊าด", + "author": "ดีเจบอล จี๊ดจ๊าด", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663878261097474.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663878261097474.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 40, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6525717943756898305", + "owner_nickname": "ดีเจบอล จี๊ดจ๊าด", + "is_original": false, + "mid": "6815239209398438658", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "djball", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAHFMjQ1p1Wiy7EJCDEYyYb_ewdsaplrlEKfp1H6emAjmZuk99v866L1UXC1x5xP7V", + "avatar_thumb": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1658795591877650", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1658795591877650.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000brgr6qscsjqp7hcmsjl0_h264_540p_1837857", + "data_size": 2357512 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/4a44e377e5fb4eb7ad010c7c3151440c", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/4a44e377e5fb4eb7ad010c7c3151440c.webp?x-expires=1592658000&x-signature=CRdb2AERV7zKTje5T5o%2BLuKGnBM%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "height": 540, + "width": 960, + "dynamic_cover": { + "uri": "v0201/8e7adeacfa094379b675902890aacf2d_1591849933", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/8e7adeacfa094379b675902890aacf2d_1591849933?x-expires=1592658000&x-signature=%2F9a5MjFfPmgvokSYxq%2FJP93Y35k%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/4926007cfc3e455ca4887399987443bf_1591849933", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/4926007cfc3e455ca4887399987443bf_1591849933.jpeg?x-expires=1592658000&x-signature=J7ibCXpIiQ49JASqc%2B3A%2FntbGf4%3D&l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2438374 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1837857, + "play_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000brgr6qscsjqp7hcmsjl0_h264_540p_1837857", + "data_size": 2357512 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1037060, + "play_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000brgr6qscsjqp7hcmsjl0_h264_540p_1037060", + "data_size": 1330289 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 727853, + "play_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025080000brgr6qscsjqp7hcmsjl0_h264_540p_727853", + "data_size": 933654 + }, + "is_h265": 0 + } + ], + "duration": 10262, + "download_suffix_logo_addr": { + "uri": "v07025080000brgr6qscsjqp7hcmsjl0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2509981 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025080000brgr6qscsjqp7hcmsjl0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025080000brgr6qscsjqp7hcmsjl0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2611025}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6836943379440487682/?region=CN&mid=6815239209398438658&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836943379440487682", + "user_digged": 0, + "statistics": { + "aweme_id": "6836943379440487682", + "comment_count": 2574, + "digg_count": 874583, + "download_count": 47392, + "play_count": 10476804, + "share_count": 27266, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 295 + }, + "status": { + "aweme_id": "6836943379440487682", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 6, + "end": 19, + "user_id": "6546550942689984513", + "type": 0, + "sec_uid": "MS4wLjABAAAAcOiI8gwz4B-zCzN17BtFFTyceP8pZUpgljgZECUO7Ym3fXdDCcawiSOteZTlsyYW" + }, + { + "start": 20, + "end": 30, + "user_id": "6513356778670178306", + "type": 0, + "sec_uid": "MS4wLjABAAAAP6RB6oDgJFMQzNYym--vnl0FRE280xgqDBvznfDzib1jVH4OoH65HPtFSN17GVh-" + }, + { + "start": 31, + "end": 42, + "user_id": "80569407300", + "type": 0, + "sec_uid": "MS4wLjABAAAAb6_J4bkp-x8W_2jziEK0MSxGoCrfexQyV6rC49ZQAAw" + }, + { + "start": 43, + "end": 56, + "user_id": "6578620797504733185", + "type": 0, + "sec_uid": "MS4wLjABAAAALdkN1jtmPnOXNDdE06vJewMrubrmSY9Yq45kBGlObzanl1yJ5VAcyCAZxHBNAd_U" + }, + { + "start": 57, + "end": 63, + "user_id": "6533772710082183170", + "type": 0, + "sec_uid": "MS4wLjABAAAAZAgnVUtkxbRkidcBiSvmH3c2ATA96jheVaeU8qc42YxnvE8yPcb7aPcK0XLT4w6a" + }, + { + "start": 64, + "end": 73, + "user_id": "85258329080", + "type": 0, + "sec_uid": "MS4wLjABAAAALGWVUv1RkGJ9VaTutlZFXD6a1_Cr8FzFxXrEZ0YE3_0" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101152280700523DB58" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6836943379440487682/?region=CN&mid=6815239209398438658&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836943379440487682", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ปอม ปาร์คเกอร์🙈💕’s video! #TikTok > ", + "share_desc": "Check out ปอม ปาร์คเกอร์🙈💕's video! #TikTok", + "share_title": "Check out ปอม ปาร์คเกอร์🙈💕’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10262, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6564259654394151000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "TH", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836943379440487682", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "th", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309490101152280700523DB58" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.th/assets/i18#lang_th/kr.json b/config.th/assets/i18#lang_th/kr.json new file mode 100644 index 0000000..5dc3109 --- /dev/null +++ b/config.th/assets/i18#lang_th/kr.json @@ -0,0 +1,1027 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6839212835831041282", + "desc": "북한이 영상을 처음으로 공개했습니다. 남과 북이 함께 지은 공동연락사무소가 순식간에 잿더미가 됐습니다. #sbsnews #sbs뉴스 #짧뚱뉴스 #틱톡교실 #tlog", + "create_time": 1592378329, + "author": { + "uid": "6750114792810431490", + "short_id": "33153581849", + "nickname": "SBSNEWS", + "signature": "쉽고 친절하고 유익한 뉴스\n🎉 based in Seoul, SOKO 🇰🇷", + "avatar_thumb": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "sbsnews", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "verified account", + "is_ad_fake": false, + "followers_detail": null, + "region": "KR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + } + ], + "language": "ko", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1647977737246722~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1647977737246722~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAJUo4t65sJpwu6HaSOAVbarqZVPb5NwR64L1X5xoVb0v0n8l62QfA3SHij_zLfV1H", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6839212861672148000, + "id_str": "6839212861672147714", + "title": "original sound - SBSNEWS", + "author": "SBSNEWS", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6839212728146594562.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6839212728146594562.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 17, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6750114792810431490", + "owner_nickname": "SBSNEWS", + "is_original": false, + "mid": "6839212861672147714", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "sbsnews", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAJUo4t65sJpwu6HaSOAVbarqZVPb5NwR64L1X5xoVb0v0n8l62QfA3SHij_zLfV1H", + "avatar_thumb": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1647977737246722", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1647977737246722.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1630493511180289", + "cha_name": "sbsnews", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1630493511180289", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1630493511180289?name=sbsnews&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1630493511180289", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #sbsnews Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #sbsnews Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: sbsnews", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025130000brks7kclr56b7u9hhskg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025130000brks7kclr56b7u9hhskg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025130000brks7kclr56b7u9hhskg_h264_540p_1376331", + "data_size": 2944318 + }, + "cover": { + "uri": "large/v0201/3e7ce8106d4e409eae287cdf8fb20fbe_1592378332", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/3e7ce8106d4e409eae287cdf8fb20fbe_1592378332.webp?x-expires=1592658000&x-signature=EHGPm%2FXU5mKm5pdezcwRgii0a0w%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/517caaa1530042769219b0db2eb08b0f_1592378332", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/517caaa1530042769219b0db2eb08b0f_1592378332?x-expires=1592658000&x-signature=RNpGHoM0V90ZxBmCBQdl2BTQeOU%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/02816838d51c4e21a106b985310a588c_1592378332", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/02816838d51c4e21a106b985310a588c_1592378332.jpeg?x-expires=1592658000&x-signature=Lxq56UMaGypusZC0tut8bcRfNRw%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025130000brks7kclr56b7u9hhskg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025130000brks7kclr56b7u9hhskg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3054570 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1376331, + "play_addr": { + "uri": "v07025130000brks7kclr56b7u9hhskg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025130000brks7kclr56b7u9hhskg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025130000brks7kclr56b7u9hhskg_h264_540p_1376331", + "data_size": 2944318 + }, + "is_h265": 0 + } + ], + "duration": 17114, + "download_suffix_logo_addr": { + "uri": "v07025130000brks7kclr56b7u9hhskg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025130000brks7kclr56b7u9hhskg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3123276 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507406, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025130000brks7kclr56b7u9hhskg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025130000brks7kclr56b7u9hhskg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3195725}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6839212835831041282/?region=CN&mid=6839212861672147714&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839212835831041282", + "user_digged": 0, + "statistics": { + "aweme_id": "6839212835831041282", + "comment_count": 10271, + "digg_count": 57953, + "download_count": 8852, + "play_count": 2576541, + "share_count": 9793, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 96 + }, + "status": { + "aweme_id": "6839212835831041282", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 58, + "end": 66, + "type": 1, + "hashtag_name": "sbsnews", + "hashtag_id": "1630493511180289", + "is_commerce": false + }, + { + "start": 67, + "end": 73, + "type": 1, + "hashtag_name": "sbs뉴스", + "hashtag_id": "1624266507179009", + "is_commerce": false + }, + { + "start": 74, + "end": 79, + "type": 1, + "hashtag_name": "짧뚱뉴스", + "hashtag_id": "1649268230232065", + "is_commerce": false + }, + { + "start": 80, + "end": 85, + "type": 1, + "hashtag_name": "틱톡교실", + "hashtag_id": "1613565602528258", + "is_commerce": false + }, + { + "start": 86, + "end": 91, + "type": 1, + "hashtag_name": "tlog", + "hashtag_id": "61219889", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6839212835831041282/?region=CN&mid=6839212861672147714&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839212835831041282", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out SBSNEWS’s video! #TikTok > ", + "share_desc": "Check out SBSNEWS's video! #TikTok", + "share_title": "Check out SBSNEWS’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 17114, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6750114792810431000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "KR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6839212835831041282", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ko", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6829867465447574789", + "desc": "First time waxing #familystorytime #waxing #foryou", + "create_time": 1590202441, + "author": { + "uid": "6628808851741425670", + "short_id": "32984000729", + "nickname": "ER Bros", + "signature": "YouTube & Insta: ERBros\nSnapchat: Edallar", + "avatar_thumb": { + "uri": "musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "erbros", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/79af5f3942eee8c41548d648acfdd1d5~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAApiKuEk4GapYrEzfIt5P01LNpr2WfDL6pUu9Wb5voYgWSYQDsh6XracT6EAAQ0ygp", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6758172399012678000, + "id_str": "6758172399012677634", + "title": "Buttercup", + "author": "Jack Stauber", + "album": "Pop Food", + "cover_hd": { + "uri": "tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/3a9ab21c7a8743d99d918dbafb3b8b13.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/82b3651babdfa3a5a0684d34e5530afa.m4a", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/82b3651babdfa3a5a0684d34e5530afa.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 60, + "extra": "{\"reviewed\":1,\"beats\":{\"beats_tracker\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1653592896263175\",\"energy_trace\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1653592867205134\",\"merged_beats\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1653592896319501\",\"audio_effect_onset\":\"https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1653592867238925\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1223267132,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6758172399012677634", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1649972657320962", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1649972657320962" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1223267132", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 114, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1636271943174150", + "cha_name": "familystorytime", + "desc": "Every family has a story, so tell us your #FamilyStorytime.", + "schema": "aweme://aweme/challenge/detail?cid=1636271943174150", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1636271943174150?name=familystorytime&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1636271943174150", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #familystorytime Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #familystorytime Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: familystorytime", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/58393bcb5207848af058bed26dee83cf", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044e80000br490a02htni4ko9dl70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br490a02htni4ko9dl70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br490a02htni4ko9dl70_h264_540p_1476305", + "data_size": 10896426 + }, + "cover": { + "uri": "tos-maliva-p-0068/09df5340c45c47368691e36fb9aa1d07", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/09df5340c45c47368691e36fb9aa1d07~noop.webp?x-expires=1592658000&x-signature=%2BAYGldtJimllBRu4GfOn0cdwvn4%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/6235ec728b554023a25835a785f938a8_1590202444", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/6235ec728b554023a25835a785f938a8_1590202444?x-expires=1592658000&x-signature=rilrEXH%2B6d%2Ba%2Flj1OTQ1dK9xPfY%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/37bd685f19e545188eeede42e22f1739_1590202444", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/37bd685f19e545188eeede42e22f1739_1590202444~noop.image?x-expires=1592658000&x-signature=kSu85IHWlAgDDUYzBYrPtpBUkHQ%3D&l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044e80000br490a02htni4ko9dl70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br490a02htni4ko9dl70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 11442417 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1476305, + "play_addr": { + "uri": "v09044e80000br490a02htni4ko9dl70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br490a02htni4ko9dl70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000br490a02htni4ko9dl70_h264_540p_1476305", + "data_size": 10896426 + }, + "is_h265": 0 + } + ], + "duration": 59047, + "download_suffix_logo_addr": { + "uri": "v09044e80000br490a02htni4ko9dl70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br490a02htni4ko9dl70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 11510642 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507448, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044e80000br490a02htni4ko9dl70\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000br490a02htni4ko9dl70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":11883408}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6829867465447574789/?region=CN&mid=6758172399012677634&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829867465447574789", + "user_digged": 0, + "statistics": { + "aweme_id": "6829867465447574789", + "comment_count": 4914, + "digg_count": 919519, + "download_count": 2624, + "play_count": 15341189, + "share_count": 1943, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 39 + }, + "status": { + "aweme_id": "6829867465447574789", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 18, + "end": 34, + "type": 1, + "hashtag_name": "familystorytime", + "hashtag_id": "1636271943174150", + "is_commerce": false + }, + { + "start": 35, + "end": 42, + "type": 1, + "hashtag_name": "waxing", + "hashtag_id": "237700", + "is_commerce": false + }, + { + "start": 43, + "end": 50, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152280761E23E7E6" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6829867465447574789/?region=CN&mid=6758172399012677634&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829867465447574789", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ER Bros’s video! #TikTok > ", + "share_desc": "Check out ER Bros's video! #TikTok", + "share_title": "Check out ER Bros’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 59047, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6628808851741426000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829867465447574789", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":0,\"end_time\":58966.6667,\"p\":-1,\"y\":259.2133,\"h\":0.1503,\"start_time\":56966.6667,\"r\":0,\"w\":0.8447,\"s\":1}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101152280761E23E7E6" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.th/assets/i18#lang_th/la.json b/config.th/assets/i18#lang_th/la.json new file mode 100644 index 0000000..f1ad302 --- /dev/null +++ b/config.th/assets/i18#lang_th/la.json @@ -0,0 +1,915 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6835818555452247297", + "desc": "", + "create_time": 1591588037, + "author": { + "uid": "6784758569575678977", + "short_id": "33925748681", + "nickname": "ກີກີ້ OFFICIAL", + "signature": "ຮັບງານລີວິວທຸກຢ່າງ91919222\nline:ID: keekych\nYT: keekychanel\nເພຈ:ກີກີ້ ສາວຜູ້ໄທ", + "avatar_thumb": { + "uri": "tiktok-obj/1665029518766081", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1665029518766081.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1665029518766081", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1665029518766081.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "keekychanel", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "LA", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101152280600023956D" + ], + "width": 720, + "height": 720 + } + ], + "language": "th", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1665029518766081", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1665029518766081~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1665029518766081", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1665029518766081~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAxMlzI2qx6QUh08L286yt_ruhR6PQAbCxBSlawJ_eUFLkfkLhUAo8AJdXP061I5ns", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6830722546430774000, + "id_str": "6830722546430774017", + "title": "original sound - Bigyai seehalad", + "author": "Bigyai seehalad", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/78929f4d17bd1e907d317651a0255822.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/78929f4d17bd1e907d317651a0255822.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 59, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6595484600746180609", + "owner_nickname": "Bigyai seehalad", + "is_original": false, + "mid": "6830722546430774017", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "bigyaija", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAA7-2Cs7K6MpFIXsBIqMeBckun8qvoYeAFiNBK8O0s3GeHBK496RubMNjrWMVG94Y4", + "avatar_thumb": { + "uri": "tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/6fa1d3a221a5e28fdaac3e7bf1c143bb.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v07025380000brer9cfff6fsh190lj9g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025380000brer9cfff6fsh190lj9g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025380000brer9cfff6fsh190lj9g_h264_540p_2148199", + "data_size": 3067897 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/2b5262f46bd94378976ae2cad9e79f26", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/2b5262f46bd94378976ae2cad9e79f26.webp?x-expires=1592658000&x-signature=EWkdwJJmD3QvUho17rGDg%2BBFYvA%3D&l=202006181309470101152280600023956D" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "v0201/6dc46f436beb4df0806009fb445e6335_1591588040", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/6dc46f436beb4df0806009fb445e6335_1591588040?x-expires=1592658000&x-signature=VLoPUcp63zV0266IlFAF4T30VFw%3D&l=202006181309470101152280600023956D" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/3f528c0b7cd54b8ea2bc0671dc325d7c_1591588039", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/3f528c0b7cd54b8ea2bc0671dc325d7c_1591588039.jpeg?x-expires=1592658000&x-signature=Ibh44T5%2BvKfLVCUt%2BrNqs%2B4LpAY%3D&l=202006181309470101152280600023956D" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025380000brer9cfff6fsh190lj9g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025380000brer9cfff6fsh190lj9g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3147488 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2148199, + "play_addr": { + "uri": "v07025380000brer9cfff6fsh190lj9g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025380000brer9cfff6fsh190lj9g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025380000brer9cfff6fsh190lj9g_h264_540p_2148199", + "data_size": 3067897 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1182365, + "play_addr": { + "uri": "v07025380000brer9cfff6fsh190lj9g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025380000brer9cfff6fsh190lj9g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025380000brer9cfff6fsh190lj9g_h264_540p_1182365", + "data_size": 1688566 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 821276, + "play_addr": { + "uri": "v07025380000brer9cfff6fsh190lj9g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025380000brer9cfff6fsh190lj9g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025380000brer9cfff6fsh190lj9g_h264_540p_821276", + "data_size": 1172886 + }, + "is_h265": 0 + } + ], + "duration": 11425, + "download_suffix_logo_addr": { + "uri": "v07025380000brer9cfff6fsh190lj9g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025380000brer9cfff6fsh190lj9g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3209953 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399 + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6835818555452247297/?region=CN&mid=6830722546430774017&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835818555452247297", + "user_digged": 0, + "statistics": { + "aweme_id": "6835818555452247297", + "comment_count": 189, + "digg_count": 103501, + "download_count": 2901, + "play_count": 1424080, + "share_count": 1483, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 70 + }, + "status": { + "aweme_id": "6835818555452247297", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101152280600023956D" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6835818555452247297/?region=CN&mid=6830722546430774017&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6835818555452247297", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ກີກີ້ OFFICIAL’s video! #TikTok > ", + "share_desc": "Check out ກີກີ້ OFFICIAL's video! #TikTok", + "share_title": "Check out ກີກີ້ OFFICIAL’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 11425, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6784758569575679000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "LA", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6835818555452247297", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6831551753071234310", + "desc": "Под камнем лягушка 🐸 смотрите до конца 😅 не забудьте отметить друга ✌️", + "create_time": 1590594593, + "author": { + "uid": "6676436398360937477", + "short_id": "40646601272", + "nickname": "Sailov Nadir", + "signature": "Instagram 👇", + "avatar_thumb": { + "uri": "musically-maliva-obj/1664203198013446", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664203198013446~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1664203198013446", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664203198013446~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "nadirsailov", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "UZ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101152280600023956D" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/1664203198013446", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1664203198013446~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1664203198013446", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1664203198013446~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAUODNgWWpSKmxV6NMq8b7WlclxX6V7RG9S4SV7KJ0N7srF6c3FSX2XEbWnEPHNrox", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6804093117843770000, + "id_str": "6804093117843770118", + "title": "Laxed (Siren Beat)", + "author": "Jawsh 685", + "album": "Laxed (Siren Beat)", + "cover_hd": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"reviewed\":1,\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349691399\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353615373\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349662733\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353668615\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1509920512,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6804093117843770118", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1509920512", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 71, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044d80000br78mlv7421n8obbdbhg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br78mlv7421n8obbdbhg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d80000br78mlv7421n8obbdbhg_h264_540p_2952767", + "data_size": 2990784 + }, + "cover": { + "uri": "tos-maliva-p-0068/00a045e311a0498ca11d2ca4fd1b1d3e", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/00a045e311a0498ca11d2ca4fd1b1d3e~noop.webp?x-expires=1592658000&x-signature=79DsONACSPzATK03aOMjsk6biPw%3D&l=202006181309470101152280600023956D" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/c7771136bf4e47e185fe1e1772011cce_1590594595", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/c7771136bf4e47e185fe1e1772011cce_1590594595?x-expires=1592658000&x-signature=ZRDaYFv7T0wYr8vG8RKbzHHRQLw%3D&l=202006181309470101152280600023956D" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/9d29af41252c494f840e24d318dbcb67_1590594595", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/9d29af41252c494f840e24d318dbcb67_1590594595~noop.image?x-expires=1592658000&x-signature=%2FiHIXiPgQsGQvYJtJ3%2BKTdft01E%3D&l=202006181309470101152280600023956D" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044d80000br78mlv7421n8obbdbhg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br78mlv7421n8obbdbhg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2992345 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2952767, + "play_addr": { + "uri": "v09044d80000br78mlv7421n8obbdbhg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br78mlv7421n8obbdbhg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d80000br78mlv7421n8obbdbhg_h264_540p_2952767", + "data_size": 2990784 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1625562, + "play_addr": { + "uri": "v09044d80000br78mlv7421n8obbdbhg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br78mlv7421n8obbdbhg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d80000br78mlv7421n8obbdbhg_h264_540p_1625562", + "data_size": 1646492 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 1136579, + "play_addr": { + "uri": "v09044d80000br78mlv7421n8obbdbhg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br78mlv7421n8obbdbhg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044d80000br78mlv7421n8obbdbhg_h264_540p_1136579", + "data_size": 1151213 + }, + "is_h265": 0 + } + ], + "duration": 8103, + "download_suffix_logo_addr": { + "uri": "v09044d80000br78mlv7421n8obbdbhg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br78mlv7421n8obbdbhg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3060398 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507396, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044d80000br78mlv7421n8obbdbhg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044d80000br78mlv7421n8obbdbhg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3129789}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6831551753071234310/?region=CN&mid=6804093117843770118&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831551753071234310", + "user_digged": 0, + "statistics": { + "aweme_id": "6831551753071234310", + "comment_count": 155865, + "digg_count": 2852972, + "download_count": 635888, + "play_count": 86702849, + "share_count": 1362913, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 687382 + }, + "status": { + "aweme_id": "6831551753071234310", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101152280600023956D" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6831551753071234310/?region=CN&mid=6804093117843770118&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831551753071234310", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Sailov Nadir’s video! #TikTok > ", + "share_desc": "Check out Sailov Nadir's video! #TikTok", + "share_title": "Check out Sailov Nadir’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8103, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6676436398360937000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "UZ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6827828211343232262", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ru", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485788000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101152280600023956D" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.th/resources.arsc b/config.th/resources.arsc new file mode 100644 index 0000000..089ca38 Binary files /dev/null and b/config.th/resources.arsc differ diff --git a/config.tr/AndroidManifest.xml b/config.tr/AndroidManifest.xml new file mode 100644 index 0000000..661f720 Binary files /dev/null and b/config.tr/AndroidManifest.xml differ diff --git a/config.tr/META-INF/BNDLTOOL.RSA b/config.tr/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..4449755 Binary files /dev/null and b/config.tr/META-INF/BNDLTOOL.RSA differ diff --git a/config.tr/META-INF/BNDLTOOL.SF b/config.tr/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..49020ef --- /dev/null +++ b/config.tr/META-INF/BNDLTOOL.SF @@ -0,0 +1,20 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: K4lBpqiRSsyvV+pmOkx/FjZ1xKs= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: N+WtUEQJZ4xYB9bR8pnUSocXNbQ= + +Name: assets/i18#lang_tr/az.json +SHA1-Digest: 9oe3xZdfMb+RKIelhxnsg1n2yyo= + +Name: assets/i18#lang_tr/de.json +SHA1-Digest: SSPYdz08vlCJ2xfWqSw46g+eB6g= + +Name: assets/i18#lang_tr/default.json +SHA1-Digest: 92DE8cculAfJxuIhO2h2Ko8/POY= + +Name: resources.arsc +SHA1-Digest: 04jCI7sR4dp5pmkvJLRVuWEzui0= + diff --git a/config.tr/META-INF/MANIFEST.MF b/config.tr/META-INF/MANIFEST.MF new file mode 100644 index 0000000..e0d8fed --- /dev/null +++ b/config.tr/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: XXzb2X5gHlvGVoUPjdz/GVjRRDk= + +Name: assets/i18#lang_tr/az.json +SHA1-Digest: DNF3QSDsmFNunf3IWrQiLhnN78I= + +Name: assets/i18#lang_tr/de.json +SHA1-Digest: NwWn2yo5A1/HKsQtI+sO2AuovAE= + +Name: assets/i18#lang_tr/default.json +SHA1-Digest: C600EaWV14e8sfeKP+s7eSp1BsA= + +Name: resources.arsc +SHA1-Digest: BMS0jR42q9tPvPUOGMmyUljsOZY= + diff --git a/config.tr/assets/i18#lang_tr/az.json b/config.tr/assets/i18#lang_tr/az.json new file mode 100644 index 0000000..c8cdbd7 --- /dev/null +++ b/config.tr/assets/i18#lang_tr/az.json @@ -0,0 +1,1232 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6831918397899410694", + "desc": "@tutu__1994 yemeye 2 günlük zeher 😂😂😀😀 #tiktokazerbaycan #tiktokazeri #tiktokaze #ilkinmemmedov #azerbaycantiktok #azeritiktok #azeri #aze #az", + "create_time": 1590679961, + "author": { + "uid": "6608127282740609030", + "short_id": "31543769648", + "nickname": "ⒾⓁⓀⒾⓃ ⓂⒺⓂⓂⒺⒹⓄⓋ", + "signature": "ⓈⒶⓁⒶⓂ ⒹⓄⓈⓉⓁⒶⓇ ⓈⒺⒽⒾⒻⒺⓂⒺ ⓍⓄⓈ ⒼⒺⓁⒹⒾⓃⒾⓏ ⓋⒾⒹⒺⓄⓁⒶⓇⒾ ⒷⒺⓎⒺⓃⓂⒺⓎⒾ ⓊⓃⓊⓉⓂⒶⓎⒾⓃ", + "avatar_thumb": { + "uri": "musically-maliva-obj/2476e97b00383ed356eb886e15869920", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2476e97b00383ed356eb886e15869920~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/2476e97b00383ed356eb886e15869920", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/2476e97b00383ed356eb886e15869920~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "ilkin.memmedov", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AZ", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1639872819084293", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1639872819084293" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 1, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + } + ], + "language": "ru", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/2476e97b00383ed356eb886e15869920", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/2476e97b00383ed356eb886e15869920~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/2476e97b00383ed356eb886e15869920", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/2476e97b00383ed356eb886e15869920~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAABtYQzHsfAvAPfoVfjPvqmS7EGhJwqiriwgJ1hiT0GqpT_Fb7b7p-AhxHwxY9J6py", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6827802506911911000, + "id_str": "6827802506911910661", + "title": "original sound - tural_nesirov_1985", + "author": "Tural Nəsirov", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/05da80ec2e5ad4ee54a7b8e5338a8a3e.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/05da80ec2e5ad4ee54a7b8e5338a8a3e.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6657328640390496261", + "owner_nickname": "Tural Nəsirov", + "is_original": false, + "mid": "6827802506911910661", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "tural_nesirov_1985", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAedbGUY1JqxC_QQmYX1lxM3ELjIzuVJfm9CfHtY52iwJExYOuBazfZawt0HOVbdrP", + "avatar_thumb": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1648110664543238", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648110664543238~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1609252033545221", + "cha_name": "tiktokazerbaycan", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1609252033545221", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1609252033545221.html?name=tiktokazerbaycan&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1609252033545221", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #tiktokazerbaycan Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #tiktokazerbaycan Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: tiktokazerbaycan", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br7tilfdee91gqsohu90_h264_540p_1462332", + "data_size": 1719155 + }, + "cover": { + "uri": "tos-maliva-p-0068/c358075fab9f4660aef26d600fc1034c_1590679963", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/c358075fab9f4660aef26d600fc1034c_1590679963~noop.webp?x-expires=1592658000&x-signature=8lVT4xjSrQaOquevx6GYL5KSOZw%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/c7684b07afff4f1ab13ca4c4efbbdb12_1590679964", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/c7684b07afff4f1ab13ca4c4efbbdb12_1590679964?x-expires=1592658000&x-signature=C7Xv9ncOeCBxVsBo4KfMrSpmhiQ%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/b52508c0ab3c4fd5a247fa55858aae3c_1590679964", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b52508c0ab3c4fd5a247fa55858aae3c_1590679964~noop.image?x-expires=1592658000&x-signature=Pk5hPusKQ4rSMHENPn0LXUDVv0w%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1713342 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1462332, + "play_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br7tilfdee91gqsohu90_h264_540p_1462332", + "data_size": 1719155 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 601946, + "play_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br7tilfdee91gqsohu90_h264_540p_601946", + "data_size": 707663 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 395815, + "play_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br7tilfdee91gqsohu90_h264_540p_395815", + "data_size": 465331 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 294956, + "play_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044590000br7tilfdee91gqsohu90_h264_480p_294956", + "data_size": 346758 + }, + "is_h265": 0 + } + ], + "duration": 9405, + "download_suffix_logo_addr": { + "uri": "v09044590000br7tilfdee91gqsohu90", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044590000br7tilfdee91gqsohu90&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1784365 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399 + }, + "share_url": "https://m.tiktok.com/v/6831918397899410694.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831918397899410694", + "user_digged": 0, + "statistics": { + "aweme_id": "6831918397899410694", + "comment_count": 6, + "digg_count": 41141, + "download_count": 8891, + "play_count": 1167809, + "share_count": 4413, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 3827 + }, + "status": { + "aweme_id": "6831918397899410694", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 11, + "user_id": "6610264038620938245", + "type": 0, + "sec_uid": "MS4wLjABAAAAMu3T5c6tg0tyKmt6axW9inm1tGagqdqssycF3qNh89LFuBDpwK3CLkEXMH69ScRi" + }, + { + "start": 43, + "end": 60, + "type": 1, + "hashtag_name": "tiktokazerbaycan", + "hashtag_id": "1609252033545221", + "is_commerce": false + }, + { + "start": 61, + "end": 73, + "type": 1, + "hashtag_name": "tiktokazeri", + "hashtag_id": "1612121750531077", + "is_commerce": false + }, + { + "start": 74, + "end": 84, + "type": 1, + "hashtag_name": "tiktokaze", + "hashtag_id": "1609588522506245", + "is_commerce": false + }, + { + "start": 85, + "end": 99, + "type": 1, + "hashtag_name": "ilkinmemmedov", + "hashtag_id": "1629262341534726", + "is_commerce": false + }, + { + "start": 100, + "end": 117, + "type": 1, + "hashtag_name": "azerbaycantiktok", + "hashtag_id": "1613044461924357", + "is_commerce": false + }, + { + "start": 118, + "end": 130, + "type": 1, + "hashtag_name": "azeritiktok", + "hashtag_id": "1616849969490950", + "is_commerce": false + }, + { + "start": 131, + "end": 137, + "type": 1, + "hashtag_name": "azeri", + "hashtag_id": "262419", + "is_commerce": false + }, + { + "start": 138, + "end": 142, + "type": 1, + "hashtag_name": "aze", + "hashtag_id": "581367", + "is_commerce": false + }, + { + "start": 143, + "end": 146, + "type": 1, + "hashtag_name": "az", + "hashtag_id": "10133", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6831918397899410694.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831918397899410694", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ⒾⓁⓀⒾⓃ ⓂⒺⓂⓂⒺⒹⓄⓋ’s video! #TikTok > ", + "share_desc": "Check out ⒾⓁⓀⒾⓃ ⓂⒺⓂⓂⒺⒹⓄⓋ's video! #TikTok", + "share_title": "Check out ⒾⓁⓀⒾⓃ ⓂⒺⓂⓂⒺⒹⓄⓋ’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9405, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6608127282740609000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AZ", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6831918397899410694", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "tr", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6834709679029898497", + "desc": "#whatspp_status #viralvideo #foryourpage #standwithkashmir #allah #islam #foryou #burhan_tv #illu #fyp #islamic", + "create_time": 1591329856, + "author": { + "uid": "6673769917407953926", + "short_id": "41146771224", + "nickname": "Hira Khan", + "signature": "FollOw And Share My Official Account😘", + "avatar_thumb": { + "uri": "tiktok-obj/1664018392733698", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664018392733698.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664018392733698", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664018392733698.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "hirakhan5572", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PK", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1664018392733698", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664018392733698~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1664018392733698", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664018392733698~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAYBWpUdpbtpQ8tP3k7EC2LjgWOJ1AD_bT9Efkq8G_6ZRjRuWg_48Yr_X6teB5pmN1", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6821148889907793000, + "id_str": "6821148889907792646", + "title": "original sound - irfanjan56", + "author": "KaLasH PeOpLE", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/e529070c1e9edb439b316d61d2d4a9ae.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/e529070c1e9edb439b316d61d2d4a9ae.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6639135549372366854", + "owner_nickname": "KaLasH PeOpLE", + "is_original": false, + "mid": "6821148889907792646", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "irfanjan56", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAABfEfRvjRhXSYC5L-CErBMMRGGfu1y2x7u32ycfwHaei1dVWhR4RvWQuakjH5NDDm", + "avatar_thumb": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1665393827915782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1665393827915782~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1606423369369605", + "cha_name": "whatspp_status", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1606423369369605", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1606423369369605.html?name=whatspp_status&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1606423369369605", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #whatspp_status Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #whatspp_status Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: whatspp_status", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025840000brcs86klr56ek4r9cj40_h264_540p_795509", + "data_size": 1015965 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/de45f8580fe94a448d68c759413a33bc", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/de45f8580fe94a448d68c759413a33bc.webp?x-expires=1592658000&x-signature=v91fy60%2FzswY9f3su0xbP3dn7hY%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/08bb30addaeb4f348a7639c2a7b70e7b_1591329860", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/08bb30addaeb4f348a7639c2a7b70e7b_1591329860?x-expires=1592658000&x-signature=VOUyHeItsi1qV0oqVMXPgdfpDIg%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/298aaf86cc204392b5d2d31246586893_1591329859", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/298aaf86cc204392b5d2d31246586893_1591329859.jpeg?x-expires=1592658000&x-signature=LWvFb3uAzU25Ekkv9wSG0IiMIaA%3D&l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1101403 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 795509, + "play_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025840000brcs86klr56ek4r9cj40_h264_540p_795509", + "data_size": 1015965 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 415703, + "play_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025840000brcs86klr56ek4r9cj40_h264_540p_415703", + "data_size": 530905 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 286315, + "play_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025840000brcs86klr56ek4r9cj40_h264_540p_286315", + "data_size": 365661 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_480", + "quality_type": 35, + "bit_rate": 234648, + "play_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=480p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025840000brcs86klr56ek4r9cj40_h264_480p_234648", + "data_size": 299675 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v07025840000brcs86klr56ek4r9cj40", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1168639 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025840000brcs86klr56ek4r9cj40\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025840000brcs86klr56ek4r9cj40&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1197302}}\n" + }, + "share_url": "https://m.tiktok.com/v/6834709679029898497.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834709679029898497", + "user_digged": 0, + "statistics": { + "aweme_id": "6834709679029898497", + "comment_count": 396, + "digg_count": 90889, + "download_count": 3189, + "play_count": 684092, + "share_count": 3436, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2735 + }, + "status": { + "aweme_id": "6834709679029898497", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 15, + "type": 1, + "hashtag_name": "whatspp_status", + "hashtag_id": "1606423369369605", + "is_commerce": false + }, + { + "start": 16, + "end": 27, + "type": 1, + "hashtag_name": "viralvideo", + "hashtag_id": "85133", + "is_commerce": false + }, + { + "start": 28, + "end": 40, + "type": 1, + "hashtag_name": "foryourpage", + "hashtag_id": "1598498371111942", + "is_commerce": false + }, + { + "start": 41, + "end": 58, + "type": 1, + "hashtag_name": "standwithkashmir", + "hashtag_id": "1624626732781573", + "is_commerce": false + }, + { + "start": 59, + "end": 65, + "type": 1, + "hashtag_name": "allah", + "hashtag_id": "202706", + "is_commerce": false + }, + { + "start": 66, + "end": 72, + "type": 1, + "hashtag_name": "islam", + "hashtag_id": "350677", + "is_commerce": false + }, + { + "start": 73, + "end": 80, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 81, + "end": 91, + "type": 1, + "hashtag_name": "burhan_tv", + "hashtag_id": "1640911455753222", + "is_commerce": false + }, + { + "start": 92, + "end": 97, + "type": 1, + "hashtag_name": "illu", + "hashtag_id": "5152318", + "is_commerce": false + }, + { + "start": 98, + "end": 102, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 103, + "end": 111, + "type": 1, + "hashtag_name": "islamic", + "hashtag_id": "158391", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101152290620623A57E" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6834709679029898497.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6834709679029898497", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Hira Khan’s video! #TikTok > ", + "share_desc": "Check out Hira Khan's video! #TikTok", + "share_title": "Check out Hira Khan’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6673769917407953926,\"author_country\":\"Pakistan\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6673769917407954000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PK", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6834709679029898497", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"309377\",\"mv_info\":{\"id\":\"309377\",\"name\":\"Двойной взрыв\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101152290620623A57E" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.tr/assets/i18#lang_tr/de.json b/config.tr/assets/i18#lang_tr/de.json new file mode 100644 index 0000000..7b39000 --- /dev/null +++ b/config.tr/assets/i18#lang_tr/de.json @@ -0,0 +1,1047 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838543641825283333", + "desc": "Übers Geländer?!😱🤯 #waitforit #fürdich #viral", + "create_time": 1592222521, + "author": { + "uid": "6664894458910425093", + "short_id": "45401983616", + "nickname": "SENDDICTED", + "signature": "Thomas | 23 🇩🇪\n🔥CEO of cliffjumping🤘🏼\n⬇️ Schaut auch auf YouTube vorbei!⬇️", + "avatar_thumb": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "senddicted", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "DE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "musically-maliva-obj/1655085640501253", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1655085640501253" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + } + ], + "language": "de", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1647902179339269", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1647902179339269~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAwe5H3_gAb16KGIbHwmBGtMvaNc2wMWbKnlMOaRlrtKb0eaWu46vY6mU-AXH9xV7L", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6515231601595518000, + "id_str": "6515231601595517698", + "title": "Believer [NSG Remix]", + "author": "Romy Wave", + "album": "", + "cover_hd": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/iesmusic-sg-local/v1/m/5ad90020ed13f7f40bef.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1590632695033858.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1590632695033858.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 141, + "start_time": 0, + "end_time": 0, + "duration": 44, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6515231601595517698", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617286365010966", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/strong_beat/1617286365010966" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 7, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "18474", + "cha_name": "waitforit", + "desc": "Wait till the end, to find out the surprise. 🤔", + "schema": "aweme://aweme/challenge/detail?cid=18474", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/18474.html?name=waitforit&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=18474", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #waitforit Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #waitforit Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: waitforit", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/fbe71967963542743b12940221371e62", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_3586752", + "data_size": 4603148 + }, + "cover": { + "uri": "tos-maliva-p-0068/6be2dabb7b244b0bade4b75abb1c05d8", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/6be2dabb7b244b0bade4b75abb1c05d8~noop.webp?x-expires=1592658000&x-signature=6Y%2BLWVVR4ySHsA7yfDfSSDQ4F2g%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/2c10c27ad20e49bd9a02f58e23757bb1_1592222523", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/2c10c27ad20e49bd9a02f58e23757bb1_1592222523?x-expires=1592658000&x-signature=9wMi6wiE1FIC8ciIR1KMy2p2%2FSo%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/4e17020e4de34d369b8a3ef3f98ed88a_1592222523", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/4e17020e4de34d369b8a3ef3f98ed88a_1592222523~noop.image?x-expires=1592658000&x-signature=v5H8Gu22kPJrNDd0boql25c8u44%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4663775 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 3586752, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_3586752", + "data_size": 4603148 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1934979, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_1934979", + "data_size": 2483304 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 1303777, + "play_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brjm6ck45u0f2vkvibv0_h264_540p_1303777", + "data_size": 1673235 + }, + "is_h265": 0 + } + ], + "duration": 10267, + "download_suffix_logo_addr": { + "uri": "v09044570000brjm6ck45u0f2vkvibv0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4721548 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507402, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brjm6ck45u0f2vkvibv0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brjm6ck45u0f2vkvibv0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4794553}}\n" + }, + "share_url": "https://m.tiktok.com/v/6838543641825283333.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838543641825283333", + "user_digged": 0, + "statistics": { + "aweme_id": "6838543641825283333", + "comment_count": 5760, + "digg_count": 705338, + "download_count": 10716, + "play_count": 22081082, + "share_count": 20459, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 10760 + }, + "status": { + "aweme_id": "6838543641825283333", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 21, + "end": 31, + "type": 1, + "hashtag_name": "waitforit", + "hashtag_id": "18474", + "is_commerce": false + }, + { + "start": 32, + "end": 40, + "type": 1, + "hashtag_name": "fürdich", + "hashtag_id": "5457735", + "is_commerce": false + }, + { + "start": 41, + "end": 47, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6838543641825283333.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838543641825283333", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out SENDDICTED’s video! #TikTok > ", + "share_desc": "Check out SENDDICTED's video! #TikTok", + "share_title": "Check out SENDDICTED’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10267, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": true, + "risk_sink": false, + "type": 1, + "content": "The action in this video could result in serious injury." + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6664894458910425000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "DE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838543641825283333", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "de", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6807003825057189125", + "desc": "🦠 #stayhome", + "create_time": 1584879085, + "author": { + "uid": "270663756496687104", + "short_id": "21513944006", + "nickname": "donya dadrasan", + "signature": "Music chick | Pisces 💘", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "donya.dadrasan", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "AU", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655786245686277~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA9mmAavWeZJMWEEo3EwmuxGSWvgv50rY-Qa2NEGKnmsWgCc8nT2tKOLEZ9T3eRHLJ", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6806994814832283000, + "id_str": "6806994814832282373", + "title": "original sound - donya.dadrasan", + "author": "donya dadrasan", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655786245686277~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655786245686277~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1661863534508069.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1661863534508069.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 59, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "270663756496687104", + "owner_nickname": "donya dadrasan", + "is_original": false, + "mid": "6806994814832282373", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "donya.dadrasan", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAA9mmAavWeZJMWEEo3EwmuxGSWvgv50rY-Qa2NEGKnmsWgCc8nT2tKOLEZ9T3eRHLJ", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655786245686277~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655786245686277~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1655786245686277", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655786245686277~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "367950", + "cha_name": "stayhome", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=367950", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/367950.html?name=stayhome&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=367950", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #stayhome Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #stayhome Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: stayhome", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044930000bprlb59o1k5sp61i9mm0_h264_540p_1577364", + "data_size": 11642329 + }, + "cover": { + "uri": "tos-maliva-p-0068/89746f5dda8c417c8bd7c2ce4c78eced_1584879093", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/89746f5dda8c417c8bd7c2ce4c78eced_1584879093~noop.webp?x-expires=1592658000&x-signature=5msQOR49qUJGLHjCPPu6PGF4X2Y%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/ac937fc38a7846948f1e0f77b935745b_1584879091", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/ac937fc38a7846948f1e0f77b935745b_1584879091?x-expires=1592658000&x-signature=pxSFyVrS1H1ogSgNdRbQ3BIqtmc%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/ca6414be0605402abe1c660a6c59111f_1584879091", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/ca6414be0605402abe1c660a6c59111f_1584879091~noop.image?x-expires=1592658000&x-signature=oaWNeCPtHnV%2BKhsFwvsb9oagaNc%3D&l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 9027133 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1577364, + "play_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044930000bprlb59o1k5sp61i9mm0_h264_540p_1577364", + "data_size": 11642329 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 891595, + "play_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044930000bprlb59o1k5sp61i9mm0_h264_540p_891595", + "data_size": 6580755 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 631606, + "play_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044930000bprlb59o1k5sp61i9mm0_h264_540p_631606", + "data_size": 4661809 + }, + "is_h265": 0 + } + ], + "duration": 59047, + "download_suffix_logo_addr": { + "uri": "v09044930000bprlb59o1k5sp61i9mm0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 9069244 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507451, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044930000bprlb59o1k5sp61i9mm0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044930000bprlb59o1k5sp61i9mm0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":12223775}}\n" + }, + "share_url": "https://m.tiktok.com/v/6807003825057189125.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6807003825057189125", + "user_digged": 0, + "statistics": { + "aweme_id": "6807003825057189125", + "comment_count": 269, + "digg_count": 12231, + "download_count": 1486, + "play_count": 117852, + "share_count": 659, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 149 + }, + "status": { + "aweme_id": "6807003825057189125", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 3, + "end": 12, + "type": 1, + "hashtag_name": "stayhome", + "hashtag_id": "367950", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101151331370A23DDB4" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6807003825057189125.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6807003825057189125", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out donya dadrasan’s video! #TikTok > ", + "share_desc": "Check out donya dadrasan's video! #TikTok", + "share_title": "Check out donya dadrasan’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 59047, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":270663756496687104,\"author_country\":\"Australia\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 270663756496687100, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "AU", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6807003825057189125", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485793000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309510101151331370A23DDB4" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.tr/assets/i18#lang_tr/default.json b/config.tr/assets/i18#lang_tr/default.json new file mode 100644 index 0000000..0d23c8c --- /dev/null +++ b/config.tr/assets/i18#lang_tr/default.json @@ -0,0 +1,943 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6831500103816170758", + "desc": "Büyü bozuldu :(", + "create_time": 1590582567, + "author": { + "uid": "6560267894096953350", + "short_id": "31435269600", + "nickname": "enesbatur0", + "signature": "", + "avatar_thumb": { + "uri": "musically-maliva-obj/1648746643075078", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648746643075078~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1648746643075078", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648746643075078~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "enesbatur", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 2, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "TR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + } + ], + "language": "tr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1648746643075078", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648746643075078~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1648746643075078", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1648746643075078~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAASncTUAC1SB3pjiAS5C7f2lNVWBQ_njXfTnWtxoKVAte4SFuc8O4uU2FlVrOENUQu", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6811718861319179000, + "id_str": "6811718861319179014", + "title": "Aspenya", + "author": "😍ASPENYAŞK😍", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663019030849542.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1663019030849542.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 9, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6811558742611264518", + "owner_nickname": "😍ASPENYAŞK😍", + "is_original": false, + "mid": "6811718861319179014", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "aspenya_sound", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAxj6H5x1G5LN7AdqbkQzxZPese8I3uPHBBoU6aLMDjBVS_QjwIg4UDvBwHBb2IgCg", + "avatar_thumb": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1662980246169606", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1662980246169606~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br75q24jc2su07ut61n0_h264_540p_1725076", + "data_size": 2027612 + }, + "cover": { + "uri": "tos-maliva-p-0068/0d134f14ada64c4cbb92d92f68b2478d_1590582571", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/0d134f14ada64c4cbb92d92f68b2478d_1590582571~noop.webp?x-expires=1592658000&x-signature=eD8GZ7weuGqalA%2BNP%2FRY%2FGH5YF8%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/a2219a0f69c244eab77c7f4fe3470d4d_1590582570", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/a2219a0f69c244eab77c7f4fe3470d4d_1590582570?x-expires=1592658000&x-signature=QGfGS%2B3LheEwMwTS7kSghVtc4j4%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/516fbad83a49403bba51bdade1aa27be_1590582570", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/516fbad83a49403bba51bdade1aa27be_1590582570~noop.image?x-expires=1592658000&x-signature=DYfF6eljZuCp8STquUvrrtPTfDo%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1953458 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1725076, + "play_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br75q24jc2su07ut61n0_h264_540p_1725076", + "data_size": 2027612 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 734135, + "play_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br75q24jc2su07ut61n0_h264_540p_734135", + "data_size": 862884 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 489069, + "play_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044b80000br75q24jc2su07ut61n0_h264_540p_489069", + "data_size": 574840 + }, + "is_h265": 0 + } + ], + "duration": 9403, + "download_suffix_logo_addr": { + "uri": "v09044b80000br75q24jc2su07ut61n0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2020048 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044b80000br75q24jc2su07ut61n0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044b80000br75q24jc2su07ut61n0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2055781}}\n" + }, + "share_url": "https://m.tiktok.com/v/6831500103816170758.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831500103816170758", + "user_digged": 0, + "statistics": { + "aweme_id": "6831500103816170758", + "comment_count": 5895, + "digg_count": 683752, + "download_count": 6405, + "play_count": 17830313, + "share_count": 5276, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1232 + }, + "status": { + "aweme_id": "6831500103816170758", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6831500103816170758.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6831500103816170758", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out enesbatur0’s video! #TikTok > ", + "share_desc": "Check out enesbatur0's video! #TikTok", + "share_title": "Check out enesbatur0’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 9403, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6560267894096953000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "TR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6831500103816170758", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "tr", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6824155905915948293", + "desc": "", + "create_time": 1588872614, + "author": { + "uid": "6634582488000184326", + "short_id": "33730241792", + "nickname": "Shooy_shar_officiall", + "signature": "😈", + "avatar_thumb": { + "uri": "musically-maliva-obj/71704d641423f7625f75ce00bcba89d5", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/71704d641423f7625f75ce00bcba89d5~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/71704d641423f7625f75ce00bcba89d5", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/71704d641423f7625f75ce00bcba89d5~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "shooy_shar_officiall", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "DE", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + } + ], + "language": "tr", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/71704d641423f7625f75ce00bcba89d5", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/71704d641423f7625f75ce00bcba89d5~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/71704d641423f7625f75ce00bcba89d5", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/71704d641423f7625f75ce00bcba89d5~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAD6sfA3AhknfKSiCEqWH3fnQ2QYNJdnRw2ZY_Q_8PLlQLKDnxo24oiZjV-Ze8QrK7", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6708879208745127000, + "id_str": "6708879208745126661", + "title": "original sound - mustafa_king.88", + "author": "👑سلطان👑", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1637960383883301.mp3", + "url_list": [ + "http://p16-va.tiktokcdn.com/obj/musically-maliva-obj/1637960383883301.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 19, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6610013480253292550", + "owner_nickname": "👑سلطان👑", + "is_original": false, + "mid": "6708879208745126661", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mustafa_king.88", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1639584065668097", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1639584065668097" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAdjpBbCrM8ugePxZSFJ_TCmrJPBA9KD0edp1HqjSHLwMjIKWpiRcp3yKCl2kXBAkJ", + "avatar_thumb": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/3cc43be1072e247a33ceb94ee8b301ee~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044cf0000bqq4b85ajmbbv976lg70_h264_540p_2375210", + "data_size": 4487664 + }, + "cover": { + "uri": "tos-maliva-p-0068/8396f149f1c446f4843762eb4930b921", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/8396f149f1c446f4843762eb4930b921~noop.webp?x-expires=1592658000&x-signature=NdFlmjfSnyG43DsLoevI0t8fPKE%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/4990b260b2eb4096ab9da9bb7b3c5a4e_1588872619", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/4990b260b2eb4096ab9da9bb7b3c5a4e_1588872619?x-expires=1592658000&x-signature=niUJV1XVNOxn8YciXeAKV07gnc8%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/b1143b49980e49c0bf0e3e7daca1a35b_1588872619", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/b1143b49980e49c0bf0e3e7daca1a35b_1588872619~noop.image?x-expires=1592658000&x-signature=TNkXLkcDnXY0VbYhlvwNkc1%2Fwj8%3D&l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4612449 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2375210, + "play_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044cf0000bqq4b85ajmbbv976lg70_h264_540p_2375210", + "data_size": 4487664 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1385910, + "play_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044cf0000bqq4b85ajmbbv976lg70_h264_540p_1385910", + "data_size": 2618505 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 975714, + "play_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044cf0000bqq4b85ajmbbv976lg70_h264_540p_975714", + "data_size": 1843491 + }, + "is_h265": 0 + } + ], + "duration": 15115, + "download_suffix_logo_addr": { + "uri": "v09044cf0000bqq4b85ajmbbv976lg70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 4683062 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044cf0000bqq4b85ajmbbv976lg70\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044cf0000bqq4b85ajmbbv976lg70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":4812811}}\n" + }, + "share_url": "https://m.tiktok.com/v/6824155905915948293.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6824155905915948293", + "user_digged": 0, + "statistics": { + "aweme_id": "6824155905915948293", + "comment_count": 212, + "digg_count": 28467, + "download_count": 316, + "play_count": 317252, + "share_count": 553, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 184 + }, + "status": { + "aweme_id": "6824155905915948293", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150040700423D646" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6824155905915948293.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6824155905915948293", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Shooy_shar_officiall’s video! #TikTok > ", + "share_desc": "Check out Shooy_shar_officiall's video! #TikTok", + "share_title": "Check out Shooy_shar_officiall’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15115, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6634582488000184326,\"author_country\":\"Germany\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6634582488000184000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "DE", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6824155905915948293", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 3, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101150040700423D646" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.tr/resources.arsc b/config.tr/resources.arsc new file mode 100644 index 0000000..9f16700 Binary files /dev/null and b/config.tr/resources.arsc differ diff --git a/config.vi/AndroidManifest.xml b/config.vi/AndroidManifest.xml new file mode 100644 index 0000000..8601245 Binary files /dev/null and b/config.vi/AndroidManifest.xml differ diff --git a/config.vi/META-INF/BNDLTOOL.RSA b/config.vi/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..d7afe9e Binary files /dev/null and b/config.vi/META-INF/BNDLTOOL.RSA differ diff --git a/config.vi/META-INF/BNDLTOOL.SF b/config.vi/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..dd8fc87 --- /dev/null +++ b/config.vi/META-INF/BNDLTOOL.SF @@ -0,0 +1,20 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: MeGJQ6wHL/341SVWJPe3rSosISA= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: zB0HFljOnewzJMSpZBxxD0xChfM= + +Name: assets/i18#lang_vi/default.json +SHA1-Digest: SVP0R3cjbf2X45TplN6Yr6KBghk= + +Name: assets/i18#lang_vi/jp.json +SHA1-Digest: qcy8meUkRys5hftzLdjKErZan/Y= + +Name: assets/i18#lang_vi/us.json +SHA1-Digest: MkEBZV0hbbk37wrbJm28rvcrKbI= + +Name: resources.arsc +SHA1-Digest: oYq94mTEngHXzJFtX37Urdl4dxU= + diff --git a/config.vi/META-INF/MANIFEST.MF b/config.vi/META-INF/MANIFEST.MF new file mode 100644 index 0000000..05944d4 --- /dev/null +++ b/config.vi/META-INF/MANIFEST.MF @@ -0,0 +1,19 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: jQlpn1fkhrxX9a/oOHcEGF24rrg= + +Name: assets/i18#lang_vi/default.json +SHA1-Digest: gsVjzUsOJgSsOsjqFw57BDsF20g= + +Name: assets/i18#lang_vi/jp.json +SHA1-Digest: Nx+vS2L0dZfDohv+FYhsBSfP8fw= + +Name: assets/i18#lang_vi/us.json +SHA1-Digest: dAsKbeyfIsx2YRmwQFI9qIDP8oM= + +Name: resources.arsc +SHA1-Digest: LnFelL+Kn5YGkTlJF8UPRXRn/mQ= + diff --git a/config.vi/assets/i18#lang_vi/default.json b/config.vi/assets/i18#lang_vi/default.json new file mode 100644 index 0000000..c6e66e3 --- /dev/null +++ b/config.vi/assets/i18#lang_vi/default.json @@ -0,0 +1,968 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6827290241552911621", + "desc": "Đú trend đâu phải dễ 😂😂", + "create_time": 1589602383, + "author": { + "uid": "67770798630", + "short_id": "67394819", + "nickname": "Vũ Thu Phượng", + "signature": "Anh em kết bạn qua link FB\nhttps://www.facebook.com/vtp.0701", + "avatar_thumb": { + "uri": "tiktok-obj/9d1a41e2d380431bb9726a63de1cdd3a", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/9d1a41e2d380431bb9726a63de1cdd3a.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/9d1a41e2d380431bb9726a63de1cdd3a", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/9d1a41e2d380431bb9726a63de1cdd3a.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "v.t.phuong0701", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "330b00226304ef5c15e1", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/330b00226304ef5c15e1?l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "VN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + } + ], + "language": "vi", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/9d1a41e2d380431bb9726a63de1cdd3a", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/9d1a41e2d380431bb9726a63de1cdd3a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/9d1a41e2d380431bb9726a63de1cdd3a", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/9d1a41e2d380431bb9726a63de1cdd3a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA9cHuegjJjN3WuWp2IYg9Op7i1uVHtSSuVPsOxDmSh6g", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6820952687664762000, + "id_str": "6820952687664761602", + "title": "Thiên Lý", + "author": "Đỗ Thị Kim Huệ", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1665265142773762", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1665265142773762.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1665265142773762", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1665265142773762.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1665265142773762", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1665265142773762.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1665265142773762", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1665265142773762.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/25278d4cd928063a357e473509fa7968.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/25278d4cd928063a357e473509fa7968.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 46, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "61984933908", + "owner_nickname": "Đỗ Thị Kim Huệ", + "is_original": false, + "mid": "6820952687664761602", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "kimxuxu", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAgDmVqjmutlZxNvRHabZRmwiVGUCUCducS2UbnmcQAyk", + "avatar_thumb": { + "uri": "tiktok-obj/1665265142773762", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1665265142773762.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1665265142773762", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1665265142773762.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1665265142773762", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1665265142773762.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044530000bqvmghkb0k2sqgcitu00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqvmghkb0k2sqgcitu00&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044530000bqvmghkb0k2sqgcitu00_h264_540p_1271545", + "data_size": 1646174 + }, + "cover": { + "uri": "tos-maliva-p-0068/5e2cc79923d441c285721debe2267698", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/5e2cc79923d441c285721debe2267698~noop.webp?x-expires=1592658000&x-signature=HbBkoHKS9tgix42L4WbeyssCtIE%3D&l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/d849d7a134ec46259cd9df3dd1d9372a_1589602386", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/d849d7a134ec46259cd9df3dd1d9372a_1589602386?x-expires=1592658000&x-signature=L0YPMd3UILiIQ2yJ0zC6ZLzFkU4%3D&l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/3d70af0b574e41de836d2441512fcc28_1589602384", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/3d70af0b574e41de836d2441512fcc28_1589602384~noop.image?x-expires=1592658000&x-signature=KPtf2FZ54F16cm70dYYufPpREHg%3D&l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044530000bqvmghkb0k2sqgcitu00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqvmghkb0k2sqgcitu00&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1700890 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1271545, + "play_addr": { + "uri": "v09044530000bqvmghkb0k2sqgcitu00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqvmghkb0k2sqgcitu00&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044530000bqvmghkb0k2sqgcitu00_h264_540p_1271545", + "data_size": 1646174 + }, + "is_h265": 0 + } + ], + "duration": 10357, + "download_suffix_logo_addr": { + "uri": "v09044530000bqvmghkb0k2sqgcitu00", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqvmghkb0k2sqgcitu00&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1768029 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507398, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044530000bqvmghkb0k2sqgcitu00\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044530000bqvmghkb0k2sqgcitu00&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1819870}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6827290241552911621/?region=CN&mid=6820952687664761602&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827290241552911621", + "user_digged": 0, + "statistics": { + "aweme_id": "6827290241552911621", + "comment_count": 2335, + "digg_count": 467516, + "download_count": 9208, + "play_count": 13826474, + "share_count": 9097, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 7 + }, + "status": { + "aweme_id": "6827290241552911621", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6827290241552911621/?region=CN&mid=6820952687664761602&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6827290241552911621", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Vũ Thu Phượng’s video! #TikTok > ", + "share_desc": "Check out Vũ Thu Phượng's video! #TikTok", + "share_title": "Check out Vũ Thu Phượng’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10357, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 67770798630, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "VN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6827240754050600197", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "vi", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6837679898845351169", + "desc": "Bữa ăn có thịt, thương cha suốt đời kham khổ! #phậttạitâm #ceolinhnhamgroup #baihoccuocsong #hocvientiktok #kinhdoanhonline #danhbaythatnghiep", + "create_time": 1592021415, + "author": { + "uid": "6800433603147990018", + "short_id": "35092425385", + "nickname": "Linh Nhâm", + "signature": "Kênh tik tok mới chia sẻ bài học cs qua tiểu phẩm\nGiúp Linh Nhâm đạt 1 triệu sub", + "avatar_thumb": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664746132337666.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664746132337666.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "chutichlinhnham", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "VN", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + } + ], + "language": "vi", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664746132337666~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664746132337666~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAFfhjc83YDpwbqJ5IlViBZWsXYn22_P0g4TW5xMPz3fWn4i3us4WsrHH9jjVppSOb", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6837679952184364000, + "id_str": "6837679952184363778", + "title": "original sound - Linh Nhâm", + "author": "Linh Nhâm", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664746132337666.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664746132337666.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664746132337666.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664746132337666.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6837679836442413826.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6837679836442413826.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 60, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6800433603147990018", + "owner_nickname": "Linh Nhâm", + "is_original": false, + "mid": "6837679952184363778", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "chutichlinhnham", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAFfhjc83YDpwbqJ5IlViBZWsXYn22_P0g4TW5xMPz3fWn4i3us4WsrHH9jjVppSOb", + "avatar_thumb": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664746132337666.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664746132337666.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1664746132337666", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664746132337666.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1626311315802113", + "cha_name": "phậttạitâm", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1626311315802113", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1626311315802113?name=ph%E1%BA%ADtt%E1%BA%A1it%C3%A2m&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1626311315802113", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #phậttạitâm Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #phậttạitâm Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: phậttạitâm", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025490000bri530bijnof8nibb630", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025490000bri530bijnof8nibb630&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025490000bri530bijnof8nibb630_h264_540p_1180615", + "data_size": 8864798 + }, + "cover": { + "uri": "large/v0201/198f1c2b537a494d9f766ec22d0d9d33_1592021420", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/198f1c2b537a494d9f766ec22d0d9d33_1592021420.webp?x-expires=1592658000&x-signature=c6pn1McRb2QjVn8ojUf%2FsgM8rGE%3D&l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/983bdb4ec12f45c5afd0b814efeced19_1592021422", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/983bdb4ec12f45c5afd0b814efeced19_1592021422?x-expires=1592658000&x-signature=VkA3Co61oAWZvWBPe6X%2F2qohIlc%3D&l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/cb33d7b30db440ff8d73575476b0e431_1592021418", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/cb33d7b30db440ff8d73575476b0e431_1592021418.jpeg?x-expires=1592658000&x-signature=nV2p1j56iRsFzq4S1AzUKawi26Y%3D&l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025490000bri530bijnof8nibb630", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025490000bri530bijnof8nibb630&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 9441949 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1180615, + "play_addr": { + "uri": "v07025490000bri530bijnof8nibb630", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025490000bri530bijnof8nibb630&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025490000bri530bijnof8nibb630_h264_540p_1180615", + "data_size": 8864798 + }, + "is_h265": 0 + } + ], + "duration": 60069, + "download_suffix_logo_addr": { + "uri": "v07025490000bri530bijnof8nibb630", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025490000bri530bijnof8nibb630&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 9509047 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507448 + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6837679898845351169/?region=CN&mid=6837679952184363778&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837679898845351169", + "user_digged": 0, + "statistics": { + "aweme_id": "6837679898845351169", + "comment_count": 1527, + "digg_count": 524697, + "download_count": 4735, + "play_count": 11661637, + "share_count": 3225, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 10 + }, + "status": { + "aweme_id": "6837679898845351169", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 46, + "end": 57, + "type": 1, + "hashtag_name": "phậttạitâm", + "hashtag_id": "1626311315802113", + "is_commerce": false + }, + { + "start": 58, + "end": 75, + "type": 1, + "hashtag_name": "ceolinhnhamgroup", + "hashtag_id": "1660479385970689", + "is_commerce": false + }, + { + "start": 76, + "end": 91, + "type": 1, + "hashtag_name": "baihoccuocsong", + "hashtag_id": "1606026202427393", + "is_commerce": false + }, + { + "start": 92, + "end": 106, + "type": 1, + "hashtag_name": "hocvientiktok", + "hashtag_id": "1636042637237250", + "is_commerce": false + }, + { + "start": 107, + "end": 123, + "type": 1, + "hashtag_name": "kinhdoanhonline", + "hashtag_id": "1609015898127522", + "is_commerce": false + }, + { + "start": 124, + "end": 142, + "type": 1, + "hashtag_name": "danhbaythatnghiep", + "hashtag_id": "1666582645910534", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040510624581A" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6837679898845351169/?region=CN&mid=6837679952184363778&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837679898845351169", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Linh Nhâm’s video! #TikTok > ", + "share_desc": "Check out Linh Nhâm's video! #TikTok", + "share_title": "Check out Linh Nhâm’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 60069, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6800433603147990000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "VN", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837679898845351169", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "vi", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485788000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040510624581A" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.vi/assets/i18#lang_vi/jp.json b/config.vi/assets/i18#lang_vi/jp.json new file mode 100644 index 0000000..e1f9120 --- /dev/null +++ b/config.vi/assets/i18#lang_vi/jp.json @@ -0,0 +1,1447 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6836623801036377346", + "desc": "#ホラー映像 #ホラーです #老害 #老害ドライバー根絶", + "create_time": 1591775522, + "author": { + "uid": "6565210077565206529", + "short_id": "31424796065", + "nickname": "ジーマ社長(株主)@IT起業家", + "signature": "平成生まれで会社3社経営😎\nIT社長で名言系TikToker😎\nフォローするだけで100万円の価値😎\n毎日名言呟きます😎\n▼500円のおすすめの洗顔▼", + "avatar_thumb": { + "uri": "tiktok-obj/56d894a013e73f2d936afc1966b20b86", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/56d894a013e73f2d936afc1966b20b86.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/56d894a013e73f2d936afc1966b20b86", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/56d894a013e73f2d936afc1966b20b86.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "ziima615", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "JP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "tiktok-obj/d1231390642d8ddf00011da73e50a287", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/d1231390642d8ddf00011da73e50a287" + ], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + } + ], + "language": "ja", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/56d894a013e73f2d936afc1966b20b86", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/56d894a013e73f2d936afc1966b20b86~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/56d894a013e73f2d936afc1966b20b86", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/56d894a013e73f2d936afc1966b20b86~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAj0cS9-7panzWI3ptsWojb2rFrYHNn0tkgaA1x6yClkdrLnZYGcum8wleF2SFU1WT", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6709349698206960000, + "id_str": "6709349698206959622", + "title": "怖い曲集「迷宮」~白い女ホラーver.~", + "author": "東京女子流", + "album": "怖い曲集「迷宮」", + "cover_hd": { + "uri": "tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/6357912e1fc34c9ca4ab2064a8ac2cba.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tos-alisg-v-0000/963e77ecfa4c4fe9b68a866ccdef3b2b", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tos-alisg-v-0000/963e77ecfa4c4fe9b68a866ccdef3b2b" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10016, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6709349698206959622", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": true, + "strong_beat_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1638843099369474", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1638843099369474" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 2, + "external_song_info": [], + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1597817804379138", + "cha_name": "ホラー映像", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1597817804379138", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1597817804379138?name=%E3%83%9B%E3%83%A9%E3%83%BC%E6%98%A0%E5%83%8F&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1597817804379138", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #ホラー映像 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #ホラー映像 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: ホラー映像", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025d80000brg926mr5lnvh57iosh0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025d80000brg926mr5lnvh57iosh0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025d80000brg926mr5lnvh57iosh0_h264_540p_1709025", + "data_size": 1360171 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/45889f3b77fd47a2bb74b75bdec0ea41", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/45889f3b77fd47a2bb74b75bdec0ea41.webp?x-expires=1592658000&x-signature=H5pCf4qF%2F5kjrm9jYkop%2BNuXnJQ%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/fa8b4b5e033046b6b0d7e9e1f2f1e794_1591775527", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/fa8b4b5e033046b6b0d7e9e1f2f1e794_1591775527?x-expires=1592658000&x-signature=xKl6SvPJdBSMJDPlGSCalmjAF1U%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/0343d960702a420aa68e3ea0a6487c52_1591775526", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/0343d960702a420aa68e3ea0a6487c52_1591775526.jpeg?x-expires=1592658000&x-signature=74lD9aV0STX2M9Ksj%2Fwb7EoVnDM%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025d80000brg926mr5lnvh57iosh0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025d80000brg926mr5lnvh57iosh0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1401683 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1709025, + "play_addr": { + "uri": "v07025d80000brg926mr5lnvh57iosh0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025d80000brg926mr5lnvh57iosh0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025d80000brg926mr5lnvh57iosh0_h264_540p_1709025", + "data_size": 1360171 + }, + "is_h265": 0 + } + ], + "duration": 6367, + "download_suffix_logo_addr": { + "uri": "v07025d80000brg926mr5lnvh57iosh0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025d80000brg926mr5lnvh57iosh0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1473536 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507394 + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6836623801036377346/?region=CN&mid=6709349698206959622&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836623801036377346", + "user_digged": 0, + "statistics": { + "aweme_id": "6836623801036377346", + "comment_count": 14413, + "digg_count": 144927, + "download_count": 1368, + "play_count": 13696178, + "share_count": 4602, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1 + }, + "status": { + "aweme_id": "6836623801036377346", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 6, + "type": 1, + "hashtag_name": "ホラー映像", + "hashtag_id": "1597817804379138", + "is_commerce": false + }, + { + "start": 7, + "end": 13, + "type": 1, + "hashtag_name": "ホラーです", + "hashtag_id": "1610390337383425", + "is_commerce": false + }, + { + "start": 14, + "end": 17, + "type": 1, + "hashtag_name": "老害", + "hashtag_id": "1603425364221953", + "is_commerce": false + }, + { + "start": 18, + "end": 28, + "type": 1, + "hashtag_name": "老害ドライバー根絶", + "hashtag_id": "1645823951488002", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6836623801036377346/?region=CN&mid=6709349698206959622&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6836623801036377346", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out ジーマ社長(株主)@IT起業家’s video! #TikTok > ", + "share_desc": "Check out ジーマ社長(株主)@IT起業家's video! #TikTok", + "share_title": "Check out ジーマ社長(株主)@IT起業家’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 6367, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6565210077565207000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "JP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6836623801036377346", + "prevent_download": true, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":1.25,\"end_time\":6305,\"p\":-1,\"y\":210.13,\"h\":0.1071,\"start_time\":0,\"r\":0,\"w\":0.6206,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":8.8961,\"end_time\":6305,\"p\":-1,\"y\":-202.1243,\"h\":0.2153,\"start_time\":0,\"r\":0,\"w\":0.6033,\"s\":0.802}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": false, + "share_type": 0, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 4, + "allow_dynamic_wallpaper": false, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6837162125161434374", + "desc": "Maybe I should have looked up the lyrics @bangenergy @bangenergy.ceo", + "create_time": 1591900860, + "author": { + "uid": "106241438295736320", + "short_id": "21546376817", + "nickname": "qpark", + "signature": "No bio yet", + "avatar_thumb": { + "uri": "s3://musically-prod/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "s3://musically-prod/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg", + "url_list": [ + "https://mphw-suse1.muscdn.com/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "qpark", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "s3://musically-prod/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg", + "url_list": [ + "https://mpak-suse1.akamaized.net/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "s3://musically-prod/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg", + "url_list": [ + "https://mpak-suse1.akamaized.net/res/user_v_icon/121/icon_106241438295736320-1HpqlsyFjS.jpg" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAQyz6nUiOMwBFRsp1pP53DNaSLsK1tBZb0L6aryILC2VQ8ppuDjVxBQfBIALq0Hdl", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6738439639826288000, + "id_str": "6738439639826287365", + "title": "Roses (Imanbek Remix)", + "author": "SAINt JHN", + "album": "Roses (Imanbek Remix)", + "cover_hd": { + "uri": "tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/a3019da30aff48369bbd94a80d15c885.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 20, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"apple_song_id\":1479636604,\"has_edited\":0,\"reviewed\":1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "The copyright owner hasn't made this sound available in your country.", + "owner_nickname": "", + "is_original": false, + "mid": "6738439639826287365", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": true, + "unshelve_countries": null, + "prevent_item_download_status": 2, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1479636604", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 49.2, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044f70000brh7lcbkh7brk0pfo810", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brh7lcbkh7brk0pfo810&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brh7lcbkh7brk0pfo810_h264_540p_2347414", + "data_size": 5525226 + }, + "cover": { + "uri": "tos-maliva-p-0068/96a483421aa94ca9aa9f19c804dd40ef", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/96a483421aa94ca9aa9f19c804dd40ef~noop.webp?x-expires=1592658000&x-signature=4je1ARGCqiSRNNmfk6BOmmaIKII%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/9b317a0ac376457f8fdfb6354964e1f0_1591900862", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/9b317a0ac376457f8fdfb6354964e1f0_1591900862?x-expires=1592658000&x-signature=HKfOUKskGgkHfzGgBrQqiziKm4s%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/4434a76ceda746028055080632b308a8_1591900862", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/4434a76ceda746028055080632b308a8_1591900862~noop.image?x-expires=1592658000&x-signature=ivd898JB0yLZyLXUBVlcMvu6SHQ%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044f70000brh7lcbkh7brk0pfo810", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brh7lcbkh7brk0pfo810&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5683497 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2347414, + "play_addr": { + "uri": "v09044f70000brh7lcbkh7brk0pfo810", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brh7lcbkh7brk0pfo810&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044f70000brh7lcbkh7brk0pfo810_h264_540p_2347414", + "data_size": 5525226 + }, + "is_h265": 0 + } + ], + "duration": 18830, + "download_suffix_logo_addr": { + "uri": "v09044f70000brh7lcbkh7brk0pfo810", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brh7lcbkh7brk0pfo810&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5751271 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507406, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044f70000brh7lcbkh7brk0pfo810\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044f70000brh7lcbkh7brk0pfo810&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":5852349}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6837162125161434374/?region=CN&mid=6738439639826287365&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837162125161434374", + "user_digged": 0, + "statistics": { + "aweme_id": "6837162125161434374", + "comment_count": 3341, + "digg_count": 457259, + "download_count": 2850, + "play_count": 1869209, + "share_count": 3066, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 866 + }, + "status": { + "aweme_id": "6837162125161434374", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 41, + "end": 52, + "user_id": "6760790946654323717", + "type": 0, + "sec_uid": "MS4wLjABAAAAKUvTIi7reXjyHu9ciMFtW4EbaObWHCpTJOgFLESsZ_AdAj-pqJ4Q9CyGa36jGtKO" + }, + { + "start": 53, + "end": 68, + "user_id": "6764004751870084101", + "type": 0, + "sec_uid": "MS4wLjABAAAAT7lAysDBOCUNN7J1RxooqLHzC0AdDKoWuaznTKRCKJs9zc2gpQT5Ftd_tyPEosyr" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6837162125161434374/?region=CN&mid=6738439639826287365&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837162125161434374", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out qpark’s video! #TikTok > ", + "share_desc": "Check out qpark's video! #TikTok", + "share_title": "Check out qpark’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 18830, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 106241438295736320, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837162125161434374", + "prevent_download": true, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": false, + "share_type": 0, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 4, + "allow_dynamic_wallpaper": false, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + }, + { + "aweme_id": "6837030410724068609", + "desc": "久しぶりにやられた気がする。#ドッキリ #本気出してみた #おうちで過ごし隊 #料理", + "create_time": 1591870193, + "author": { + "uid": "6504751690376462338", + "short_id": "2158262365", + "nickname": "伊吹", + "signature": "第2の宮川大輔\nって言われたい。\n相方:よへ PPP STUDIO所属\n⬇️マスク生活、敏感肌にマジでオススメ⬇️", + "avatar_thumb": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "ibukidayo8484", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "JP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + } + ], + "language": "ja", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664853879132161~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1664853879132161~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAARSNKTJzHeEPCzXxPBsQye8ZkE-ubi8xP5NjlNlKmd9CYMmgQboHWZTJND088kmyF", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6837030443779493000, + "id_str": "6837030443779492610", + "title": "original sound - 伊吹", + "author": "伊吹", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6837030348572953345.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6837030348572953345.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 42, + "extra": "{\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6504751690376462338", + "owner_nickname": "伊吹", + "is_original": false, + "mid": "6837030443779492610", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "ibukidayo8484", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 1, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAARSNKTJzHeEPCzXxPBsQye8ZkE-ubi8xP5NjlNlKmd9CYMmgQboHWZTJND088kmyF", + "avatar_thumb": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1664853879132161", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1664853879132161.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "16794140", + "cha_name": "ドッキリ", + "desc": "✨ドッキリをかけて友達をびっくりさせよう!✨\n💥💥💥ヒント ❶縦型全画面で投稿 ❷#ドッキり のハッシュタグをつける!❸Instagramにシェアの際は@tiktok_japanをメンションしてね!", + "schema": "aweme://aweme/challenge/detail?cid=16794140", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/16794140?name=%E3%83%89%E3%83%83%E3%82%AD%E3%83%AA&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=16794140", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #ドッキリ Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #ドッキリ Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: ドッキリ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "tiktok-obj/1630595738012674.PNG", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025690000brh05ggq829jaakntmf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025690000brh05ggq829jaakntmf0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025690000brh05ggq829jaakntmf0_h264_540p_1103428", + "data_size": 5912034 + }, + "cover": { + "uri": "large/v0201/7bb3c784ce8045a9a2d953ca18041873_1591870196", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/7bb3c784ce8045a9a2d953ca18041873_1591870196.webp?x-expires=1592658000&x-signature=hLiqQI2lUmSPXWDt3gcnZgWQWPc%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/0e70992e4cab4920a35e7c1a94c343b5_1591870197", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/0e70992e4cab4920a35e7c1a94c343b5_1591870197?x-expires=1592658000&x-signature=uSntMb6PkQ%2FbNDbhlczSUBlwxOo%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/b6a115d28cac40bebf4945faabf467c4_1591870196", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/b6a115d28cac40bebf4945faabf467c4_1591870196.jpeg?x-expires=1592658000&x-signature=5AVEYn0kkZZ7pqNWkKYGlJGgoqA%3D&l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025690000brh05ggq829jaakntmf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025690000brh05ggq829jaakntmf0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6154521 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1103428, + "play_addr": { + "uri": "v07025690000brh05ggq829jaakntmf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025690000brh05ggq829jaakntmf0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025690000brh05ggq829jaakntmf0_h264_540p_1103428", + "data_size": 5912034 + }, + "is_h265": 0 + } + ], + "duration": 42863, + "download_suffix_logo_addr": { + "uri": "v07025690000brh05ggq829jaakntmf0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025690000brh05ggq829jaakntmf0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6222199 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507430, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025690000brh05ggq829jaakntmf0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025690000brh05ggq829jaakntmf0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":6432466}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6837030410724068609/?region=CN&mid=6837030443779492610&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837030410724068609", + "user_digged": 0, + "statistics": { + "aweme_id": "6837030410724068609", + "comment_count": 1046, + "digg_count": 262761, + "download_count": 1451, + "play_count": 3917312, + "share_count": 3132, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 53 + }, + "status": { + "aweme_id": "6837030410724068609", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 14, + "end": 19, + "type": 1, + "hashtag_name": "ドッキリ", + "hashtag_id": "16794140", + "is_commerce": false + }, + { + "start": 20, + "end": 28, + "type": 1, + "hashtag_name": "本気出してみた", + "hashtag_id": "1615825173018625", + "is_commerce": false + }, + { + "start": 29, + "end": 38, + "type": 1, + "hashtag_name": "おうちで過ごし隊", + "hashtag_id": "1662314533846017", + "is_commerce": false + }, + { + "start": 39, + "end": 42, + "type": 1, + "hashtag_name": "料理", + "hashtag_id": "34567353", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040660A238F43" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6837030410724068609/?region=CN&mid=6837030443779492610&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837030410724068609", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 伊吹’s video! #TikTok > ", + "share_desc": "Check out 伊吹's video! #TikTok", + "share_title": "Check out 伊吹’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 42863, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6504751690376462000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "JP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837030410724068609", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ja", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485788000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040660A238F43" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.vi/assets/i18#lang_vi/us.json b/config.vi/assets/i18#lang_vi/us.json new file mode 100644 index 0000000..cc1939c --- /dev/null +++ b/config.vi/assets/i18#lang_vi/us.json @@ -0,0 +1,1194 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6837284920138697990", + "desc": "When she knows you too well @jenafrumes", + "create_time": 1591929459, + "author": { + "uid": "21609287", + "short_id": "21758544594", + "nickname": "Jason Derulo", + "signature": "IG: jasonderulo\nSavage Love OUT NOW", + "avatar_thumb": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Verified account", + "unique_id": "jasonderulo", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "US", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1656115901452294~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1656115901452294", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1656115901452294~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAC5mIlEsDQSlfaWV6PSINVnfJOJz-eGhbAffi9TDrURw", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6795008547961753000, + "id_str": "6795008547961752326", + "title": "Ultra Instinct", + "author": "AdamDevito", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/obj/musically-maliva-obj/1658946263458837.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 8, + "extra": "{\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6631791650333310981", + "owner_nickname": "AdamDevito", + "is_original": false, + "mid": "6795008547961752326", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "adamdevito", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAhZfDfpjGD4wtumUrvXYWkXyptLg3ojx-QJLuFcKmJLuC7-_lWU3BWB7kH2U00Egz", + "avatar_thumb": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1655766966982661~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1655766966982661", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1655766966982661~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "cover": { + "uri": "tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/69fdd96b6525452690f59cbc5df7667a_1591929462~noop.webp?x-expires=1592658000&x-signature=6dByh3utXF%2FtkxCOsraCGeNMHfI%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/61741461fcf7465c9021c80d2a4c3d9f_1591929463?x-expires=1592658000&x-signature=u%2FP4vH0drvWb83WYAkNu27hTMio%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/33fb6e99948c46d18c04a9da748a6463_1591929461~noop.image?x-expires=1592658000&x-signature=iSC%2Bii7l2mOHRif%2F9nm64AmEL%2B4%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2112636 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1924466, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1924466", + "data_size": 2021893 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1076800, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_1076800", + "data_size": 1131313 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 763213, + "play_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044570000brhekmc45u0f2vn03o5g_h264_540p_763213", + "data_size": 801851 + }, + "is_h265": 0 + } + ], + "duration": 8405, + "download_suffix_logo_addr": { + "uri": "v09044570000brhekmc45u0f2vn03o5g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2181877 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507396, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044570000brhekmc45u0f2vn03o5g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044570000brhekmc45u0f2vn03o5g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2238071}}\n" + }, + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "user_digged": 0, + "statistics": { + "aweme_id": "6837284920138697990", + "comment_count": 23400, + "digg_count": 5665744, + "download_count": 77381, + "play_count": 59110271, + "share_count": 136584, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 35030 + }, + "status": { + "aweme_id": "6837284920138697990", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 28, + "end": 39, + "user_id": "8021707", + "type": 0, + "sec_uid": "MS4wLjABAAAAQ7HxcSD0aFjrh-8XtCI7p5Fz5oqF1Iuxd_gU81_Y_sw" + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6837284920138697990.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6837284920138697990", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Jason Derulo’s video! #TikTok > ", + "share_desc": "Check out Jason Derulo's video! #TikTok", + "share_title": "Check out Jason Derulo’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 8405, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 21609287, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "US", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6837284920138697990", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6829682692141927682", + "desc": "Spread the Word Of God ❤️ #xyzbca #fyp #viral #christian #makethisviral #christianlife #bible #JesusChrist #foryoupage#motivationph", + "create_time": 1590159420, + "author": { + "uid": "6806009756420867074", + "short_id": "34475225769", + "nickname": "🔱 Julian 🔱", + "signature": "TRY EVERYTHING ✊🏻❤️\nTeamYacult 🇵🇭", + "avatar_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "theboynextdoor17", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "PH", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/f55c32a9831d751451d9ef0401eac582~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/f55c32a9831d751451d9ef0401eac582~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAISzScRJu4ca1DBwV0Uz0uDF1ya3fH57Uto0AYKk-H9M4gx5GzfeNmam5b1eHg-UQ", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6829682715177127000, + "id_str": "6829682715177126658", + "title": "original sound - theboynextdoor17", + "author": "🔱 Julian 🔱", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/244e3c5d284fb5c92fb259f8085f0d30.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/244e3c5d284fb5c92fb259f8085f0d30.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 59, + "extra": "{\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6806009756420867074", + "owner_nickname": "🔱 Julian 🔱", + "is_original": false, + "mid": "6829682715177126658", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "theboynextdoor17", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAISzScRJu4ca1DBwV0Uz0uDF1ya3fH57Uto0AYKk-H9M4gx5GzfeNmam5b1eHg-UQ", + "avatar_thumb": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/f55c32a9831d751451d9ef0401eac582", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/f55c32a9831d751451d9ef0401eac582.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "1652484531221509", + "cha_name": "xyzbca", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=1652484531221509", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://m.tiktok.com/h5/share/tag/1652484531221509.html?name=xyzbca&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1652484531221509", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #xyzbca Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #xyzbca Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: xyzbca", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 1, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_406634", + "data_size": 3001419 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/57e398ba015844eb9d0ddd9f649bad9d", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/57e398ba015844eb9d0ddd9f649bad9d.webp?x-expires=1592658000&x-signature=7z6fr0EM45xTOD0J2qcG0QV5pmY%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/a3232cc88b2b49108181bfadf713e093_1590159424", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/a3232cc88b2b49108181bfadf713e093_1590159424?x-expires=1592658000&x-signature=Vc%2FR9%2FXp%2F4W9bXTFBUTFLWeda8I%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/37684e30819e4a939384d4d25f7fd2b7_1590159423", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/37684e30819e4a939384d4d25f7fd2b7_1590159423.jpeg?x-expires=1592658000&x-signature=BhIptB7SUNUSmbCA3xuGuYy51wE%3D&l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6283469 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 406634, + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_406634", + "data_size": 3001419 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 281182, + "play_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256f0000br3udca8kv9o4hm5eg3g_h264_540p_281182", + "data_size": 2075441 + }, + "is_h265": 0 + } + ], + "duration": 59049, + "download_suffix_logo_addr": { + "uri": "v070256f0000br3udca8kv9o4hm5eg3g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 6347309 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507447, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v070256f0000br3udca8kv9o4hm5eg3g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256f0000br3udca8kv9o4hm5eg3g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":6611241}}\n" + }, + "share_url": "https://m.tiktok.com/v/6829682692141927682.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829682692141927682", + "user_digged": 0, + "statistics": { + "aweme_id": "6829682692141927682", + "comment_count": 247279, + "digg_count": 2154633, + "download_count": 85515, + "play_count": 7985990, + "share_count": 309395, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 5520 + }, + "status": { + "aweme_id": "6829682692141927682", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 26, + "end": 33, + "type": 1, + "hashtag_name": "xyzbca", + "hashtag_id": "1652484531221509", + "is_commerce": false + }, + { + "start": 34, + "end": 38, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 39, + "end": 45, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + }, + { + "start": 46, + "end": 56, + "type": 1, + "hashtag_name": "christian", + "hashtag_id": "46249", + "is_commerce": false + }, + { + "start": 57, + "end": 71, + "type": 1, + "hashtag_name": "makethisviral", + "hashtag_id": "335768", + "is_commerce": false + }, + { + "start": 72, + "end": 86, + "type": 1, + "hashtag_name": "christianlife", + "hashtag_id": "272517", + "is_commerce": false + }, + { + "start": 87, + "end": 93, + "type": 1, + "hashtag_name": "bible", + "hashtag_id": "10593", + "is_commerce": false + }, + { + "start": 94, + "end": 106, + "type": 1, + "hashtag_name": "JesusChrist", + "hashtag_id": "8521", + "is_commerce": false + }, + { + "start": 107, + "end": 118, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 118, + "end": 131, + "type": 1, + "hashtag_name": "motivationph", + "hashtag_id": "1656355848758273", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309470101150040561C23DEA0" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://m.tiktok.com/v/6829682692141927682.html?u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6829682692141927682", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 🔱 Julian 🔱’s video! #TikTok > ", + "share_desc": "Check out 🔱 Julian 🔱's video! #TikTok", + "share_title": "Check out 🔱 Julian 🔱’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 59049, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6806009756420867074,\"author_country\":\"Philippines\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6806009756420867000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "PH", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6829682692141927682", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-56.6667,\"end_time\":7100,\"p\":-1,\"y\":-259.9467,\"h\":0.091,\"start_time\":4666.6667,\"r\":0,\"w\":0.5936,\"s\":0.8849}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":-69.1741,\"end_time\":7633.3333,\"p\":-1,\"y\":92.5157,\"h\":0.0975,\"start_time\":6300,\"r\":0,\"w\":0.5004,\"s\":0.6445}]", + "attr": "" + }, + { + "type": 5, + "index": 2, + "track_info": "[{\"x\":44.88,\"end_time\":7333.3333,\"p\":-1,\"y\":10.6106,\"h\":0.0727,\"start_time\":5566.6667,\"r\":0,\"w\":0.6366,\"s\":0.7075}]", + "attr": "" + }, + { + "type": 5, + "index": 3, + "track_info": "[{\"x\":0,\"end_time\":2833.3333,\"p\":-1,\"y\":-244.7608,\"h\":0.1413,\"start_time\":0,\"r\":0,\"w\":0.8289,\"s\":0.9338}]", + "attr": "" + }, + { + "type": 5, + "index": 4, + "track_info": "[{\"x\":-1.8056,\"end_time\":10000,\"p\":-1,\"y\":128.4765,\"h\":0.1287,\"start_time\":8600,\"r\":0,\"w\":0.7731,\"s\":1.2517}]", + "attr": "" + }, + { + "type": 5, + "index": 5, + "track_info": "[{\"x\":43.1009,\"end_time\":16066.6667,\"p\":-1,\"y\":-1.1269,\"h\":0.0989,\"start_time\":14900,\"r\":0,\"w\":0.6277,\"s\":0.9623}]", + "attr": "" + }, + { + "type": 5, + "index": 6, + "track_info": "[{\"x\":-67.6883,\"end_time\":14800,\"p\":-1,\"y\":-51.4412,\"h\":0.1098,\"start_time\":12866.6667,\"r\":0,\"w\":0.5611,\"s\":0.7573}]", + "attr": "" + }, + { + "type": 5, + "index": 7, + "track_info": "[{\"x\":0,\"end_time\":19900,\"p\":-1,\"y\":-182.2443,\"h\":0.1222,\"start_time\":18133.3333,\"r\":0,\"w\":0.7868,\"s\":0.8434}]", + "attr": "" + }, + { + "type": 5, + "index": 8, + "track_info": "[{\"x\":1.8676,\"end_time\":17833.3333,\"p\":-1,\"y\":-263.4976,\"h\":0.1267,\"start_time\":16266.6667,\"r\":0,\"w\":0.7734,\"s\":0.8744}]", + "attr": "" + }, + { + "type": 5, + "index": 9, + "track_info": "[{\"x\":0,\"end_time\":21166.6667,\"p\":-1,\"y\":-155.2009,\"h\":0.1577,\"start_time\":20000,\"r\":0,\"w\":0.7674,\"s\":1.0425}]", + "attr": "" + }, + { + "type": 5, + "index": 10, + "track_info": "[{\"x\":-18.7926,\"end_time\":25000,\"p\":-1,\"y\":-206.074,\"h\":0.1387,\"start_time\":23966.6667,\"r\":0,\"w\":0.814,\"s\":0.8982}]", + "attr": "" + }, + { + "type": 5, + "index": 11, + "track_info": "[{\"x\":7.9925,\"end_time\":27466.6667,\"p\":-1,\"y\":113.0216,\"h\":0.1177,\"start_time\":25566.6667,\"r\":0,\"w\":0.6277,\"s\":0.7778}]", + "attr": "" + }, + { + "type": 5, + "index": 12, + "track_info": "[{\"x\":0,\"end_time\":33133.3333,\"p\":-1,\"y\":-105.1051,\"h\":0.1945,\"start_time\":29900,\"r\":0,\"w\":0.9415,\"s\":1.0225}]", + "attr": "" + }, + { + "type": 5, + "index": 13, + "track_info": "[{\"x\":-2.5062,\"end_time\":49466.6667,\"p\":-1,\"y\":-231.806,\"h\":0.1351,\"start_time\":35566.6667,\"r\":0,\"w\":0.7709,\"s\":0.8928}]", + "attr": "" + }, + { + "type": 5, + "index": 14, + "track_info": "[{\"x\":-115.5485,\"end_time\":50000,\"p\":-1,\"y\":-288.1337,\"h\":0.0999,\"start_time\":33000,\"r\":0,\"w\":0.4511,\"s\":1.0027}]", + "attr": "" + }, + { + "type": 5, + "index": 15, + "track_info": "[{\"x\":0,\"end_time\":12733.3333,\"p\":-1,\"y\":-247.28,\"h\":0.1697,\"start_time\":10433.3333,\"r\":0,\"w\":0.7301,\"s\":0.8495}]", + "attr": "" + }, + { + "type": 5, + "index": 16, + "track_info": "[{\"x\":-2.5,\"end_time\":49833.3333,\"p\":-1,\"y\":-174.28,\"h\":0.1265,\"start_time\":39366.6667,\"r\":0,\"w\":0.7439,\"s\":0.8365}]", + "attr": "" + }, + { + "type": 5, + "index": 17, + "track_info": "[{\"x\":0,\"end_time\":49633.3333,\"p\":-1,\"y\":-110.5673,\"h\":0.137,\"start_time\":46400,\"r\":0,\"w\":0.8027,\"s\":0.9059}]", + "attr": "" + }, + { + "type": 5, + "index": 18, + "track_info": "[{\"x\":28.3888,\"end_time\":53566.6667,\"p\":-1,\"y\":-45.7408,\"h\":0.1406,\"start_time\":52166.6667,\"r\":0,\"w\":0.8441,\"s\":0.9298}]", + "attr": "" + }, + { + "type": 5, + "index": 19, + "track_info": "[{\"x\":-58.9199,\"end_time\":52300,\"p\":-1,\"y\":-182.3874,\"h\":0.1358,\"start_time\":50666.6667,\"r\":0,\"w\":0.6862,\"s\":0.9373}]", + "attr": "" + }, + { + "type": 5, + "index": 20, + "track_info": "[{\"x\":-5.6135,\"end_time\":56133.3333,\"p\":-1,\"y\":89.1711,\"h\":0.1558,\"start_time\":53866.6667,\"r\":0,\"w\":0.7726,\"s\":1.5632}]", + "attr": "" + }, + { + "type": 5, + "index": 21, + "track_info": "[{\"x\":-48.9282,\"end_time\":23233.3333,\"p\":-1,\"y\":-13.2555,\"h\":0.1332,\"start_time\":21333.3333,\"r\":0,\"w\":0.7328,\"s\":0.8807}]", + "attr": "" + }, + { + "type": 5, + "index": 22, + "track_info": "[{\"x\":40.0669,\"end_time\":29633.3333,\"p\":-1,\"y\":-113.6177,\"h\":0.1343,\"start_time\":27800,\"r\":0,\"w\":0.7314,\"s\":0.8876}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485789000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309470101150040561C23DEA0" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.vi/resources.arsc b/config.vi/resources.arsc new file mode 100644 index 0000000..a38c3a3 Binary files /dev/null and b/config.vi/resources.arsc differ diff --git a/config.xxxhdpi/AndroidManifest.xml b/config.xxxhdpi/AndroidManifest.xml new file mode 100644 index 0000000..1b5edc8 Binary files /dev/null and b/config.xxxhdpi/AndroidManifest.xml differ diff --git a/config.xxxhdpi/META-INF/BNDLTOOL.RSA b/config.xxxhdpi/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..5c79c47 Binary files /dev/null and b/config.xxxhdpi/META-INF/BNDLTOOL.RSA differ diff --git a/config.xxxhdpi/META-INF/BNDLTOOL.SF b/config.xxxhdpi/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..e237e7d --- /dev/null +++ b/config.xxxhdpi/META-INF/BNDLTOOL.SF @@ -0,0 +1,593 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: daBBDgdTjFj7j89x7pthICXSwtQ= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: TPssJemguBt5NeAuvmn6cPgluF4= + +Name: res/a2/a.webp +SHA1-Digest: dZkrvogvu5NzD7nXEsgnvAkwS2k= + +Name: res/a2/b.webp +SHA1-Digest: 35lq6LRTMhi9dwuSxhgo6sywYxI= + +Name: res/a4/d.xml +SHA1-Digest: FJXSYJYfy7Gk2FoZGDQJAgv9zNM= + +Name: res/ak/b.webp +SHA1-Digest: e2+W6Wt75oXpmxwMcK1eoLJ18S8= + +Name: res/av/a.xml +SHA1-Digest: C8yhBg2w3tUAPSPfgK9QSXa2Qww= + +Name: res/l/b7.9.png +SHA1-Digest: hEPO9E3BmC5cDZiYAmJnZUowv58= + +Name: res/l/cm.png +SHA1-Digest: 4tz+7hZ0FkNZVdeH0E6Ke7HRrko= + +Name: res/m/cd.webp +SHA1-Digest: b5XAUm2KB74HXIXqTuZx5O+gyiA= + +Name: res/m/d4.png +SHA1-Digest: JVpFINYxLP1O8UReV9njnLXpLSg= + +Name: res/n/b0.png +SHA1-Digest: vDyJQ6d6Fht9IzZ655Bo0qqx+YU= + +Name: res/n/b2.webp +SHA1-Digest: A4RDCCRYhMALTBm2SmwvbWB/kYQ= + +Name: res/n/b3.9.png +SHA1-Digest: 9ZAmnZNPAXPh8bDao8jqXUFWGQM= + +Name: res/n/b4.webp +SHA1-Digest: N0NEw7UYEyvxZy7xHwevLPzeUaE= + +Name: res/n/b5.webp +SHA1-Digest: +zh6QouII2xdJjtRTgO5l82MTHI= + +Name: res/n/b6.webp +SHA1-Digest: wcsDTQOun+/qcaxhV5OrPFzXM4s= + +Name: res/n/b7.9.png +SHA1-Digest: 9ObfXlJ/ucIPa4yMTRRHA7Y3C6s= + +Name: res/n/b8.webp +SHA1-Digest: qgwJ1/oIsEwk/W5baOwOtYmnyR0= + +Name: res/n/b9.webp +SHA1-Digest: CD/gk295mSmHQRrti9fZNiqfLh8= + +Name: res/n/ba.webp +SHA1-Digest: IAFhLABe+V/O47U6HozErRPMcpg= + +Name: res/n/bf.9.png +SHA1-Digest: w5QU76ynt74YUL6SSqMQs9+y4ZI= + +Name: res/n/bg.webp +SHA1-Digest: RMrJl/NfcZJuwBBVOGtjeTxDdeo= + +Name: res/n/bh.webp +SHA1-Digest: 24FlDW0ammiVh8+2CjPPQGDMkt8= + +Name: res/n/c2.webp +SHA1-Digest: 9orQAHL/VCczUz2eQm90HoPELTM= + +Name: res/n/cf.webp +SHA1-Digest: EblET3Pl2vjTFEVcu3QVmaRbM3I= + +Name: res/n/cg.webp +SHA1-Digest: hWjeHGfPUXtLMk/W4dpIxP6uaQk= + +Name: res/n/cl.webp +SHA1-Digest: ieeIWM7TZsIil4ycRBFokNRyNiU= + +Name: res/n/cw.9.png +SHA1-Digest: +iHmlb/C1CVOZE+auaawMpnDQ+E= + +Name: res/n/cx.9.png +SHA1-Digest: 0F+suvh+INRrpTqj+URsgAE3uDM= + +Name: res/n/cy.9.png +SHA1-Digest: FaFXnTwWHd8HWrfBxWqqUOUeDEQ= + +Name: res/n/cz.9.png +SHA1-Digest: fcDydm8uLKExsKhn8uncIlL+LCY= + +Name: res/n/d0.png +SHA1-Digest: DM8ngam/2LMqQV2YdyPjP6Odo9w= + +Name: res/n/dr.9.png +SHA1-Digest: OYj2HmusJol8q6xYU6ATy0685Zk= + +Name: res/n/fh.9.png +SHA1-Digest: weHXjXaY8XddMpfhNC9+ZNZt8Lc= + +Name: res/n/fr.png +SHA1-Digest: j3ZqkMkquLlsgmqn6e3gzJb9iAM= + +Name: res/n/fy.png +SHA1-Digest: xIx3Prx0p1/PaHiJPQb9a4ZlMRY= + +Name: res/n/gf.png +SHA1-Digest: rihYWZvqJE36YhUdii5r4SEmqJo= + +Name: res/n/gk.webp +SHA1-Digest: wWekiy5uHMy6rKTqUebxDa24cO4= + +Name: res/n/gt.webp +SHA1-Digest: pIVkfNouCwVhz3CTna/pbDczf0o= + +Name: res/n/h2.webp +SHA1-Digest: GcbT4r8VD/KepvMLLB6gee5IYbo= + +Name: res/n/h5.webp +SHA1-Digest: PLMuhk1yXWUOMWsk2tAvNXD7wUw= + +Name: res/n/hb.webp +SHA1-Digest: Rz2A65i5v20yovFdURwfO4Z47ws= + +Name: res/o/a.9.png +SHA1-Digest: ZJIDKC63L6DnwnJO7kEK9vgF2hA= + +Name: res/o/a0.9.png +SHA1-Digest: DAKPNncyA45YiXfjg6mKRqElx74= + +Name: res/o/a1.png +SHA1-Digest: Z65iXY3N9a0MBYdO6kK4U8LjdZI= + +Name: res/o/a4.9.png +SHA1-Digest: i8R7JsbbVqMoTgxeVVcRyaHxicA= + +Name: res/o/a5.9.png +SHA1-Digest: MmFni7xYMNwUgFMc5McZOslq84E= + +Name: res/o/aah.png +SHA1-Digest: JD7jolDkz+6OGPfd6AwDF2vNNYQ= + +Name: res/o/aaj.png +SHA1-Digest: K1PlCkhqLBrO/ooBWbitb/tJF6o= + +Name: res/o/aal.webp +SHA1-Digest: CDEu59W1wbxY/RdyznA4nzWeANE= + +Name: res/o/ado.png +SHA1-Digest: SsdrS8OkG6X40E4wv9IPPbYquCY= + +Name: res/o/ae.9.png +SHA1-Digest: szd2QumXrWptyoCIGqS/i/xxNEY= + +Name: res/o/af.9.png +SHA1-Digest: xSm8qzegNtsUvkdPHFxe7dv3Qeo= + +Name: res/o/ag.9.png +SHA1-Digest: b1o1oOk2xq13UlHZS0M+ZZwlds4= + +Name: res/o/ah.9.png +SHA1-Digest: AvaFG+VW+6zwN87ldMjEGQoDa1s= + +Name: res/o/apu.webp +SHA1-Digest: CHzKv+Vbw+LxhJNXdaDr2SbQU90= + +Name: res/o/apv.webp +SHA1-Digest: v3k9XZiDjzFwgZPiDMPMpXt2G1Y= + +Name: res/o/apw.webp +SHA1-Digest: MLHA9Wv7xltagqIk2aSRS4Y35Q4= + +Name: res/o/apx.webp +SHA1-Digest: jW4S+QFJIdOBB9TGhhXGjjQj5GA= + +Name: res/o/apy.webp +SHA1-Digest: JW9HV4HiPNY7O3ffQO3kZ5wVjTM= + +Name: res/o/apz.webp +SHA1-Digest: 87pZaR8dw59fJcJrEu/gZZJ0CKw= + +Name: res/o/aq0.9.png +SHA1-Digest: KnrhQQs3gnQ+O67rvbZo3FfcCbA= + +Name: res/o/aq1.9.png +SHA1-Digest: i/EhgbTdSdsR1beTutV/vK3f9LE= + +Name: res/o/aq2.9.png +SHA1-Digest: tnj6SKdkrd2EjT5Pd2f29+t22iA= + +Name: res/o/aq3.webp +SHA1-Digest: OjuG/y0TBP5JcLhW1DJEhQ0PNf0= + +Name: res/o/aq4.webp +SHA1-Digest: tEUHU/nsxM9Pr3/8zr938NDzhM8= + +Name: res/o/aq5.webp +SHA1-Digest: b+/4oeMI1CrimeTSKxepumPJATI= + +Name: res/o/aq6.webp +SHA1-Digest: yLud0HNj9o9jrPo09h/QxkymDj8= + +Name: res/o/aq7.webp +SHA1-Digest: HHm/mkUuBRsltD/aOz7apVS2luA= + +Name: res/o/aq8.webp +SHA1-Digest: vWmeZ/8YkhHbLoIfVHCPG0dUpEQ= + +Name: res/o/aq9.webp +SHA1-Digest: tAwhcdvfBHMug5xuMSFiRuoUF8A= + +Name: res/o/aq_.webp +SHA1-Digest: Ec+SF48J29PULBd3F4+dzVoQfss= + +Name: res/o/aqh.png +SHA1-Digest: ln+AtkKWU7VthglkC28/8WCMsmc= + +Name: res/o/aqi.png +SHA1-Digest: tYbMD37kZDFN0XlRXbumfDRe0y0= + +Name: res/o/aqj.png +SHA1-Digest: 3Ln82EKqnRBahcI9kaZgCn/uIJI= + +Name: res/o/aqk.png +SHA1-Digest: YWeAH8nh/9gkI5ArIUlWsINotCA= + +Name: res/o/aql.png +SHA1-Digest: hw7FUPIeZU25IMuUWdWe9CY/iZs= + +Name: res/o/aqm.png +SHA1-Digest: n6AE0h9P7l8j8EZ02FFNDbJSk2w= + +Name: res/o/aqn.png +SHA1-Digest: ttwsdOAMoTMGQBTL+MZmGM4fwpw= + +Name: res/o/aqo.png +SHA1-Digest: 1f/RUZ6DFEO4C5l+T1KGyNuTTNk= + +Name: res/o/aqp.png +SHA1-Digest: WDg1Wuw+HZRv0RLnvPyugXUM9DI= + +Name: res/o/aqq.png +SHA1-Digest: QGKV/AS9adI5+lXcKyxzH3mJYSo= + +Name: res/o/aqr.png +SHA1-Digest: NjfV+UhaD9JhtLoKWpMEkJNr60Q= + +Name: res/o/aqs.png +SHA1-Digest: eISAqc8apKz0EvD+JK45AJkHqsY= + +Name: res/o/aqt.png +SHA1-Digest: zrVfhVODoWq/Sl+Gm063Pia/kQ8= + +Name: res/o/aqu.png +SHA1-Digest: bUN1BRIzLQlH46q6dDFGenbPs0U= + +Name: res/o/aqv.png +SHA1-Digest: MVOy2dTFm4pVDpLr9W60wZKPHOw= + +Name: res/o/aqw.png +SHA1-Digest: 7PcI1qzpfawaUvqK8dkwhgZD/2g= + +Name: res/o/aqx.png +SHA1-Digest: 3cWOHKEgOD6ljr728kyUbX5nJiU= + +Name: res/o/aqy.png +SHA1-Digest: KQvK8LrVcDer1EcB8RyQvd8gyOU= + +Name: res/o/aqz.png +SHA1-Digest: PzXzaFFa06PXJ9+RXgFRkwemeZ8= + +Name: res/o/ar0.png +SHA1-Digest: GRdQ4QOURT7s4WoguwLjds3G2lc= + +Name: res/o/ar1.png +SHA1-Digest: Kn675lt4SXXGVN6E1WxahlTSgBA= + +Name: res/o/ar2.png +SHA1-Digest: F+YwAHLyKlYSFGZaFEhV9GURc3A= + +Name: res/o/ar3.png +SHA1-Digest: gu8yPSVim3KPUizYqmwKCuQj0gk= + +Name: res/o/ar4.png +SHA1-Digest: 1/KrZBDch7PN9KjP31k9d1nZG+A= + +Name: res/o/arl.png +SHA1-Digest: 7YJYRffrpY4dEWSeL9zQsDebKTA= + +Name: res/o/at_.9.png +SHA1-Digest: n9SiqIvLcW9u9oYoSKwBVFd1sN4= + +Name: res/o/avc.webp +SHA1-Digest: YZQx0JoJmDCUyajZl7lMMVqXhok= + +Name: res/o/awd.webp +SHA1-Digest: IbEc05SqNOhNabY8fz7IZHzYlNc= + +Name: res/o/ax6.webp +SHA1-Digest: IvCQc4tyqC0k+YkpsE5O5tzFbLA= + +Name: res/o/axz.png +SHA1-Digest: rJoCBZnIeE3TM3whpPc7Jt4suj0= + +Name: res/o/ayu.png +SHA1-Digest: OINKYPetCo5dk42PBap3VRVtCbo= + +Name: res/o/az2.webp +SHA1-Digest: ejFH6ueHriSRYKxUVvaja936/+0= + +Name: res/o/aze.webp +SHA1-Digest: bMzLHJ9h0bFSs2mkNbZfQQp7III= + +Name: res/o/b3l.png +SHA1-Digest: QrJcFWCtT8WrhU8ZxkXVCIXnXqk= + +Name: res/o/b49.png +SHA1-Digest: AKs1AfIvvXujrFkGuS6PSPdA+lE= + +Name: res/o/b4e.xml +SHA1-Digest: 4D5okbxN9kjKplHHX1TVyT9bqH4= + +Name: res/o/b54.webp +SHA1-Digest: Zn1uNU/NPmNutx7TfhXVcnJS2JE= + +Name: res/o/b57.png +SHA1-Digest: 2alBHrX5hIeNaO5Emx4PdfUIIC0= + +Name: res/o/b62.9.png +SHA1-Digest: Jd+kjr2jdDfJEdooxV4UWzwBak0= + +Name: res/o/b73.webp +SHA1-Digest: zHplq3TIAeStyDnb0SFFHjk6WDM= + +Name: res/o/b9u.webp +SHA1-Digest: vm5SIAxKeH1FgMHxBUwdfH3Ope0= + +Name: res/o/bbe.png +SHA1-Digest: VEXlLZvLJN3kjDyYDCAHGVytl0E= + +Name: res/o/bby.png +SHA1-Digest: u663gPAPcdfjtYynX9QOUia6wkA= + +Name: res/o/bcg.png +SHA1-Digest: 5LceMLKV5oJIyno9Q4Kz8nPNFgA= + +Name: res/o/bfl.webp +SHA1-Digest: ZfRDXNPPZCYSNDvpvzSAWAhe1Yw= + +Name: res/o/bg4.webp +SHA1-Digest: YHileeETh19Aje82DPGp9FOdklc= + +Name: res/o/bhu.xml +SHA1-Digest: /Xl6MHtnzW1RgBQ/Dqhi1twh4LA= + +Name: res/o/bl4.webp +SHA1-Digest: qEvdb7ySuXXppSWM0qk6LLnflmE= + +Name: res/o/bmz.webp +SHA1-Digest: fWZXKRnIfHTExzVBCutkJSo3pwE= + +Name: res/o/bnr.webp +SHA1-Digest: MaaY17gGnQQL7o5219d34aoKRV0= + +Name: res/o/bns.webp +SHA1-Digest: k5+toAt599FdC36/Ox6dmPs0YQo= + +Name: res/o/h.9.png +SHA1-Digest: S+C/ahBe5ldrh6lSTcEm6Ick0cE= + +Name: res/o/hx.webp +SHA1-Digest: CypLw6yoaY7BzzE2rR3j92STJDk= + +Name: res/o/i.png +SHA1-Digest: wiFKBC6lpniDArMxJ1XjWpizJWY= + +Name: res/o/s.9.png +SHA1-Digest: wUzsuNWwKbwHlVtZhNnXF+qa0kQ= + +Name: res/o/t.9.png +SHA1-Digest: v+MZTWdzw6ExjjduGWMeE+u6ApQ= + +Name: res/o/u.9.png +SHA1-Digest: a2zcOrd7CxSVAK4DsGhXoGYbppE= + +Name: res/o/v.9.png +SHA1-Digest: aHQduyKWLmHfR04log1pbtvtrJM= + +Name: res/o/w.9.png +SHA1-Digest: lgiklbXwj9qz5n8jPbLE4rS0AeI= + +Name: res/o/x.9.png +SHA1-Digest: IGule17vQl2CrY8EcqYv/kDIicA= + +Name: res/o/y.9.png +SHA1-Digest: JgnSQpbeJhvfR9hiP81TjCfRytI= + +Name: res/o/z.9.png +SHA1-Digest: tOGxTx81i1/mjqrQQ4UWVUjEr+8= + +Name: res/p/a5a.xml +SHA1-Digest: Aj3TB5jejtFWj2oj8WBw8INB58M= + +Name: res/p/aey.xml +SHA1-Digest: OH8bw68fHZjGNNXpBhE2P1EYfJU= + +Name: res/p/ani.png +SHA1-Digest: kNNTck58Ap7jQYsmRE3TnrHt+aY= + +Name: res/q/a.webp +SHA1-Digest: m0884ZAck5fn2A9gfDTFilExAfg= + +Name: res/q/aa.webp +SHA1-Digest: 7F/848m2FTWLfwJ8fz9n+Fu/cnk= + +Name: res/q/ae.png +SHA1-Digest: rk4CVdEJY7vT0yeSbc0cD0/ALcw= + +Name: res/q/af.png +SHA1-Digest: kC8g7WPjCNr/mXhOPi83c0g5OYc= + +Name: res/q/ah.webp +SHA1-Digest: Dt4XoFKcknivfHVEmXL8oNkdJ78= + +Name: res/q/ai.webp +SHA1-Digest: 9WBZfBRgB8Odms+u2dBzed3qyWg= + +Name: res/q/aj.webp +SHA1-Digest: /dxDlcyozotkohdsxIYCO3BfuRE= + +Name: res/q/at.webp +SHA1-Digest: W9bXB+bntrLYwAovIsDZLtKFLEY= + +Name: res/q/av.webp +SHA1-Digest: XdLDonslgcpI+zuFOj+RrHbXj6Q= + +Name: res/q/az.webp +SHA1-Digest: kqU9FEzW+Fdv7FSvLPaYB00lwxo= + +Name: res/q/b.webp +SHA1-Digest: xwfr060Qi8J5BC1nCz1EXdVwq84= + +Name: res/q/b1.webp +SHA1-Digest: fA0rlaSd3ZN1yGJkDaswhfMsM88= + +Name: res/q/b5.png +SHA1-Digest: Ep2lT/ue7qKY8ggOISyuphNzGJY= + +Name: res/q/b6.webp +SHA1-Digest: a5si7kyhDi2Kz9PPMK994a1LNSw= + +Name: res/q/b7.png +SHA1-Digest: fh4XeguO47MqE1bw0iAIjnGWKzE= + +Name: res/q/b8.webp +SHA1-Digest: Iu3vZp8gM/8anatpGtAagfFZ6Qs= + +Name: res/q/b9.png +SHA1-Digest: Q+pkRMLU/R256Hn9MdcHTJNUt2c= + +Name: res/q/b_.png +SHA1-Digest: yX2VLZ00LbJlGTvg138Ub5LkuRc= + +Name: res/q/ba.webp +SHA1-Digest: oWuUJptqGO01rDz54PDLvbl1waM= + +Name: res/q/bb.webp +SHA1-Digest: qTvwO/CPWm2WuYI/0C73ZrHg5xE= + +Name: res/q/bc.9.png +SHA1-Digest: ZF+XP15xNObT6FQ5aI/OUvzAQFw= + +Name: res/q/bd.webp +SHA1-Digest: jbBTlUHyX2sez+Qcvx3KBw/mVpM= + +Name: res/q/be.webp +SHA1-Digest: VuhWLYVn82bgm9shb9TLh29ex4Q= + +Name: res/q/bg.webp +SHA1-Digest: 8ODy1kdJSYtxJbx+i7iaT8BFMaM= + +Name: res/q/bh.png +SHA1-Digest: znzn3YdcsP4VbIlaZefLcf13ZNA= + +Name: res/q/bi.png +SHA1-Digest: iq83Yrn1Eyp7JB7lEYxVzv2hoBs= + +Name: res/q/bk.webp +SHA1-Digest: +I8gGDwgkfflgNAVXXRDi72sn0U= + +Name: res/q/bl.webp +SHA1-Digest: 9N2258rzd2E/20y71FPCvI9Vpzk= + +Name: res/q/bm.webp +SHA1-Digest: Xteu8370mpsCnFB8KQtyG7ruIno= + +Name: res/q/bp.webp +SHA1-Digest: RoqhkrJu6Fvv+6yGlBCRgDKSwLk= + +Name: res/q/bq.png +SHA1-Digest: KjY+3FftCrUiJBIF7KZULOn6c84= + +Name: res/q/br.png +SHA1-Digest: 9AvXAC0VnpFolol0mmaGr9k+W2Y= + +Name: res/q/bs.png +SHA1-Digest: pfFJPZOL+/1l2Che9pOdNJkeKDo= + +Name: res/q/bt.webp +SHA1-Digest: 6XbuqTpJzjqreNpgWX7THpZ1PCg= + +Name: res/q/bu.png +SHA1-Digest: ehIhEztN5QXAD9KPLkylGiHdis8= + +Name: res/q/bv.webp +SHA1-Digest: KD3PLQEUVykq30SQ2mYBa9+cURg= + +Name: res/q/e.9.png +SHA1-Digest: gBTeg7IlLfaCenfdpQM6TSRWDE0= + +Name: res/q/f.9.png +SHA1-Digest: LeSg2xZlJi5RkoPN802y95Cdnuw= + +Name: res/q/g.webp +SHA1-Digest: rnAOhp8h4E+/QnBKvAhbLv1e9VA= + +Name: res/q/h.webp +SHA1-Digest: g2vbfhfbBcAfRWjlPpkXoniZSUg= + +Name: res/q/i.webp +SHA1-Digest: 9qUSggGYh7fnJg8xRt1e/PZVoS4= + +Name: res/q/j.png +SHA1-Digest: tmfl+Rk727HV+ve1Y7/Pxw3uW60= + +Name: res/q/l.webp +SHA1-Digest: 3OIw7jLHg3yLla4ytvnXq0Bd6P4= + +Name: res/q/m.webp +SHA1-Digest: SFjGJnVRihikFpmjIksfN31XVpg= + +Name: res/q/n.webp +SHA1-Digest: SMgCSzGRqmdQKKEiAS5eLd/nV/Y= + +Name: res/q/o.webp +SHA1-Digest: eiw5Q72BRhlBXPrRMwiVYBNP/0w= + +Name: res/q/p.webp +SHA1-Digest: nybnmRNDylhIl+YuViZlUggwEyw= + +Name: res/q/q.webp +SHA1-Digest: FH754Z/33krJzkniP5UhjJZneLQ= + +Name: res/q/r.9.png +SHA1-Digest: Nvu+kWXfIWPUFeBoz/VaHV9TGso= + +Name: res/q/s.9.png +SHA1-Digest: bPDzUlab2fEXNeosjJOWSwlVJ7U= + +Name: res/q/t.9.png +SHA1-Digest: cTFXnInCDcVlCt7/MXJ0wYN0Mlg= + +Name: res/q/u.png +SHA1-Digest: yMZHAJ8FiasIg+mstq+db8h3fz4= + +Name: res/q/v.png +SHA1-Digest: +Miuj62ume9OqQJC5LMfKYGs4Ac= + +Name: res/q/w.png +SHA1-Digest: jpVSSaYyzlXgNw9mmEjWouWJu8A= + +Name: res/q/x.png +SHA1-Digest: r+uKFfeaNa9nsAK4MnKjNSmbva0= + +Name: res/x/a.webp +SHA1-Digest: pckyYnx8iYbmfEppnlpLk+AQlYw= + +Name: res/x/b.webp +SHA1-Digest: SqEsWSNz1TrxJDfFOBdOZqiKMGo= + +Name: res/x/c.9.png +SHA1-Digest: yhkARDDjXZDgHsf3WI0IDnixx+M= + +Name: resources.arsc +SHA1-Digest: R8JKXCJThglRRU4TdytyKDT2NK8= + diff --git a/config.xxxhdpi/META-INF/MANIFEST.MF b/config.xxxhdpi/META-INF/MANIFEST.MF new file mode 100644 index 0000000..36fe31a --- /dev/null +++ b/config.xxxhdpi/META-INF/MANIFEST.MF @@ -0,0 +1,592 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: ddj82e2c4rDzdjPa8bLE1tAXmGA= + +Name: res/a2/a.webp +SHA1-Digest: IVBep5UXeJuhWoknYYscjeGZC6c= + +Name: res/a2/b.webp +SHA1-Digest: MUUP+ELp6eLzbktyI2CovosO2Wo= + +Name: res/a4/d.xml +SHA1-Digest: /GhcxekbB25EA6u/pD47VPXm7AM= + +Name: res/ak/b.webp +SHA1-Digest: 2jmj7l5rSw0yVb/vlWAYkK/YBwk= + +Name: res/av/a.xml +SHA1-Digest: oxxcM+plQED5MvjTQOT6CwMCk34= + +Name: res/l/b7.9.png +SHA1-Digest: rJU/U7/gLj7gG47D4S8Rqf0VFKM= + +Name: res/l/cm.png +SHA1-Digest: Wp0Fh3i+tOltH5aKKamOzD2d/wY= + +Name: res/m/cd.webp +SHA1-Digest: TFx8imynREJco4mO8v4N4Y/2MF0= + +Name: res/m/d4.png +SHA1-Digest: TMXviYFD8EiA/5Y3AVn4IL9A808= + +Name: res/n/b0.png +SHA1-Digest: nmfLTuxArOuuvGqUVEGPkp558Wg= + +Name: res/n/b2.webp +SHA1-Digest: +v3ILnV4ABejE9UrFoPO9o1gWL8= + +Name: res/n/b3.9.png +SHA1-Digest: 2xgU0++/KN5qhzcL/Lhz8p8cTNU= + +Name: res/n/b4.webp +SHA1-Digest: lCzMRRl/9mZFQGsP7XBtj+xBpQA= + +Name: res/n/b5.webp +SHA1-Digest: LoK1AKL6mNZpDatpXrA3Pi5idc8= + +Name: res/n/b6.webp +SHA1-Digest: uR9x/6CdshNQqhMUpYIhoxkAPfc= + +Name: res/n/b7.9.png +SHA1-Digest: ewmojyQLbwcPjW/HwZL3ryTwxZQ= + +Name: res/n/b8.webp +SHA1-Digest: 0RqG85JVycELMZJ0zzUIs49JT+s= + +Name: res/n/b9.webp +SHA1-Digest: CwNcSttlM70032mit96PVBLd3U0= + +Name: res/n/ba.webp +SHA1-Digest: Yrygusy8WUA2XzbLhh2G646fYfU= + +Name: res/n/bf.9.png +SHA1-Digest: kAA9inTJRlbjsA4j0zwQiNZllZc= + +Name: res/n/bg.webp +SHA1-Digest: EVbiIXBCOnAWadYP/fULY0ZPbhI= + +Name: res/n/bh.webp +SHA1-Digest: zvPF7RdlWJMFw5lcoXYirDIHAl4= + +Name: res/n/c2.webp +SHA1-Digest: TPbWXCKHycpAz5xOVW8BD2CdXGI= + +Name: res/n/cf.webp +SHA1-Digest: jpC3GPKczVfW16zTyhgxwmiohwE= + +Name: res/n/cg.webp +SHA1-Digest: 4Zk/0vW1+/LGt34DPRgJDW6eYNU= + +Name: res/n/cl.webp +SHA1-Digest: 2pdLSUmehaXFCpRDutkyFAitDjw= + +Name: res/n/cw.9.png +SHA1-Digest: dnObiFrk1DvtR5VGgJWQwE6oNeo= + +Name: res/n/cx.9.png +SHA1-Digest: 9MYmMKRnfwttaoRGc1WDg0jzgyY= + +Name: res/n/cy.9.png +SHA1-Digest: URz3Lz/tIjMAtXfNHimWcDQLTtQ= + +Name: res/n/cz.9.png +SHA1-Digest: iJFesSsAAmE1zFB9XbiCZW1cKKU= + +Name: res/n/d0.png +SHA1-Digest: qtoCsdEoyaDYmAvH44tfVLv6hoY= + +Name: res/n/dr.9.png +SHA1-Digest: KzaFWAmygTEjrifYewxjMCs8KB0= + +Name: res/n/fh.9.png +SHA1-Digest: +rvzsygRjZwO5T5Opl0ILvC1YIo= + +Name: res/n/fr.png +SHA1-Digest: w0uPX855OXn47KHVmgsUHSJVH1c= + +Name: res/n/fy.png +SHA1-Digest: KtEytPFhfHoEtbuSkpY5InDp3Lo= + +Name: res/n/gf.png +SHA1-Digest: cTuHNyP/igkcWxq1ax0azXUoiC0= + +Name: res/n/gk.webp +SHA1-Digest: doSjXFvaKTFv7x58Crdfmhh7iXE= + +Name: res/n/gt.webp +SHA1-Digest: Jjk2PGq7KCqBztsqI1EdelJs10Y= + +Name: res/n/h2.webp +SHA1-Digest: Z9cQnc/B23fDzQs1AAt67qEuN6o= + +Name: res/n/h5.webp +SHA1-Digest: cSlp+cfzM5cW1roSCJIzi+th/eg= + +Name: res/n/hb.webp +SHA1-Digest: JJSs+1swdJVNbsrmJvkSgnOmgZE= + +Name: res/o/a.9.png +SHA1-Digest: D1jsYZU4cTnehZn5HOpfi6V3kmU= + +Name: res/o/a0.9.png +SHA1-Digest: oWuW+wf7RDugzGE5OcOKk/wfAWQ= + +Name: res/o/a1.png +SHA1-Digest: rciAiTdJ+MRPTsG/UvNRmHGoqCA= + +Name: res/o/a4.9.png +SHA1-Digest: 0RVQrQFoh01QC4jkUDLwEoHiG1w= + +Name: res/o/a5.9.png +SHA1-Digest: tUDUBN5WzuDjef2n68sSipDlxzg= + +Name: res/o/aah.png +SHA1-Digest: uMbx7adkrZHLVxcPBx3dHSdFpDE= + +Name: res/o/aaj.png +SHA1-Digest: m+HKi8U0cDeYoY4dTlhgouqNe5s= + +Name: res/o/aal.webp +SHA1-Digest: owCeypjUugARgvXSL6bZHacArro= + +Name: res/o/ado.png +SHA1-Digest: Whrp1H2T6CdYbAr9L8stK29nZ2Q= + +Name: res/o/ae.9.png +SHA1-Digest: 0ZqXxaSPdx/iM1JIRZ2NCJNbgjw= + +Name: res/o/af.9.png +SHA1-Digest: CUTo0hgVLf4sZdNMZeKkTge3hSE= + +Name: res/o/ag.9.png +SHA1-Digest: 0Y9UsvEngczHRCrU7qovm91bqxk= + +Name: res/o/ah.9.png +SHA1-Digest: fJSE0nVY/aXx8gVbBmqEA4Ocoss= + +Name: res/o/apu.webp +SHA1-Digest: 8Fop9llwFrXy1ja65zI2WhvJO5U= + +Name: res/o/apv.webp +SHA1-Digest: BX6vl3Nh0YTJzq9+AQxVQkBsAAM= + +Name: res/o/apw.webp +SHA1-Digest: mLumj6Z/zg0zwfDJx43IhDxJAeY= + +Name: res/o/apx.webp +SHA1-Digest: t9KNFKyLvWZDZ70j/mfTisOE33o= + +Name: res/o/apy.webp +SHA1-Digest: iMb0ZK6XfqNNkRwNUTXhIMal+ic= + +Name: res/o/apz.webp +SHA1-Digest: AEZWECDz5EABsgqg1ag3nEOhugc= + +Name: res/o/aq0.9.png +SHA1-Digest: Mmu3Vk14ZBdPXjpj13FPPdGKZWE= + +Name: res/o/aq1.9.png +SHA1-Digest: 2kbJbHUc5XUV+vFdzNbEAGrcnFU= + +Name: res/o/aq2.9.png +SHA1-Digest: 2D428tcry4+tLTmGvXsQBLLe2ME= + +Name: res/o/aq3.webp +SHA1-Digest: adLVrFmoTXtyqpCTY4YkUzDsSjE= + +Name: res/o/aq4.webp +SHA1-Digest: F13RfvMByQYQ1eJYVzf+nj9o8hw= + +Name: res/o/aq5.webp +SHA1-Digest: ZVLYhqoWcEUunds0pgkc6tOMkEY= + +Name: res/o/aq6.webp +SHA1-Digest: J4pSUv+dgxHkcvTtmRcsn7JcbfE= + +Name: res/o/aq7.webp +SHA1-Digest: sMBt7tnsoURIYgGZHav6cqf0YHA= + +Name: res/o/aq8.webp +SHA1-Digest: IIYM4iAPm/V7q8mS0vGOn+7LBKQ= + +Name: res/o/aq9.webp +SHA1-Digest: p8GG7vgb5x4a/sVG0vsHarUpymI= + +Name: res/o/aq_.webp +SHA1-Digest: 3mu87sQZefJSvYUKdgUJeNgm534= + +Name: res/o/aqh.png +SHA1-Digest: HFPM1hJNS3fJqrKzaYBiK2IVwJs= + +Name: res/o/aqi.png +SHA1-Digest: pcuWjpIxCuXSoOlKuJC0GFHq8Zw= + +Name: res/o/aqj.png +SHA1-Digest: RezbRECXVICAqBYUNklD8EwKwkc= + +Name: res/o/aqk.png +SHA1-Digest: GZ2D0pXorPU1kyYAIreCmyMWMgo= + +Name: res/o/aql.png +SHA1-Digest: s7SLeSzaB1WPklYk7YIiZRJClGw= + +Name: res/o/aqm.png +SHA1-Digest: ShGuRWIglA6oDrFPt9Z3bYWCB8k= + +Name: res/o/aqn.png +SHA1-Digest: n4pWkk/6CTBrEoQDy8BvXbpsrJA= + +Name: res/o/aqo.png +SHA1-Digest: XZxQ9zLFUI2Ak0+/AGKSRuG0C8c= + +Name: res/o/aqp.png +SHA1-Digest: Jt1djluo/EX/YEYISDPycal2l/E= + +Name: res/o/aqq.png +SHA1-Digest: VRDYZWCEA9QM9jXubGWg0CaFgPQ= + +Name: res/o/aqr.png +SHA1-Digest: PEnHNRVsge33krwY3/R+Y/I+1eA= + +Name: res/o/aqs.png +SHA1-Digest: l+pX4GhEkCbRkxT5qdqiiyZ81DA= + +Name: res/o/aqt.png +SHA1-Digest: Y9Uk96yaaTzCq5Rdzy2T2ruAomI= + +Name: res/o/aqu.png +SHA1-Digest: PHGULaoD5WLFGMjMJP7u2r6ooYw= + +Name: res/o/aqv.png +SHA1-Digest: QjUiPNIOlcd2iM7pVe//JC1RKaQ= + +Name: res/o/aqw.png +SHA1-Digest: i9I6n8KbjaNNtptu1w7s9XmSOPc= + +Name: res/o/aqx.png +SHA1-Digest: Ya6FjeCGPUGY/SvfkpxFbGsrCgQ= + +Name: res/o/aqy.png +SHA1-Digest: L83K2+ydvcd/EwEhnzuBDlLIgvg= + +Name: res/o/aqz.png +SHA1-Digest: IQq/RV4/4nNRjJ/Kc8ndy1AcK9I= + +Name: res/o/ar0.png +SHA1-Digest: HBGOpqZYx6wCvR9HN+2XxpaBlnA= + +Name: res/o/ar1.png +SHA1-Digest: bix/9ihZoDWlygmCgWoA4COmaCw= + +Name: res/o/ar2.png +SHA1-Digest: M7EfONmsWmlejHor7uae7qbwCE0= + +Name: res/o/ar3.png +SHA1-Digest: sF4lwboWhutLoAOKNYyYt80J+TQ= + +Name: res/o/ar4.png +SHA1-Digest: L1VMK73UNwZLBDL3TqV2imEmjHA= + +Name: res/o/arl.png +SHA1-Digest: eE67iStNMB2DjxwhpHE7aQhUGlY= + +Name: res/o/at_.9.png +SHA1-Digest: /gWKnJjldbELJEV2yZGZ99e4O/I= + +Name: res/o/avc.webp +SHA1-Digest: Z8vo2YtDC9h/ItO7XWRHHlOUYtk= + +Name: res/o/awd.webp +SHA1-Digest: dDSP8CTww7wbbkvr9YUvE4Fi5cg= + +Name: res/o/ax6.webp +SHA1-Digest: p6eFkm8StWxVjVH0G+tL1/4mW8I= + +Name: res/o/axz.png +SHA1-Digest: ZjoNfwYFY/w1heN9+GIDC4AUjSI= + +Name: res/o/ayu.png +SHA1-Digest: +C8emvrJQc2lEmggJpwMDmuu6Xk= + +Name: res/o/az2.webp +SHA1-Digest: G4YZE+tb1NnfeS3s8kAjhvVjeXs= + +Name: res/o/aze.webp +SHA1-Digest: fopOlGqOVYXkOev/vs3iDqiT1Ng= + +Name: res/o/b3l.png +SHA1-Digest: QV3z6RIXWQbYNCfuOO7e8zhOUvo= + +Name: res/o/b49.png +SHA1-Digest: QjDYArbzSKQNNwdm9bauUK1RX7c= + +Name: res/o/b4e.xml +SHA1-Digest: FUO6Xsa3/0KfdpuSipkaw+Pihnc= + +Name: res/o/b54.webp +SHA1-Digest: tHfkoekTqaIM6YEsYRm+WSWNFZ8= + +Name: res/o/b57.png +SHA1-Digest: RFU8ebcpWdq1WfG1+5m0rjD3S0w= + +Name: res/o/b62.9.png +SHA1-Digest: 0zSXEbxdkrl4IzBeSo08yhsQDeQ= + +Name: res/o/b73.webp +SHA1-Digest: KiNr+YNvgdW/4rZerSLk4GwY2LI= + +Name: res/o/b9u.webp +SHA1-Digest: cznZF/5lSkycJMXt4bxGI1Vk2UE= + +Name: res/o/bbe.png +SHA1-Digest: C0WrWl/OU3xn+MGpmo5ZzRAjD3c= + +Name: res/o/bby.png +SHA1-Digest: WgHLGtq0RAWMyZa/t6IWcyg24qs= + +Name: res/o/bcg.png +SHA1-Digest: FClZ7iHnSWnSUmiHfKTGj+qsVUg= + +Name: res/o/bfl.webp +SHA1-Digest: 49zrxRzY7n4kNw9b2XFnlIgZur0= + +Name: res/o/bg4.webp +SHA1-Digest: Lp4lJvhMAVK78xDmrkrZCzYwV70= + +Name: res/o/bhu.xml +SHA1-Digest: kpRmDvpEaAVAHwo2n9DfIqiYqvA= + +Name: res/o/bl4.webp +SHA1-Digest: SRZOeW/CBsVsdedB7T9f7XAxGrw= + +Name: res/o/bmz.webp +SHA1-Digest: Gz2RNrU3uUDaQIVtS1C4Q40w1bw= + +Name: res/o/bnr.webp +SHA1-Digest: TlVyi0rWXPkPCCmFLTHLP4CxN/U= + +Name: res/o/bns.webp +SHA1-Digest: QTMqOPHeUPN2v9QS8MWIE3VootU= + +Name: res/o/h.9.png +SHA1-Digest: s67XyJ58V/nJ3gadGH+Bc7MppnU= + +Name: res/o/hx.webp +SHA1-Digest: yZKC/LXcVYjKO40kcdUpZSHI+h4= + +Name: res/o/i.png +SHA1-Digest: Ouio2uWvH7XLWYfqzUwzwmjm/jM= + +Name: res/o/s.9.png +SHA1-Digest: tC6uw2w2e+vYOuhd45mTIYRtoKE= + +Name: res/o/t.9.png +SHA1-Digest: FsvLP65iWVfEfIkCPXw4wimwY7M= + +Name: res/o/u.9.png +SHA1-Digest: VJa6PrhxyIRS2huzDuIN1KH+I2c= + +Name: res/o/v.9.png +SHA1-Digest: Q9A39Gubbfmvh6wgqcLHzLWlGtU= + +Name: res/o/w.9.png +SHA1-Digest: Vwg9DnRYcLothTH8G1XotfneeGk= + +Name: res/o/x.9.png +SHA1-Digest: DA+8uKYp0oG7fqW8KlROM93mcqQ= + +Name: res/o/y.9.png +SHA1-Digest: A1pVRBaT2gk9lZQdi5aYDVOgrzY= + +Name: res/o/z.9.png +SHA1-Digest: kjQh/adr8XS+S465gr9pzFibMnM= + +Name: res/p/a5a.xml +SHA1-Digest: ibpcTVWRS6JgToproDmymwYjiyY= + +Name: res/p/aey.xml +SHA1-Digest: V/XXKo9XalmWmCdhd8CKlNCvc6E= + +Name: res/p/ani.png +SHA1-Digest: te3dCiqKdKH7CdgWsQV5BLPiLac= + +Name: res/q/a.webp +SHA1-Digest: y9gMcN1WoQW7uOJNfbJ0hJTnckQ= + +Name: res/q/aa.webp +SHA1-Digest: jRV+BKkAMyjpEX8V909ykyAo3HY= + +Name: res/q/ae.png +SHA1-Digest: 4KW581DgmCFwqrb0B2C1GthbM5c= + +Name: res/q/af.png +SHA1-Digest: cq9sJ0CjS+BSlj0PfsgwP2fqmWc= + +Name: res/q/ah.webp +SHA1-Digest: u8xu5LPchIbs1A7ZpTs3cxY8OOU= + +Name: res/q/ai.webp +SHA1-Digest: xrevRBn7FfIEQn9ga8w1/kqW6yg= + +Name: res/q/aj.webp +SHA1-Digest: XDu0R5wWIyCr48mQiEbumI/c4Ss= + +Name: res/q/at.webp +SHA1-Digest: 1+QcyOo1X1aNUGGWlZ5NTerbxSM= + +Name: res/q/av.webp +SHA1-Digest: Cx19L96lrxxapy/QJ9Pdt5AJS8E= + +Name: res/q/az.webp +SHA1-Digest: 6qMevM5NW3A3PXHyCdQ5z/0S8QQ= + +Name: res/q/b.webp +SHA1-Digest: c4BtbCJcQKbddeB+oEBc6+tG/6c= + +Name: res/q/b1.webp +SHA1-Digest: /CsEwnU8LySU6rjoAv6w50CcT1I= + +Name: res/q/b5.png +SHA1-Digest: SpAMHIJm5XO0J2RloqcauXt9aiM= + +Name: res/q/b6.webp +SHA1-Digest: avD+VlcYU7S0+4D5odDhc/GRQbQ= + +Name: res/q/b7.png +SHA1-Digest: ++0JraYcPG1W6gax2v1T4h5rv9E= + +Name: res/q/b8.webp +SHA1-Digest: zSeb3PR3SUc9nRPHEtpYs7PlTRE= + +Name: res/q/b9.png +SHA1-Digest: qWXipMgBtTP1OvzAcwKVBL58JcA= + +Name: res/q/b_.png +SHA1-Digest: goxOqApFWDjSlcueZaQmSCez9dk= + +Name: res/q/ba.webp +SHA1-Digest: 8fVCTCL9tGq8dZA/mlAHnsG92G0= + +Name: res/q/bb.webp +SHA1-Digest: N2t9BzOvtW47/HA61Xd236Es3I0= + +Name: res/q/bc.9.png +SHA1-Digest: izSCm2vxLnwK74Fy0HK9pIU44nQ= + +Name: res/q/bd.webp +SHA1-Digest: 8qXVI3sTQjESf4Ahow3dc4SVaNA= + +Name: res/q/be.webp +SHA1-Digest: j9N2f7XkoRfvbnndUSDEIpeEy40= + +Name: res/q/bg.webp +SHA1-Digest: s1AE5YY3p+tq8EDIo/I06J67MlY= + +Name: res/q/bh.png +SHA1-Digest: uwiP3ApwLduQ11Jf4UyIGf8WaSw= + +Name: res/q/bi.png +SHA1-Digest: ilIk+HH5RJA1NmWw304j0m+D0FI= + +Name: res/q/bk.webp +SHA1-Digest: WiXqblgc9jDGoSTJh8a4y32QLTY= + +Name: res/q/bl.webp +SHA1-Digest: tiySU+HD6EyODHEFka2DNklPHDg= + +Name: res/q/bm.webp +SHA1-Digest: Htr8+gRYyOo9dQQg59EvPNZibUc= + +Name: res/q/bp.webp +SHA1-Digest: I0AsvPXekNg3iisnh6GMY/u5MlE= + +Name: res/q/bq.png +SHA1-Digest: pclH/TmQJtcsQJANabEfCF01Pzw= + +Name: res/q/br.png +SHA1-Digest: ezFvBGht4wGcsKk99pu1wD8H9uc= + +Name: res/q/bs.png +SHA1-Digest: wC2Qzv1o/YZSWd/eNdwJnkNVtSI= + +Name: res/q/bt.webp +SHA1-Digest: GTfcqzrtXovNqBe+3RxIkvDDSTQ= + +Name: res/q/bu.png +SHA1-Digest: eYYkTF60h0SnNRjtXLxOqGYRK60= + +Name: res/q/bv.webp +SHA1-Digest: sO/p4HQAoV8TNNt0s7+WjmM3eWQ= + +Name: res/q/e.9.png +SHA1-Digest: sOzFy8p0z5aqGsrWEATtwLsgEH0= + +Name: res/q/f.9.png +SHA1-Digest: 02nBcK0ou91ukynkxGLtaBHy3KA= + +Name: res/q/g.webp +SHA1-Digest: LdRDgyLjYmCwNxh+UQpAYBhO6YY= + +Name: res/q/h.webp +SHA1-Digest: 8OrceAHPFX2qHxUkvE4nfhQDO8o= + +Name: res/q/i.webp +SHA1-Digest: +7JlSDzLh/V2fMMVtvvpSJjAHmU= + +Name: res/q/j.png +SHA1-Digest: 1/FXt00E0Mr8GUWNIDQCnUx9Qzc= + +Name: res/q/l.webp +SHA1-Digest: z1n0mHRRgex3LzQVckXMwB/nwVA= + +Name: res/q/m.webp +SHA1-Digest: 8zIRERfpUpRZgihxw6771bYbcs0= + +Name: res/q/n.webp +SHA1-Digest: QC/KC9nxpcSA5nrJOtrLG7Jz8tA= + +Name: res/q/o.webp +SHA1-Digest: 2pOgX/ZtLlFjZ7vHuc8LZYoEKIk= + +Name: res/q/p.webp +SHA1-Digest: cgG/tEY1/dK4DXZqQcu1CHK7bn8= + +Name: res/q/q.webp +SHA1-Digest: dtfkxIVa81u3jxs2YJewxFhHdcM= + +Name: res/q/r.9.png +SHA1-Digest: ZYJ1BoJIcaecjErjG6bFDuhhj2Q= + +Name: res/q/s.9.png +SHA1-Digest: TFw374/s4XaJ6tO6+xKfPns7uwA= + +Name: res/q/t.9.png +SHA1-Digest: /irrV5qi5QeT+gQcCsR8hXIg+Xk= + +Name: res/q/u.png +SHA1-Digest: FavPjuk6olEZey6sIq7rywmBBwY= + +Name: res/q/v.png +SHA1-Digest: sbqUAnAP9Ic0aSxtt345LLubAZ0= + +Name: res/q/w.png +SHA1-Digest: 1cl/IsP/z8hq0fSoUb3Z29rLRVM= + +Name: res/q/x.png +SHA1-Digest: svcMy3RUKynkEHwirQYPCICt1tI= + +Name: res/x/a.webp +SHA1-Digest: zTsKoMJ1pf0U+0KtOeYp2j8WdMA= + +Name: res/x/b.webp +SHA1-Digest: H/mpTU2cquxSJ6MMlGiAZmMqDCY= + +Name: res/x/c.9.png +SHA1-Digest: fi4OdS/Tb40gOJmL0+YFTyqMxb4= + +Name: resources.arsc +SHA1-Digest: FJbqo16oyXrpLzauhF95Eaa9BKM= + diff --git a/config.xxxhdpi/res/a2/a.webp b/config.xxxhdpi/res/a2/a.webp new file mode 100644 index 0000000..c304f3c Binary files /dev/null and b/config.xxxhdpi/res/a2/a.webp differ diff --git a/config.xxxhdpi/res/a2/b.webp b/config.xxxhdpi/res/a2/b.webp new file mode 100644 index 0000000..b816afc Binary files /dev/null and b/config.xxxhdpi/res/a2/b.webp differ diff --git a/config.xxxhdpi/res/a4/d.xml b/config.xxxhdpi/res/a4/d.xml new file mode 100644 index 0000000..9ff380f Binary files /dev/null and b/config.xxxhdpi/res/a4/d.xml differ diff --git a/config.xxxhdpi/res/ak/b.webp b/config.xxxhdpi/res/ak/b.webp new file mode 100644 index 0000000..e69de29 diff --git a/config.xxxhdpi/res/av/a.xml b/config.xxxhdpi/res/av/a.xml new file mode 100644 index 0000000..661cad0 Binary files /dev/null and b/config.xxxhdpi/res/av/a.xml differ diff --git a/config.xxxhdpi/res/l/b7.9.png b/config.xxxhdpi/res/l/b7.9.png new file mode 100644 index 0000000..8281aa0 Binary files /dev/null and b/config.xxxhdpi/res/l/b7.9.png differ diff --git a/config.xxxhdpi/res/l/cm.png b/config.xxxhdpi/res/l/cm.png new file mode 100644 index 0000000..88a54a7 Binary files /dev/null and b/config.xxxhdpi/res/l/cm.png differ diff --git a/config.xxxhdpi/res/m/cd.webp b/config.xxxhdpi/res/m/cd.webp new file mode 100644 index 0000000..373ac1e Binary files /dev/null and b/config.xxxhdpi/res/m/cd.webp differ diff --git a/config.xxxhdpi/res/m/d4.png b/config.xxxhdpi/res/m/d4.png new file mode 100644 index 0000000..9797392 Binary files /dev/null and b/config.xxxhdpi/res/m/d4.png differ diff --git a/config.xxxhdpi/res/n/b0.png b/config.xxxhdpi/res/n/b0.png new file mode 100644 index 0000000..3466887 Binary files /dev/null and b/config.xxxhdpi/res/n/b0.png differ diff --git a/config.xxxhdpi/res/n/b2.webp b/config.xxxhdpi/res/n/b2.webp new file mode 100644 index 0000000..533bebb Binary files /dev/null and b/config.xxxhdpi/res/n/b2.webp differ diff --git a/config.xxxhdpi/res/n/b3.9.png b/config.xxxhdpi/res/n/b3.9.png new file mode 100644 index 0000000..28dbb81 Binary files /dev/null and b/config.xxxhdpi/res/n/b3.9.png differ diff --git a/config.xxxhdpi/res/n/b4.webp b/config.xxxhdpi/res/n/b4.webp new file mode 100644 index 0000000..568210e Binary files /dev/null and b/config.xxxhdpi/res/n/b4.webp differ diff --git a/config.xxxhdpi/res/n/b5.webp b/config.xxxhdpi/res/n/b5.webp new file mode 100644 index 0000000..f39688e Binary files /dev/null and b/config.xxxhdpi/res/n/b5.webp differ diff --git a/config.xxxhdpi/res/n/b6.webp b/config.xxxhdpi/res/n/b6.webp new file mode 100644 index 0000000..5c25b4c Binary files /dev/null and b/config.xxxhdpi/res/n/b6.webp differ diff --git a/config.xxxhdpi/res/n/b7.9.png b/config.xxxhdpi/res/n/b7.9.png new file mode 100644 index 0000000..d65884e Binary files /dev/null and b/config.xxxhdpi/res/n/b7.9.png differ diff --git a/config.xxxhdpi/res/n/b8.webp b/config.xxxhdpi/res/n/b8.webp new file mode 100644 index 0000000..70f2fe1 Binary files /dev/null and b/config.xxxhdpi/res/n/b8.webp differ diff --git a/config.xxxhdpi/res/n/b9.webp b/config.xxxhdpi/res/n/b9.webp new file mode 100644 index 0000000..1084271 Binary files /dev/null and b/config.xxxhdpi/res/n/b9.webp differ diff --git a/config.xxxhdpi/res/n/ba.webp b/config.xxxhdpi/res/n/ba.webp new file mode 100644 index 0000000..d776487 Binary files /dev/null and b/config.xxxhdpi/res/n/ba.webp differ diff --git a/config.xxxhdpi/res/n/bf.9.png b/config.xxxhdpi/res/n/bf.9.png new file mode 100644 index 0000000..ea395a3 Binary files /dev/null and b/config.xxxhdpi/res/n/bf.9.png differ diff --git a/config.xxxhdpi/res/n/bg.webp b/config.xxxhdpi/res/n/bg.webp new file mode 100644 index 0000000..a13c5b4 Binary files /dev/null and b/config.xxxhdpi/res/n/bg.webp differ diff --git a/config.xxxhdpi/res/n/bh.webp b/config.xxxhdpi/res/n/bh.webp new file mode 100644 index 0000000..86ef3f8 Binary files /dev/null and b/config.xxxhdpi/res/n/bh.webp differ diff --git a/config.xxxhdpi/res/n/c2.webp b/config.xxxhdpi/res/n/c2.webp new file mode 100644 index 0000000..c2d339d Binary files /dev/null and b/config.xxxhdpi/res/n/c2.webp differ diff --git a/config.xxxhdpi/res/n/cf.webp b/config.xxxhdpi/res/n/cf.webp new file mode 100644 index 0000000..b13bb1b Binary files /dev/null and b/config.xxxhdpi/res/n/cf.webp differ diff --git a/config.xxxhdpi/res/n/cg.webp b/config.xxxhdpi/res/n/cg.webp new file mode 100644 index 0000000..632b2a7 Binary files /dev/null and b/config.xxxhdpi/res/n/cg.webp differ diff --git a/config.xxxhdpi/res/n/cl.webp b/config.xxxhdpi/res/n/cl.webp new file mode 100644 index 0000000..b830fb5 Binary files /dev/null and b/config.xxxhdpi/res/n/cl.webp differ diff --git a/config.xxxhdpi/res/n/cw.9.png b/config.xxxhdpi/res/n/cw.9.png new file mode 100644 index 0000000..4059330 Binary files /dev/null and b/config.xxxhdpi/res/n/cw.9.png differ diff --git a/config.xxxhdpi/res/n/cx.9.png b/config.xxxhdpi/res/n/cx.9.png new file mode 100644 index 0000000..1b14860 Binary files /dev/null and b/config.xxxhdpi/res/n/cx.9.png differ diff --git a/config.xxxhdpi/res/n/cy.9.png b/config.xxxhdpi/res/n/cy.9.png new file mode 100644 index 0000000..3da5de5 Binary files /dev/null and b/config.xxxhdpi/res/n/cy.9.png differ diff --git a/config.xxxhdpi/res/n/cz.9.png b/config.xxxhdpi/res/n/cz.9.png new file mode 100644 index 0000000..fb38611 Binary files /dev/null and b/config.xxxhdpi/res/n/cz.9.png differ diff --git a/config.xxxhdpi/res/n/d0.png b/config.xxxhdpi/res/n/d0.png new file mode 100644 index 0000000..9128e62 Binary files /dev/null and b/config.xxxhdpi/res/n/d0.png differ diff --git a/config.xxxhdpi/res/n/dr.9.png b/config.xxxhdpi/res/n/dr.9.png new file mode 100644 index 0000000..50bab3c Binary files /dev/null and b/config.xxxhdpi/res/n/dr.9.png differ diff --git a/config.xxxhdpi/res/n/fh.9.png b/config.xxxhdpi/res/n/fh.9.png new file mode 100644 index 0000000..0955a45 Binary files /dev/null and b/config.xxxhdpi/res/n/fh.9.png differ diff --git a/config.xxxhdpi/res/n/fr.png b/config.xxxhdpi/res/n/fr.png new file mode 100644 index 0000000..bbf51a7 Binary files /dev/null and b/config.xxxhdpi/res/n/fr.png differ diff --git a/config.xxxhdpi/res/n/fy.png b/config.xxxhdpi/res/n/fy.png new file mode 100644 index 0000000..f31ce4e Binary files /dev/null and b/config.xxxhdpi/res/n/fy.png differ diff --git a/config.xxxhdpi/res/n/gf.png b/config.xxxhdpi/res/n/gf.png new file mode 100644 index 0000000..794ce9a Binary files /dev/null and b/config.xxxhdpi/res/n/gf.png differ diff --git a/config.xxxhdpi/res/n/gk.webp b/config.xxxhdpi/res/n/gk.webp new file mode 100644 index 0000000..f4a1c8f Binary files /dev/null and b/config.xxxhdpi/res/n/gk.webp differ diff --git a/config.xxxhdpi/res/n/gt.webp b/config.xxxhdpi/res/n/gt.webp new file mode 100644 index 0000000..65d8dc1 Binary files /dev/null and b/config.xxxhdpi/res/n/gt.webp differ diff --git a/config.xxxhdpi/res/n/h2.webp b/config.xxxhdpi/res/n/h2.webp new file mode 100644 index 0000000..5b3f696 Binary files /dev/null and b/config.xxxhdpi/res/n/h2.webp differ diff --git a/config.xxxhdpi/res/n/h5.webp b/config.xxxhdpi/res/n/h5.webp new file mode 100644 index 0000000..1191931 Binary files /dev/null and b/config.xxxhdpi/res/n/h5.webp differ diff --git a/config.xxxhdpi/res/n/hb.webp b/config.xxxhdpi/res/n/hb.webp new file mode 100644 index 0000000..c33d163 Binary files /dev/null and b/config.xxxhdpi/res/n/hb.webp differ diff --git a/config.xxxhdpi/res/o/a.9.png b/config.xxxhdpi/res/o/a.9.png new file mode 100644 index 0000000..86625dc Binary files /dev/null and b/config.xxxhdpi/res/o/a.9.png differ diff --git a/config.xxxhdpi/res/o/a0.9.png b/config.xxxhdpi/res/o/a0.9.png new file mode 100644 index 0000000..b3c03ab Binary files /dev/null and b/config.xxxhdpi/res/o/a0.9.png differ diff --git a/config.xxxhdpi/res/o/a1.png b/config.xxxhdpi/res/o/a1.png new file mode 100644 index 0000000..4657815 Binary files /dev/null and b/config.xxxhdpi/res/o/a1.png differ diff --git a/config.xxxhdpi/res/o/a4.9.png b/config.xxxhdpi/res/o/a4.9.png new file mode 100644 index 0000000..d316b36 Binary files /dev/null and b/config.xxxhdpi/res/o/a4.9.png differ diff --git a/config.xxxhdpi/res/o/a5.9.png b/config.xxxhdpi/res/o/a5.9.png new file mode 100644 index 0000000..7d7285e Binary files /dev/null and b/config.xxxhdpi/res/o/a5.9.png differ diff --git a/config.xxxhdpi/res/o/aah.png b/config.xxxhdpi/res/o/aah.png new file mode 100644 index 0000000..93c5a6f Binary files /dev/null and b/config.xxxhdpi/res/o/aah.png differ diff --git a/config.xxxhdpi/res/o/aaj.png b/config.xxxhdpi/res/o/aaj.png new file mode 100644 index 0000000..a9c23b5 Binary files /dev/null and b/config.xxxhdpi/res/o/aaj.png differ diff --git a/config.xxxhdpi/res/o/aal.webp b/config.xxxhdpi/res/o/aal.webp new file mode 100644 index 0000000..2f0a2b3 Binary files /dev/null and b/config.xxxhdpi/res/o/aal.webp differ diff --git a/config.xxxhdpi/res/o/ado.png b/config.xxxhdpi/res/o/ado.png new file mode 100644 index 0000000..e308c88 Binary files /dev/null and b/config.xxxhdpi/res/o/ado.png differ diff --git a/config.xxxhdpi/res/o/ae.9.png b/config.xxxhdpi/res/o/ae.9.png new file mode 100644 index 0000000..7690626 Binary files /dev/null and b/config.xxxhdpi/res/o/ae.9.png differ diff --git a/config.xxxhdpi/res/o/af.9.png b/config.xxxhdpi/res/o/af.9.png new file mode 100644 index 0000000..b46e520 Binary files /dev/null and b/config.xxxhdpi/res/o/af.9.png differ diff --git a/config.xxxhdpi/res/o/ag.9.png b/config.xxxhdpi/res/o/ag.9.png new file mode 100644 index 0000000..8cf1baa Binary files /dev/null and b/config.xxxhdpi/res/o/ag.9.png differ diff --git a/config.xxxhdpi/res/o/ah.9.png b/config.xxxhdpi/res/o/ah.9.png new file mode 100644 index 0000000..8ec8fe3 Binary files /dev/null and b/config.xxxhdpi/res/o/ah.9.png differ diff --git a/config.xxxhdpi/res/o/apu.webp b/config.xxxhdpi/res/o/apu.webp new file mode 100644 index 0000000..661ab91 Binary files /dev/null and b/config.xxxhdpi/res/o/apu.webp differ diff --git a/config.xxxhdpi/res/o/apv.webp b/config.xxxhdpi/res/o/apv.webp new file mode 100644 index 0000000..2d2297d Binary files /dev/null and b/config.xxxhdpi/res/o/apv.webp differ diff --git a/config.xxxhdpi/res/o/apw.webp b/config.xxxhdpi/res/o/apw.webp new file mode 100644 index 0000000..8e9de8a Binary files /dev/null and b/config.xxxhdpi/res/o/apw.webp differ diff --git a/config.xxxhdpi/res/o/apx.webp b/config.xxxhdpi/res/o/apx.webp new file mode 100644 index 0000000..b5f062f Binary files /dev/null and b/config.xxxhdpi/res/o/apx.webp differ diff --git a/config.xxxhdpi/res/o/apy.webp b/config.xxxhdpi/res/o/apy.webp new file mode 100644 index 0000000..169751a Binary files /dev/null and b/config.xxxhdpi/res/o/apy.webp differ diff --git a/config.xxxhdpi/res/o/apz.webp b/config.xxxhdpi/res/o/apz.webp new file mode 100644 index 0000000..66a86ca Binary files /dev/null and b/config.xxxhdpi/res/o/apz.webp differ diff --git a/config.xxxhdpi/res/o/aq0.9.png b/config.xxxhdpi/res/o/aq0.9.png new file mode 100644 index 0000000..d08d16c Binary files /dev/null and b/config.xxxhdpi/res/o/aq0.9.png differ diff --git a/config.xxxhdpi/res/o/aq1.9.png b/config.xxxhdpi/res/o/aq1.9.png new file mode 100644 index 0000000..9f5358b Binary files /dev/null and b/config.xxxhdpi/res/o/aq1.9.png differ diff --git a/config.xxxhdpi/res/o/aq2.9.png b/config.xxxhdpi/res/o/aq2.9.png new file mode 100644 index 0000000..4fe94f0 Binary files /dev/null and b/config.xxxhdpi/res/o/aq2.9.png differ diff --git a/config.xxxhdpi/res/o/aq3.webp b/config.xxxhdpi/res/o/aq3.webp new file mode 100644 index 0000000..9602af9 Binary files /dev/null and b/config.xxxhdpi/res/o/aq3.webp differ diff --git a/config.xxxhdpi/res/o/aq4.webp b/config.xxxhdpi/res/o/aq4.webp new file mode 100644 index 0000000..4215ef1 Binary files /dev/null and b/config.xxxhdpi/res/o/aq4.webp differ diff --git a/config.xxxhdpi/res/o/aq5.webp b/config.xxxhdpi/res/o/aq5.webp new file mode 100644 index 0000000..86360e8 Binary files /dev/null and b/config.xxxhdpi/res/o/aq5.webp differ diff --git a/config.xxxhdpi/res/o/aq6.webp b/config.xxxhdpi/res/o/aq6.webp new file mode 100644 index 0000000..b4b95eb Binary files /dev/null and b/config.xxxhdpi/res/o/aq6.webp differ diff --git a/config.xxxhdpi/res/o/aq7.webp b/config.xxxhdpi/res/o/aq7.webp new file mode 100644 index 0000000..0a46084 Binary files /dev/null and b/config.xxxhdpi/res/o/aq7.webp differ diff --git a/config.xxxhdpi/res/o/aq8.webp b/config.xxxhdpi/res/o/aq8.webp new file mode 100644 index 0000000..0b6530a Binary files /dev/null and b/config.xxxhdpi/res/o/aq8.webp differ diff --git a/config.xxxhdpi/res/o/aq9.webp b/config.xxxhdpi/res/o/aq9.webp new file mode 100644 index 0000000..20f50b0 Binary files /dev/null and b/config.xxxhdpi/res/o/aq9.webp differ diff --git a/config.xxxhdpi/res/o/aq_.webp b/config.xxxhdpi/res/o/aq_.webp new file mode 100644 index 0000000..c9ddee1 Binary files /dev/null and b/config.xxxhdpi/res/o/aq_.webp differ diff --git a/config.xxxhdpi/res/o/aqh.png b/config.xxxhdpi/res/o/aqh.png new file mode 100644 index 0000000..e018c48 Binary files /dev/null and b/config.xxxhdpi/res/o/aqh.png differ diff --git a/config.xxxhdpi/res/o/aqi.png b/config.xxxhdpi/res/o/aqi.png new file mode 100644 index 0000000..8473ac8 Binary files /dev/null and b/config.xxxhdpi/res/o/aqi.png differ diff --git a/config.xxxhdpi/res/o/aqj.png b/config.xxxhdpi/res/o/aqj.png new file mode 100644 index 0000000..c3eb121 Binary files /dev/null and b/config.xxxhdpi/res/o/aqj.png differ diff --git a/config.xxxhdpi/res/o/aqk.png b/config.xxxhdpi/res/o/aqk.png new file mode 100644 index 0000000..4eb9365 Binary files /dev/null and b/config.xxxhdpi/res/o/aqk.png differ diff --git a/config.xxxhdpi/res/o/aql.png b/config.xxxhdpi/res/o/aql.png new file mode 100644 index 0000000..781bc01 Binary files /dev/null and b/config.xxxhdpi/res/o/aql.png differ diff --git a/config.xxxhdpi/res/o/aqm.png b/config.xxxhdpi/res/o/aqm.png new file mode 100644 index 0000000..589f09d Binary files /dev/null and b/config.xxxhdpi/res/o/aqm.png differ diff --git a/config.xxxhdpi/res/o/aqn.png b/config.xxxhdpi/res/o/aqn.png new file mode 100644 index 0000000..65ca630 Binary files /dev/null and b/config.xxxhdpi/res/o/aqn.png differ diff --git a/config.xxxhdpi/res/o/aqo.png b/config.xxxhdpi/res/o/aqo.png new file mode 100644 index 0000000..0579d2b Binary files /dev/null and b/config.xxxhdpi/res/o/aqo.png differ diff --git a/config.xxxhdpi/res/o/aqp.png b/config.xxxhdpi/res/o/aqp.png new file mode 100644 index 0000000..ae5848c Binary files /dev/null and b/config.xxxhdpi/res/o/aqp.png differ diff --git a/config.xxxhdpi/res/o/aqq.png b/config.xxxhdpi/res/o/aqq.png new file mode 100644 index 0000000..7b10e9c Binary files /dev/null and b/config.xxxhdpi/res/o/aqq.png differ diff --git a/config.xxxhdpi/res/o/aqr.png b/config.xxxhdpi/res/o/aqr.png new file mode 100644 index 0000000..099d569 Binary files /dev/null and b/config.xxxhdpi/res/o/aqr.png differ diff --git a/config.xxxhdpi/res/o/aqs.png b/config.xxxhdpi/res/o/aqs.png new file mode 100644 index 0000000..c5b2296 Binary files /dev/null and b/config.xxxhdpi/res/o/aqs.png differ diff --git a/config.xxxhdpi/res/o/aqt.png b/config.xxxhdpi/res/o/aqt.png new file mode 100644 index 0000000..126a071 Binary files /dev/null and b/config.xxxhdpi/res/o/aqt.png differ diff --git a/config.xxxhdpi/res/o/aqu.png b/config.xxxhdpi/res/o/aqu.png new file mode 100644 index 0000000..dc0afdd Binary files /dev/null and b/config.xxxhdpi/res/o/aqu.png differ diff --git a/config.xxxhdpi/res/o/aqv.png b/config.xxxhdpi/res/o/aqv.png new file mode 100644 index 0000000..e45cfe4 Binary files /dev/null and b/config.xxxhdpi/res/o/aqv.png differ diff --git a/config.xxxhdpi/res/o/aqw.png b/config.xxxhdpi/res/o/aqw.png new file mode 100644 index 0000000..d0e2eb9 Binary files /dev/null and b/config.xxxhdpi/res/o/aqw.png differ diff --git a/config.xxxhdpi/res/o/aqx.png b/config.xxxhdpi/res/o/aqx.png new file mode 100644 index 0000000..cf72519 Binary files /dev/null and b/config.xxxhdpi/res/o/aqx.png differ diff --git a/config.xxxhdpi/res/o/aqy.png b/config.xxxhdpi/res/o/aqy.png new file mode 100644 index 0000000..95c8c6d Binary files /dev/null and b/config.xxxhdpi/res/o/aqy.png differ diff --git a/config.xxxhdpi/res/o/aqz.png b/config.xxxhdpi/res/o/aqz.png new file mode 100644 index 0000000..64382ab Binary files /dev/null and b/config.xxxhdpi/res/o/aqz.png differ diff --git a/config.xxxhdpi/res/o/ar0.png b/config.xxxhdpi/res/o/ar0.png new file mode 100644 index 0000000..28c56f3 Binary files /dev/null and b/config.xxxhdpi/res/o/ar0.png differ diff --git a/config.xxxhdpi/res/o/ar1.png b/config.xxxhdpi/res/o/ar1.png new file mode 100644 index 0000000..939bebf Binary files /dev/null and b/config.xxxhdpi/res/o/ar1.png differ diff --git a/config.xxxhdpi/res/o/ar2.png b/config.xxxhdpi/res/o/ar2.png new file mode 100644 index 0000000..f85cd61 Binary files /dev/null and b/config.xxxhdpi/res/o/ar2.png differ diff --git a/config.xxxhdpi/res/o/ar3.png b/config.xxxhdpi/res/o/ar3.png new file mode 100644 index 0000000..843c9e8 Binary files /dev/null and b/config.xxxhdpi/res/o/ar3.png differ diff --git a/config.xxxhdpi/res/o/ar4.png b/config.xxxhdpi/res/o/ar4.png new file mode 100644 index 0000000..049a2a9 Binary files /dev/null and b/config.xxxhdpi/res/o/ar4.png differ diff --git a/config.xxxhdpi/res/o/arl.png b/config.xxxhdpi/res/o/arl.png new file mode 100644 index 0000000..05f8202 Binary files /dev/null and b/config.xxxhdpi/res/o/arl.png differ diff --git a/config.xxxhdpi/res/o/at_.9.png b/config.xxxhdpi/res/o/at_.9.png new file mode 100644 index 0000000..8e26a94 Binary files /dev/null and b/config.xxxhdpi/res/o/at_.9.png differ diff --git a/config.xxxhdpi/res/o/avc.webp b/config.xxxhdpi/res/o/avc.webp new file mode 100644 index 0000000..fefef93 Binary files /dev/null and b/config.xxxhdpi/res/o/avc.webp differ diff --git a/config.xxxhdpi/res/o/awd.webp b/config.xxxhdpi/res/o/awd.webp new file mode 100644 index 0000000..d9ecb87 Binary files /dev/null and b/config.xxxhdpi/res/o/awd.webp differ diff --git a/config.xxxhdpi/res/o/ax6.webp b/config.xxxhdpi/res/o/ax6.webp new file mode 100644 index 0000000..b89ab4f Binary files /dev/null and b/config.xxxhdpi/res/o/ax6.webp differ diff --git a/config.xxxhdpi/res/o/axz.png b/config.xxxhdpi/res/o/axz.png new file mode 100644 index 0000000..de00185 Binary files /dev/null and b/config.xxxhdpi/res/o/axz.png differ diff --git a/config.xxxhdpi/res/o/ayu.png b/config.xxxhdpi/res/o/ayu.png new file mode 100644 index 0000000..ae53f06 Binary files /dev/null and b/config.xxxhdpi/res/o/ayu.png differ diff --git a/config.xxxhdpi/res/o/az2.webp b/config.xxxhdpi/res/o/az2.webp new file mode 100644 index 0000000..284ccb4 Binary files /dev/null and b/config.xxxhdpi/res/o/az2.webp differ diff --git a/config.xxxhdpi/res/o/aze.webp b/config.xxxhdpi/res/o/aze.webp new file mode 100644 index 0000000..1165814 Binary files /dev/null and b/config.xxxhdpi/res/o/aze.webp differ diff --git a/config.xxxhdpi/res/o/b3l.png b/config.xxxhdpi/res/o/b3l.png new file mode 100644 index 0000000..08f6f4f Binary files /dev/null and b/config.xxxhdpi/res/o/b3l.png differ diff --git a/config.xxxhdpi/res/o/b49.png b/config.xxxhdpi/res/o/b49.png new file mode 100644 index 0000000..2ac4683 Binary files /dev/null and b/config.xxxhdpi/res/o/b49.png differ diff --git a/config.xxxhdpi/res/o/b4e.xml b/config.xxxhdpi/res/o/b4e.xml new file mode 100644 index 0000000..0a65ba4 Binary files /dev/null and b/config.xxxhdpi/res/o/b4e.xml differ diff --git a/config.xxxhdpi/res/o/b54.webp b/config.xxxhdpi/res/o/b54.webp new file mode 100644 index 0000000..500d4c3 Binary files /dev/null and b/config.xxxhdpi/res/o/b54.webp differ diff --git a/config.xxxhdpi/res/o/b57.png b/config.xxxhdpi/res/o/b57.png new file mode 100644 index 0000000..d71dbd1 Binary files /dev/null and b/config.xxxhdpi/res/o/b57.png differ diff --git a/config.xxxhdpi/res/o/b62.9.png b/config.xxxhdpi/res/o/b62.9.png new file mode 100644 index 0000000..c527275 Binary files /dev/null and b/config.xxxhdpi/res/o/b62.9.png differ diff --git a/config.xxxhdpi/res/o/b73.webp b/config.xxxhdpi/res/o/b73.webp new file mode 100644 index 0000000..de226e1 Binary files /dev/null and b/config.xxxhdpi/res/o/b73.webp differ diff --git a/config.xxxhdpi/res/o/b9u.webp b/config.xxxhdpi/res/o/b9u.webp new file mode 100644 index 0000000..7d87d0d Binary files /dev/null and b/config.xxxhdpi/res/o/b9u.webp differ diff --git a/config.xxxhdpi/res/o/bbe.png b/config.xxxhdpi/res/o/bbe.png new file mode 100644 index 0000000..7180963 Binary files /dev/null and b/config.xxxhdpi/res/o/bbe.png differ diff --git a/config.xxxhdpi/res/o/bby.png b/config.xxxhdpi/res/o/bby.png new file mode 100644 index 0000000..76b3da3 Binary files /dev/null and b/config.xxxhdpi/res/o/bby.png differ diff --git a/config.xxxhdpi/res/o/bcg.png b/config.xxxhdpi/res/o/bcg.png new file mode 100644 index 0000000..34423ab Binary files /dev/null and b/config.xxxhdpi/res/o/bcg.png differ diff --git a/config.xxxhdpi/res/o/bfl.webp b/config.xxxhdpi/res/o/bfl.webp new file mode 100644 index 0000000..44ffdaa Binary files /dev/null and b/config.xxxhdpi/res/o/bfl.webp differ diff --git a/config.xxxhdpi/res/o/bg4.webp b/config.xxxhdpi/res/o/bg4.webp new file mode 100644 index 0000000..2c1d985 Binary files /dev/null and b/config.xxxhdpi/res/o/bg4.webp differ diff --git a/config.xxxhdpi/res/o/bhu.xml b/config.xxxhdpi/res/o/bhu.xml new file mode 100644 index 0000000..e5e6b2a Binary files /dev/null and b/config.xxxhdpi/res/o/bhu.xml differ diff --git a/config.xxxhdpi/res/o/bl4.webp b/config.xxxhdpi/res/o/bl4.webp new file mode 100644 index 0000000..36a3b1c Binary files /dev/null and b/config.xxxhdpi/res/o/bl4.webp differ diff --git a/config.xxxhdpi/res/o/bmz.webp b/config.xxxhdpi/res/o/bmz.webp new file mode 100644 index 0000000..e43a316 Binary files /dev/null and b/config.xxxhdpi/res/o/bmz.webp differ diff --git a/config.xxxhdpi/res/o/bnr.webp b/config.xxxhdpi/res/o/bnr.webp new file mode 100644 index 0000000..93b0720 Binary files /dev/null and b/config.xxxhdpi/res/o/bnr.webp differ diff --git a/config.xxxhdpi/res/o/bns.webp b/config.xxxhdpi/res/o/bns.webp new file mode 100644 index 0000000..7b6388a Binary files /dev/null and b/config.xxxhdpi/res/o/bns.webp differ diff --git a/config.xxxhdpi/res/o/h.9.png b/config.xxxhdpi/res/o/h.9.png new file mode 100644 index 0000000..cee26b6 Binary files /dev/null and b/config.xxxhdpi/res/o/h.9.png differ diff --git a/config.xxxhdpi/res/o/hx.webp b/config.xxxhdpi/res/o/hx.webp new file mode 100644 index 0000000..ffcacc1 Binary files /dev/null and b/config.xxxhdpi/res/o/hx.webp differ diff --git a/config.xxxhdpi/res/o/i.png b/config.xxxhdpi/res/o/i.png new file mode 100644 index 0000000..fe826b7 Binary files /dev/null and b/config.xxxhdpi/res/o/i.png differ diff --git a/config.xxxhdpi/res/o/s.9.png b/config.xxxhdpi/res/o/s.9.png new file mode 100644 index 0000000..8d47402 Binary files /dev/null and b/config.xxxhdpi/res/o/s.9.png differ diff --git a/config.xxxhdpi/res/o/t.9.png b/config.xxxhdpi/res/o/t.9.png new file mode 100644 index 0000000..195b9b4 Binary files /dev/null and b/config.xxxhdpi/res/o/t.9.png differ diff --git a/config.xxxhdpi/res/o/u.9.png b/config.xxxhdpi/res/o/u.9.png new file mode 100644 index 0000000..83e741b Binary files /dev/null and b/config.xxxhdpi/res/o/u.9.png differ diff --git a/config.xxxhdpi/res/o/v.9.png b/config.xxxhdpi/res/o/v.9.png new file mode 100644 index 0000000..bfb2170 Binary files /dev/null and b/config.xxxhdpi/res/o/v.9.png differ diff --git a/config.xxxhdpi/res/o/w.9.png b/config.xxxhdpi/res/o/w.9.png new file mode 100644 index 0000000..0769a38 Binary files /dev/null and b/config.xxxhdpi/res/o/w.9.png differ diff --git a/config.xxxhdpi/res/o/x.9.png b/config.xxxhdpi/res/o/x.9.png new file mode 100644 index 0000000..58f9e77 Binary files /dev/null and b/config.xxxhdpi/res/o/x.9.png differ diff --git a/config.xxxhdpi/res/o/y.9.png b/config.xxxhdpi/res/o/y.9.png new file mode 100644 index 0000000..86c0117 Binary files /dev/null and b/config.xxxhdpi/res/o/y.9.png differ diff --git a/config.xxxhdpi/res/o/z.9.png b/config.xxxhdpi/res/o/z.9.png new file mode 100644 index 0000000..650b490 Binary files /dev/null and b/config.xxxhdpi/res/o/z.9.png differ diff --git a/config.xxxhdpi/res/p/a5a.xml b/config.xxxhdpi/res/p/a5a.xml new file mode 100644 index 0000000..bf2a665 Binary files /dev/null and b/config.xxxhdpi/res/p/a5a.xml differ diff --git a/config.xxxhdpi/res/p/aey.xml b/config.xxxhdpi/res/p/aey.xml new file mode 100644 index 0000000..7f50b40 Binary files /dev/null and b/config.xxxhdpi/res/p/aey.xml differ diff --git a/config.xxxhdpi/res/p/ani.png b/config.xxxhdpi/res/p/ani.png new file mode 100644 index 0000000..e3452d1 Binary files /dev/null and b/config.xxxhdpi/res/p/ani.png differ diff --git a/config.xxxhdpi/res/q/a.webp b/config.xxxhdpi/res/q/a.webp new file mode 100644 index 0000000..2e956c7 Binary files /dev/null and b/config.xxxhdpi/res/q/a.webp differ diff --git a/config.xxxhdpi/res/q/aa.webp b/config.xxxhdpi/res/q/aa.webp new file mode 100644 index 0000000..d11bab2 Binary files /dev/null and b/config.xxxhdpi/res/q/aa.webp differ diff --git a/config.xxxhdpi/res/q/ae.png b/config.xxxhdpi/res/q/ae.png new file mode 100644 index 0000000..452e502 Binary files /dev/null and b/config.xxxhdpi/res/q/ae.png differ diff --git a/config.xxxhdpi/res/q/af.png b/config.xxxhdpi/res/q/af.png new file mode 100644 index 0000000..2c2ad77 Binary files /dev/null and b/config.xxxhdpi/res/q/af.png differ diff --git a/config.xxxhdpi/res/q/ah.webp b/config.xxxhdpi/res/q/ah.webp new file mode 100644 index 0000000..99a01e1 Binary files /dev/null and b/config.xxxhdpi/res/q/ah.webp differ diff --git a/config.xxxhdpi/res/q/ai.webp b/config.xxxhdpi/res/q/ai.webp new file mode 100644 index 0000000..6cc9953 Binary files /dev/null and b/config.xxxhdpi/res/q/ai.webp differ diff --git a/config.xxxhdpi/res/q/aj.webp b/config.xxxhdpi/res/q/aj.webp new file mode 100644 index 0000000..0712168 Binary files /dev/null and b/config.xxxhdpi/res/q/aj.webp differ diff --git a/config.xxxhdpi/res/q/at.webp b/config.xxxhdpi/res/q/at.webp new file mode 100644 index 0000000..0c2a377 Binary files /dev/null and b/config.xxxhdpi/res/q/at.webp differ diff --git a/config.xxxhdpi/res/q/av.webp b/config.xxxhdpi/res/q/av.webp new file mode 100644 index 0000000..750ffa0 Binary files /dev/null and b/config.xxxhdpi/res/q/av.webp differ diff --git a/config.xxxhdpi/res/q/az.webp b/config.xxxhdpi/res/q/az.webp new file mode 100644 index 0000000..a3ae9a5 Binary files /dev/null and b/config.xxxhdpi/res/q/az.webp differ diff --git a/config.xxxhdpi/res/q/b.webp b/config.xxxhdpi/res/q/b.webp new file mode 100644 index 0000000..357c619 Binary files /dev/null and b/config.xxxhdpi/res/q/b.webp differ diff --git a/config.xxxhdpi/res/q/b1.webp b/config.xxxhdpi/res/q/b1.webp new file mode 100644 index 0000000..a98fe3a Binary files /dev/null and b/config.xxxhdpi/res/q/b1.webp differ diff --git a/config.xxxhdpi/res/q/b5.png b/config.xxxhdpi/res/q/b5.png new file mode 100644 index 0000000..4574af5 Binary files /dev/null and b/config.xxxhdpi/res/q/b5.png differ diff --git a/config.xxxhdpi/res/q/b6.webp b/config.xxxhdpi/res/q/b6.webp new file mode 100644 index 0000000..55f1768 Binary files /dev/null and b/config.xxxhdpi/res/q/b6.webp differ diff --git a/config.xxxhdpi/res/q/b7.png b/config.xxxhdpi/res/q/b7.png new file mode 100644 index 0000000..5fa3266 Binary files /dev/null and b/config.xxxhdpi/res/q/b7.png differ diff --git a/config.xxxhdpi/res/q/b8.webp b/config.xxxhdpi/res/q/b8.webp new file mode 100644 index 0000000..f19165e Binary files /dev/null and b/config.xxxhdpi/res/q/b8.webp differ diff --git a/config.xxxhdpi/res/q/b9.png b/config.xxxhdpi/res/q/b9.png new file mode 100644 index 0000000..a4cd967 Binary files /dev/null and b/config.xxxhdpi/res/q/b9.png differ diff --git a/config.xxxhdpi/res/q/b_.png b/config.xxxhdpi/res/q/b_.png new file mode 100644 index 0000000..c11cb2e Binary files /dev/null and b/config.xxxhdpi/res/q/b_.png differ diff --git a/config.xxxhdpi/res/q/ba.webp b/config.xxxhdpi/res/q/ba.webp new file mode 100644 index 0000000..13e3088 Binary files /dev/null and b/config.xxxhdpi/res/q/ba.webp differ diff --git a/config.xxxhdpi/res/q/bb.webp b/config.xxxhdpi/res/q/bb.webp new file mode 100644 index 0000000..1ab04e9 Binary files /dev/null and b/config.xxxhdpi/res/q/bb.webp differ diff --git a/config.xxxhdpi/res/q/bc.9.png b/config.xxxhdpi/res/q/bc.9.png new file mode 100644 index 0000000..e51ff64 Binary files /dev/null and b/config.xxxhdpi/res/q/bc.9.png differ diff --git a/config.xxxhdpi/res/q/bd.webp b/config.xxxhdpi/res/q/bd.webp new file mode 100644 index 0000000..1c7089b Binary files /dev/null and b/config.xxxhdpi/res/q/bd.webp differ diff --git a/config.xxxhdpi/res/q/be.webp b/config.xxxhdpi/res/q/be.webp new file mode 100644 index 0000000..e41eda4 Binary files /dev/null and b/config.xxxhdpi/res/q/be.webp differ diff --git a/config.xxxhdpi/res/q/bg.webp b/config.xxxhdpi/res/q/bg.webp new file mode 100644 index 0000000..baa3db4 Binary files /dev/null and b/config.xxxhdpi/res/q/bg.webp differ diff --git a/config.xxxhdpi/res/q/bh.png b/config.xxxhdpi/res/q/bh.png new file mode 100644 index 0000000..ba16aac Binary files /dev/null and b/config.xxxhdpi/res/q/bh.png differ diff --git a/config.xxxhdpi/res/q/bi.png b/config.xxxhdpi/res/q/bi.png new file mode 100644 index 0000000..2716ba2 Binary files /dev/null and b/config.xxxhdpi/res/q/bi.png differ diff --git a/config.xxxhdpi/res/q/bk.webp b/config.xxxhdpi/res/q/bk.webp new file mode 100644 index 0000000..d9f558b Binary files /dev/null and b/config.xxxhdpi/res/q/bk.webp differ diff --git a/config.xxxhdpi/res/q/bl.webp b/config.xxxhdpi/res/q/bl.webp new file mode 100644 index 0000000..99525fc Binary files /dev/null and b/config.xxxhdpi/res/q/bl.webp differ diff --git a/config.xxxhdpi/res/q/bm.webp b/config.xxxhdpi/res/q/bm.webp new file mode 100644 index 0000000..b71569e Binary files /dev/null and b/config.xxxhdpi/res/q/bm.webp differ diff --git a/config.xxxhdpi/res/q/bp.webp b/config.xxxhdpi/res/q/bp.webp new file mode 100644 index 0000000..0b16c72 Binary files /dev/null and b/config.xxxhdpi/res/q/bp.webp differ diff --git a/config.xxxhdpi/res/q/bq.png b/config.xxxhdpi/res/q/bq.png new file mode 100644 index 0000000..b6fb692 Binary files /dev/null and b/config.xxxhdpi/res/q/bq.png differ diff --git a/config.xxxhdpi/res/q/br.png b/config.xxxhdpi/res/q/br.png new file mode 100644 index 0000000..202e56d Binary files /dev/null and b/config.xxxhdpi/res/q/br.png differ diff --git a/config.xxxhdpi/res/q/bs.png b/config.xxxhdpi/res/q/bs.png new file mode 100644 index 0000000..7efd617 Binary files /dev/null and b/config.xxxhdpi/res/q/bs.png differ diff --git a/config.xxxhdpi/res/q/bt.webp b/config.xxxhdpi/res/q/bt.webp new file mode 100644 index 0000000..18efa2c Binary files /dev/null and b/config.xxxhdpi/res/q/bt.webp differ diff --git a/config.xxxhdpi/res/q/bu.png b/config.xxxhdpi/res/q/bu.png new file mode 100644 index 0000000..82f4ffc Binary files /dev/null and b/config.xxxhdpi/res/q/bu.png differ diff --git a/config.xxxhdpi/res/q/bv.webp b/config.xxxhdpi/res/q/bv.webp new file mode 100644 index 0000000..99cccdb Binary files /dev/null and b/config.xxxhdpi/res/q/bv.webp differ diff --git a/config.xxxhdpi/res/q/e.9.png b/config.xxxhdpi/res/q/e.9.png new file mode 100644 index 0000000..d3c859c Binary files /dev/null and b/config.xxxhdpi/res/q/e.9.png differ diff --git a/config.xxxhdpi/res/q/f.9.png b/config.xxxhdpi/res/q/f.9.png new file mode 100644 index 0000000..980e330 Binary files /dev/null and b/config.xxxhdpi/res/q/f.9.png differ diff --git a/config.xxxhdpi/res/q/g.webp b/config.xxxhdpi/res/q/g.webp new file mode 100644 index 0000000..946e391 Binary files /dev/null and b/config.xxxhdpi/res/q/g.webp differ diff --git a/config.xxxhdpi/res/q/h.webp b/config.xxxhdpi/res/q/h.webp new file mode 100644 index 0000000..382d211 Binary files /dev/null and b/config.xxxhdpi/res/q/h.webp differ diff --git a/config.xxxhdpi/res/q/i.webp b/config.xxxhdpi/res/q/i.webp new file mode 100644 index 0000000..ecf4914 Binary files /dev/null and b/config.xxxhdpi/res/q/i.webp differ diff --git a/config.xxxhdpi/res/q/j.png b/config.xxxhdpi/res/q/j.png new file mode 100644 index 0000000..9084c38 Binary files /dev/null and b/config.xxxhdpi/res/q/j.png differ diff --git a/config.xxxhdpi/res/q/l.webp b/config.xxxhdpi/res/q/l.webp new file mode 100644 index 0000000..c6e8996 Binary files /dev/null and b/config.xxxhdpi/res/q/l.webp differ diff --git a/config.xxxhdpi/res/q/m.webp b/config.xxxhdpi/res/q/m.webp new file mode 100644 index 0000000..82b0a84 Binary files /dev/null and b/config.xxxhdpi/res/q/m.webp differ diff --git a/config.xxxhdpi/res/q/n.webp b/config.xxxhdpi/res/q/n.webp new file mode 100644 index 0000000..0a02d68 Binary files /dev/null and b/config.xxxhdpi/res/q/n.webp differ diff --git a/config.xxxhdpi/res/q/o.webp b/config.xxxhdpi/res/q/o.webp new file mode 100644 index 0000000..6583649 Binary files /dev/null and b/config.xxxhdpi/res/q/o.webp differ diff --git a/config.xxxhdpi/res/q/p.webp b/config.xxxhdpi/res/q/p.webp new file mode 100644 index 0000000..b7f583b Binary files /dev/null and b/config.xxxhdpi/res/q/p.webp differ diff --git a/config.xxxhdpi/res/q/q.webp b/config.xxxhdpi/res/q/q.webp new file mode 100644 index 0000000..3ff8db8 Binary files /dev/null and b/config.xxxhdpi/res/q/q.webp differ diff --git a/config.xxxhdpi/res/q/r.9.png b/config.xxxhdpi/res/q/r.9.png new file mode 100644 index 0000000..4490bc3 Binary files /dev/null and b/config.xxxhdpi/res/q/r.9.png differ diff --git a/config.xxxhdpi/res/q/s.9.png b/config.xxxhdpi/res/q/s.9.png new file mode 100644 index 0000000..ff52bf7 Binary files /dev/null and b/config.xxxhdpi/res/q/s.9.png differ diff --git a/config.xxxhdpi/res/q/t.9.png b/config.xxxhdpi/res/q/t.9.png new file mode 100644 index 0000000..76418e8 Binary files /dev/null and b/config.xxxhdpi/res/q/t.9.png differ diff --git a/config.xxxhdpi/res/q/u.png b/config.xxxhdpi/res/q/u.png new file mode 100644 index 0000000..2c6d0da Binary files /dev/null and b/config.xxxhdpi/res/q/u.png differ diff --git a/config.xxxhdpi/res/q/v.png b/config.xxxhdpi/res/q/v.png new file mode 100644 index 0000000..565f0b2 Binary files /dev/null and b/config.xxxhdpi/res/q/v.png differ diff --git a/config.xxxhdpi/res/q/w.png b/config.xxxhdpi/res/q/w.png new file mode 100644 index 0000000..714b641 Binary files /dev/null and b/config.xxxhdpi/res/q/w.png differ diff --git a/config.xxxhdpi/res/q/x.png b/config.xxxhdpi/res/q/x.png new file mode 100644 index 0000000..894c734 Binary files /dev/null and b/config.xxxhdpi/res/q/x.png differ diff --git a/config.xxxhdpi/res/x/a.webp b/config.xxxhdpi/res/x/a.webp new file mode 100644 index 0000000..f43f7ca Binary files /dev/null and b/config.xxxhdpi/res/x/a.webp differ diff --git a/config.xxxhdpi/res/x/b.webp b/config.xxxhdpi/res/x/b.webp new file mode 100644 index 0000000..8ef6d60 Binary files /dev/null and b/config.xxxhdpi/res/x/b.webp differ diff --git a/config.xxxhdpi/res/x/c.9.png b/config.xxxhdpi/res/x/c.9.png new file mode 100644 index 0000000..34655f0 Binary files /dev/null and b/config.xxxhdpi/res/x/c.9.png differ diff --git a/config.xxxhdpi/resources.arsc b/config.xxxhdpi/resources.arsc new file mode 100644 index 0000000..f846895 Binary files /dev/null and b/config.xxxhdpi/resources.arsc differ diff --git a/config.zh/AndroidManifest.xml b/config.zh/AndroidManifest.xml new file mode 100644 index 0000000..a8d76ec Binary files /dev/null and b/config.zh/AndroidManifest.xml differ diff --git a/config.zh/META-INF/BNDLTOOL.RSA b/config.zh/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..3b7d75e Binary files /dev/null and b/config.zh/META-INF/BNDLTOOL.RSA differ diff --git a/config.zh/META-INF/BNDLTOOL.SF b/config.zh/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..722aa21 --- /dev/null +++ b/config.zh/META-INF/BNDLTOOL.SF @@ -0,0 +1,23 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: wA2pqgl2TJRDBRYBdukqRdq58CE= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: 6HsC7hHOB1tRTiHyrDJ0L6LdIak= + +Name: assets/i18#lang_zh/cn.json +SHA1-Digest: 9fy24L2gXlEvEqlHYFHaNqwzXf0= + +Name: assets/i18#lang_zh/default.json +SHA1-Digest: mPukpx4KT1kBbrzXBlgYoaIkyko= + +Name: assets/i18#lang_zh/hk.json +SHA1-Digest: NbaDR1ql8ITIXnlN/wHreSm+kyI= + +Name: assets/i18#lang_zh/my.json +SHA1-Digest: N2ogWURzFZIIWJlrhNgkbn0vRJI= + +Name: resources.arsc +SHA1-Digest: 3HwYLZoRuxqFcs/feAgiehSo7bY= + diff --git a/config.zh/META-INF/MANIFEST.MF b/config.zh/META-INF/MANIFEST.MF new file mode 100644 index 0000000..686b7b9 --- /dev/null +++ b/config.zh/META-INF/MANIFEST.MF @@ -0,0 +1,22 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: Xw4F5SaRYuIeHKBo7e+wCLw1zSI= + +Name: assets/i18#lang_zh/cn.json +SHA1-Digest: OmxU81wHvL5rbV1QDsnZewdx1L0= + +Name: assets/i18#lang_zh/default.json +SHA1-Digest: zR++UbMo/C9y3gBzN7yYXCQ5QpU= + +Name: assets/i18#lang_zh/hk.json +SHA1-Digest: w6rRUMPHAmtFoKHDAShRhXS+tps= + +Name: assets/i18#lang_zh/my.json +SHA1-Digest: 1WwDimCrl4eZGt5rdevCFNsWZI8= + +Name: resources.arsc +SHA1-Digest: rNwZ8g4EIKjr98wnUsCthDoyzfY= + diff --git a/config.zh/assets/i18#lang_zh/cn.json b/config.zh/assets/i18#lang_zh/cn.json new file mode 100644 index 0000000..45f2158 --- /dev/null +++ b/config.zh/assets/i18#lang_zh/cn.json @@ -0,0 +1,1003 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6821394531490057473", + "desc": "田舎ではめっちゃ浮くけど好きな服を着たい#おすすめのりたい #おすすめ #おうちで過ごし隊 #バズれ", + "create_time": 1588229681, + "author": { + "uid": "6664485887529320449", + "short_id": "31985590033", + "nickname": "おしお", + "signature": "8時30分(??)投稿🐹", + "avatar_thumb": { + "uri": "tiktok-obj/1663478210615298", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1663478210615298.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1663478210615298", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1663478210615298.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "xd__x1", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "JP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + } + ], + "language": "ja", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1663478210615298", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1663478210615298~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1663478210615298", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1663478210615298~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAXnj9HhJt1172tWghbTNMZKNtsa3qAZsykclELyrS1DZnm27FvNRwqmrAqrXLoEQe", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6814172769975029000, + "id_str": "6814172769975028482", + "title": "original sound - 四爷🌸", + "author": "四爷🌸", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663620049097761.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1663620049097761.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 11, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6642602349096665089", + "owner_nickname": "四爷🌸", + "is_original": false, + "mid": "6814172769975028482", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "siye60", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAACVwPX_Lqdosa1cVdafSQuokWDLrk0N_jcFiSNZhwy-3KgOhng-XpeZBbZfjNibLH", + "avatar_thumb": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1663643268562946", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1663643268562946.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "10753252", + "cha_name": "おすすめ", + "desc": "#おすすめ 付けて動画をもっとたくさんの人に見せよう!#おすすめ を付けることでよりおすすめされやすくなる🎉❤️😱\n動画を@musically_japanと#ミュージカリーでツイッター或いはインスタグラムにシェアし、muscial.lyが君の動画を公式SNSに投稿するチャンスを手にいれよう!", + "schema": "aweme://aweme/challenge/detail?cid=10753252", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/10753252?name=%E3%81%8A%E3%81%99%E3%81%99%E3%82%81&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=10753252", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #おすすめ Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #おすすめ Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: おすすめ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025b40000bql7bq8ji60grojjm1a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bql7bq8ji60grojjm1a0_h264_540p_806261", + "data_size": 1137333 + }, + "cover": { + "uri": "large/v0201/16e2b730d9914ffb809b0a29dc1bdad7_1588229684", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/16e2b730d9914ffb809b0a29dc1bdad7_1588229684.webp?x-expires=1592658000&x-signature=4omYFKvb%2FepGWt8aNjFInOkBnOw%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "v0201/a9cfb46aa4924eddae3bc4e32db8fad7_1588229684", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/a9cfb46aa4924eddae3bc4e32db8fad7_1588229684?x-expires=1592658000&x-signature=6a%2FjfFZevJACMbUyIwvkYsg0kLQ%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/a0af61f8014f41728b7748c6e72031f1_1588229684", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/a0af61f8014f41728b7748c6e72031f1_1588229684.jpeg?x-expires=1592658000&x-signature=1oEWYkRNyZkKHCBMA0wkgYLDXEs%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025b40000bql7bq8ji60grojjm1a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1193664 + }, + "has_watermark": true, + "play_addr_lowbr": { + "uri": "v07025b40000bql7bq8ji60grojjm1a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bql7bq8ji60grojjm1a0_h264_540p_806261", + "data_size": 1137333 + }, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 806261, + "play_addr": { + "uri": "v07025b40000bql7bq8ji60grojjm1a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025b40000bql7bq8ji60grojjm1a0_h264_540p_806261", + "data_size": 1137333 + }, + "is_h265": 0 + } + ], + "duration": 11285, + "download_suffix_logo_addr": { + "uri": "v07025b40000bql7bq8ji60grojjm1a0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1260110 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507400, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025b40000bql7bq8ji60grojjm1a0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025b40000bql7bq8ji60grojjm1a0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1314829}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6821394531490057473/?region=CN&mid=6814172769975028482&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6821394531490057473", + "user_digged": 0, + "statistics": { + "aweme_id": "6821394531490057473", + "comment_count": 3285, + "digg_count": 312860, + "download_count": 2972, + "play_count": 4200964, + "share_count": 6341, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 6 + }, + "status": { + "aweme_id": "6821394531490057473", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 30, + "end": 35, + "type": 1, + "hashtag_name": "おすすめ", + "hashtag_id": "10753252", + "is_commerce": false + }, + { + "start": 36, + "end": 45, + "type": 1, + "hashtag_name": "おうちで過ごし隊", + "hashtag_id": "1662314533846017", + "is_commerce": false + }, + { + "start": 46, + "end": 50, + "type": 1, + "hashtag_name": "バズれ", + "hashtag_id": "1592296049031170", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6821394531490057473/?region=CN&mid=6814172769975028482&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6821394531490057473", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out おしお’s video! #TikTok > ", + "share_desc": "Check out おしお's video! #TikTok", + "share_title": "Check out おしお’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 11285, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6664485887529320000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "JP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6821386519983541506", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ja", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6814028581539269889", + "desc": "", + "create_time": 1586514663, + "author": { + "uid": "6775025977271010310", + "short_id": "46721513456", + "nickname": "(BOSS)", + "signature": "Plz visit my youtube channel{Bishaz Gaming} & don’t forget to like,cmt, sescribe", + "avatar_thumb": { + "uri": "musically-maliva-obj/1661420973515782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1661420973515782~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1661420973515782", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/1661420973515782~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "rupakarki15", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "NP", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1661420973515782", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1661420973515782~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1661420973515782", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1661420973515782~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAJd9ZdJHqFXUU-jvhWGagdecPPT97pWj_r_2br93w4l46BcfNgRmGwDVeJQK_kMKf", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6782778674396843000, + "id_str": "6782778674396842753", + "title": "original sound - AG Bangel", + "author": "AG Bangel", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1655951763789874.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1655951763789874.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 14, + "extra": "{\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6780009978504135685", + "owner_nickname": "AG Bangel", + "is_original": false, + "mid": "6782778674396842753", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "cm_criminal__07", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656588034530306", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656588034530306" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAYA-wN91fVR8YeNxXllQszSHQfuWfrtgmMg3ig88mTB9rcJj-s8fizW-ykyMQeioV", + "avatar_thumb": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1659304560143362", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1659304560143362.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000bq84lakqq9h1qgahg5fg_h264_540p_447203", + "data_size": 571135 + }, + "cover": { + "uri": "tos-maliva-p-0068/04dd8decaf8e43aab1e27479c588a71e", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/04dd8decaf8e43aab1e27479c588a71e~noop.webp?x-expires=1592658000&x-signature=fnYSbssmUNXau3G9lKPJChH%2BQh4%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/aa4984e0ad1e4657a40374d9f0b16efb_1586528745", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/aa4984e0ad1e4657a40374d9f0b16efb_1586528745?x-expires=1592658000&x-signature=359uDdTNwl5nMD%2BZN2udpTvSGq8%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/505fa79bf10444a8aebeee6ef885ecb0_1586528745", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/505fa79bf10444a8aebeee6ef885ecb0_1586528745~noop.image?x-expires=1592658000&x-signature=nQrG3%2Flxku6za1C689%2B07IQcC2M%3D&l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 677095 + }, + "has_watermark": true, + "play_addr_lowbr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000bq84lakqq9h1qgahg5fg_h264_540p_447203", + "data_size": 571135 + }, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 447203, + "play_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000bq84lakqq9h1qgahg5fg_h264_540p_447203", + "data_size": 571135 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 284734, + "play_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000bq84lakqq9h1qgahg5fg_h264_540p_284734", + "data_size": 363641 + }, + "is_h265": 0 + }, + { + "gear_name": "lowest_540", + "quality_type": 25, + "bit_rate": 215155, + "play_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=5&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e80000bq84lakqq9h1qgahg5fg_h264_540p_215155", + "data_size": 274781 + }, + "is_h265": 0 + } + ], + "duration": 10217, + "download_suffix_logo_addr": { + "uri": "v09044e80000bq84lakqq9h1qgahg5fg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e80000bq84lakqq9h1qgahg5fg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 745757 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507399 + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6814028581539269889/?region=CN&mid=6782778674396842753&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6814028581539269889", + "user_digged": 0, + "statistics": { + "aweme_id": "6814028581539269889", + "comment_count": 262, + "digg_count": 17388, + "download_count": 833, + "play_count": 215349, + "share_count": 139, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 27 + }, + "status": { + "aweme_id": "6814028581539269889", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309480101150770321623DD05" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6814028581539269889/?region=CN&mid=6782778674396842753&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6814028581539269889", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out (BOSS)’s video! #TikTok > ", + "share_desc": "Check out (BOSS)'s video! #TikTok", + "share_title": "Check out (BOSS)’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 10217, + "aweme_type": 53, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "{\"author_id\":6775025977271010310,\"author_country\":\"Nepal\",\"need_coldstart_force\":false,\"need_heat_force\":false}", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6775025977271010000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "NP", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6814028581539269889", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "misc_info": "{\"mv_id\":\"308743\",\"mv_info\":{\"id\":\"308743\",\"name\":\"Double Exposure\",\"icon_url\":{\"Uri\":\"\",\"UrlList\":null,\"DataSize\":null,\"Width\":null,\"Height\":null,\"UrlKey\":null,\"FileHash\":null,\"FileCs\":null},\"user_count\":null,\"desc\":null,\"mv_type\":0,\"extra\":\"{\\\"template_max_material\\\":2,\\\"template_min_material\\\":1,\\\"template_picture_cover\\\":\\\"6b0d81314d527140c658f51f922592b1\\\",\\\"template_pic_fill_mode\\\":\\\"AspectFill\\\",\\\"template_pic_input_height\\\":1920,\\\"template_pic_input_width\\\":1080,\\\"template_video_cover\\\":\\\"55e86fb74ab1d257733491dd3ecc6eb3.mp4\\\"}\"}}", + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309480101150770321623DD05" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.zh/assets/i18#lang_zh/default.json b/config.zh/assets/i18#lang_zh/default.json new file mode 100644 index 0000000..1038e9c --- /dev/null +++ b/config.zh/assets/i18#lang_zh/default.json @@ -0,0 +1,966 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838989854651485445", + "desc": "🤣 Follow to see more @baileyhall208 #foryou #trend #fyp #foryoupage #funny #viral", + "create_time": 1592326411, + "author": { + "uid": "6793978522702791685", + "short_id": "47173227664", + "nickname": "Mv Ryhan", + "signature": "Follow me\n I love my Followers \n⬇️ New Video ❤❤❤", + "avatar_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mvryhan", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "FR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAy80UAaf4ccYNfiPoSagJ03zHVxAzuDHkIb_oFsw51qLVHNEsv1ijPVWp_a-wbIkr", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6838989845474463000, + "id_str": "6838989845474462470", + "title": "original sound - Mv Ryhan", + "author": "Mv Ryhan", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838989826637777669.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838989826637777669.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6793978522702791685", + "owner_nickname": "Mv Ryhan", + "is_original": false, + "mid": "6838989845474462470", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mvryhan", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAy80UAaf4ccYNfiPoSagJ03zHVxAzuDHkIb_oFsw51qLVHNEsv1ijPVWp_a-wbIkr", + "avatar_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "42164", + "cha_name": "foryou", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=42164", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/42164?name=foryou&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=42164", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_1518534", + "data_size": 2481475 + }, + "cover": { + "uri": "tos-maliva-p-0068/cdcd6c3c20de4c158019b5fbccb28fb9_1592326415", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/cdcd6c3c20de4c158019b5fbccb28fb9_1592326415~noop.webp?x-expires=1592658000&x-signature=Uo6Y4fTYJNUoMR3Wnc3bTX%2BraPQ%3D&l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/ea083abdde704eadbee181c5d843fdf5_1592326414", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/ea083abdde704eadbee181c5d843fdf5_1592326414?x-expires=1592658000&x-signature=tJk15Mxn02eVNWnAMew7bZ4KTgY%3D&l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/03eb30d15bb54b18a4ef295d73972013_1592326414", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/03eb30d15bb54b18a4ef295d73972013_1592326414~noop.image?x-expires=1592658000&x-signature=FkwOgtJzb44GerKsurdQiJWrDYE%3D&l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2475571 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1518534, + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_1518534", + "data_size": 2481475 + }, + "is_h265": 0 + } + ], + "duration": 13073, + "download_suffix_logo_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2544442 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044100000brkfhm3r1j8791lvp99g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2621941}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6838989854651485445/?region=CN&mid=6838989845474462470&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838989854651485445", + "user_digged": 0, + "statistics": { + "aweme_id": "6838989854651485445", + "comment_count": 576, + "digg_count": 191156, + "download_count": 2485, + "play_count": 12915446, + "share_count": 6929, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1879 + }, + "status": { + "aweme_id": "6838989854651485445", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 22, + "end": 36, + "user_id": "6735556032577881093", + "type": 0, + "sec_uid": "MS4wLjABAAAANOTqdMGVuOoGGkkXiS8tf7Uy6e7QZArJm1_CFw1MO5ByWo4HyTFhkNpQ1vB0OGj3" + }, + { + "start": 37, + "end": 44, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 45, + "end": 51, + "type": 1, + "hashtag_name": "trend", + "hashtag_id": "44895", + "is_commerce": false + }, + { + "start": 52, + "end": 56, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 57, + "end": 68, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 69, + "end": 75, + "type": 1, + "hashtag_name": "funny", + "hashtag_id": "5424", + "is_commerce": false + }, + { + "start": 76, + "end": 82, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6838989854651485445/?region=CN&mid=6838989845474462470&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838989854651485445", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Mv Ryhan’s video! #TikTok > ", + "share_desc": "Check out Mv Ryhan's video! #TikTok", + "share_title": "Check out Mv Ryhan’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13073, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6793978522702792000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "FR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838989854651485445", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6821455154974362882", + "desc": "想講出一口流利的韓文……", + "create_time": 1588243797, + "author": { + "uid": "70079157515", + "short_id": "79484436", + "nickname": "超強系列", + "signature": "成為你的精神小夥!\nIG➡️rene_superawesome\nYouTube頻道➡️超強系列SuperAwesome", + "avatar_thumb": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1662045304407042.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1662045304407042.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "Popular creator", + "unique_id": "rene_1996", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "38cd00310950a5bb728a", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/tt-img/obj/38cd00310950a5bb728a?l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "TW", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + } + ], + "language": "zh-Hant", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1662045304407042~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1662045304407042~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAszurOTpIZZWtCbr6JWFVVJyr0jeORUwjteSxyc8doRc", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6821455176495353000, + "id_str": "6821455176495352577", + "title": "original sound - 超強系列", + "author": "超強系列", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1662045304407042.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1662045304407042.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1662045304407042.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1662045304407042.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/0c62fb46a61fd179eb9c7f30fa198610.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/0c62fb46a61fd179eb9c7f30fa198610.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 26, + "extra": "{\"has_edited\":0,\"reviewed\":0,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "70079157515", + "owner_nickname": "超強系列", + "is_original": false, + "mid": "6821455176495352577", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "rene_1996", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAszurOTpIZZWtCbr6JWFVVJyr0jeORUwjteSxyc8doRc", + "avatar_thumb": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1662045304407042.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1662045304407042.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1662045304407042", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1662045304407042.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v07025e40000bqlaq99okrln2059id2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025e40000bqlaq99okrln2059id2g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025e40000bqlaq99okrln2059id2g_h264_540p_915021", + "data_size": 3064865 + }, + "cover": { + "uri": "large/v0201/6353ed1d68bc478aac47c2a4623b5adf_1588243801", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/6353ed1d68bc478aac47c2a4623b5adf_1588243801.webp?x-expires=1592658000&x-signature=7EO0fZmibzSmGAHKJMayGE4uh%2BM%3D&l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "v0201/049c2196449e4ffeabf27185e5bd7add_1588243799", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/049c2196449e4ffeabf27185e5bd7add_1588243799?x-expires=1592658000&x-signature=izDKCqyFEOIz4lp2ahjEzK2avho%3D&l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/c0735477c85044cb8b2559d51ff9471d_1588243799", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/c0735477c85044cb8b2559d51ff9471d_1588243799.jpeg?x-expires=1592658000&x-signature=TI41cnhzvbIX3S8g9GlZjxitCAg%3D&l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025e40000bqlaq99okrln2059id2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025e40000bqlaq99okrln2059id2g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3286111 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 915021, + "play_addr": { + "uri": "v07025e40000bqlaq99okrln2059id2g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025e40000bqlaq99okrln2059id2g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025e40000bqlaq99okrln2059id2g_h264_540p_915021", + "data_size": 3064865 + }, + "is_h265": 0 + } + ], + "duration": 26796, + "is_h265": 0, + "cdn_url_expired": 1592507416, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025e40000bqlaq99okrln2059id2g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025e40000bqlaq99okrln2059id2g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3417816}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6821455154974362882/?region=CN&mid=6821455176495352577&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6821455154974362882", + "user_digged": 0, + "statistics": { + "aweme_id": "6821455154974362882", + "comment_count": 1752, + "digg_count": 203046, + "download_count": 13991, + "play_count": 3244096, + "share_count": 34575, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 100 + }, + "status": { + "aweme_id": "6821455154974362882", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=2020061813094901011513817610237CDD" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6821455154974362882/?region=CN&mid=6821455176495352577&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6821455154974362882", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 超強系列’s video! #TikTok > ", + "share_desc": "Check out 超強系列's video! #TikTok", + "share_title": "Check out 超強系列’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 26796, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 70079157515, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "TW", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6821455154974362882", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "zh-Hant", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "2020061813094901011513817610237CDD" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.zh/assets/i18#lang_zh/hk.json b/config.zh/assets/i18#lang_zh/hk.json new file mode 100644 index 0000000..f829757 --- /dev/null +++ b/config.zh/assets/i18#lang_zh/hk.json @@ -0,0 +1,973 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6838989854651485445", + "desc": "🤣 Follow to see more @baileyhall208 #foryou #trend #fyp #foryoupage #funny #viral", + "create_time": 1592326411, + "author": { + "uid": "6793978522702791685", + "short_id": "47173227664", + "nickname": "Mv Ryhan", + "signature": "Follow me\n I love my Followers \n⬇️ New Video ❤❤❤", + "avatar_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "mvryhan", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "FR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101152280720B23EE28" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAy80UAaf4ccYNfiPoSagJ03zHVxAzuDHkIb_oFsw51qLVHNEsv1ijPVWp_a-wbIkr", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6838989845474463000, + "id_str": "6838989845474462470", + "title": "original sound - Mv Ryhan", + "author": "Mv Ryhan", + "album": "", + "cover_hd": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838989826637777669.mp3", + "url_list": [ + "https://p16-va.tiktokcdn.com/obj/musically-maliva-obj/6838989826637777669.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 72, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":1,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6793978522702791685", + "owner_nickname": "Mv Ryhan", + "is_original": false, + "mid": "6838989845474462470", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "mvryhan", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAy80UAaf4ccYNfiPoSagJ03zHVxAzuDHkIb_oFsw51qLVHNEsv1ijPVWp_a-wbIkr", + "avatar_thumb": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/1659419923939333~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "musically-maliva-obj/1659419923939333", + "url_list": [ + "https://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/1659419923939333~c5_1080x1080.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "42164", + "cha_name": "foryou", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=42164", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/42164?name=foryou&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=42164", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #foryou Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: foryou", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_1518534", + "data_size": 2481475 + }, + "cover": { + "uri": "tos-maliva-p-0068/cdcd6c3c20de4c158019b5fbccb28fb9_1592326415", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/cdcd6c3c20de4c158019b5fbccb28fb9_1592326415~noop.webp?x-expires=1592658000&x-signature=Uo6Y4fTYJNUoMR3Wnc3bTX%2BraPQ%3D&l=202006181309490101152280720B23EE28" + ], + "width": 720, + "height": 720 + }, + "height": 1024, + "width": 576, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/ea083abdde704eadbee181c5d843fdf5_1592326414", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/ea083abdde704eadbee181c5d843fdf5_1592326414?x-expires=1592658000&x-signature=tJk15Mxn02eVNWnAMew7bZ4KTgY%3D&l=202006181309490101152280720B23EE28" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/03eb30d15bb54b18a4ef295d73972013_1592326414", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/03eb30d15bb54b18a4ef295d73972013_1592326414~noop.image?x-expires=1592658000&x-signature=FkwOgtJzb44GerKsurdQiJWrDYE%3D&l=202006181309490101152280720B23EE28" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2475571 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1518534, + "play_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044100000brkfhm3r1j8791lvp99g_h264_540p_1518534", + "data_size": 2481475 + }, + "is_h265": 0 + } + ], + "duration": 13073, + "download_suffix_logo_addr": { + "uri": "v09044100000brkfhm3r1j8791lvp99g", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2544442 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044100000brkfhm3r1j8791lvp99g\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044100000brkfhm3r1j8791lvp99g&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":2621941}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6838989854651485445/?region=CN&mid=6838989845474462470&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838989854651485445", + "user_digged": 0, + "statistics": { + "aweme_id": "6838989854651485445", + "comment_count": 576, + "digg_count": 191156, + "download_count": 2485, + "play_count": 12915460, + "share_count": 6929, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1879 + }, + "status": { + "aweme_id": "6838989854651485445", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 22, + "end": 36, + "user_id": "6735556032577881093", + "type": 0, + "sec_uid": "MS4wLjABAAAANOTqdMGVuOoGGkkXiS8tf7Uy6e7QZArJm1_CFw1MO5ByWo4HyTFhkNpQ1vB0OGj3" + }, + { + "start": 37, + "end": 44, + "type": 1, + "hashtag_name": "foryou", + "hashtag_id": "42164", + "is_commerce": false + }, + { + "start": 45, + "end": 51, + "type": 1, + "hashtag_name": "trend", + "hashtag_id": "44895", + "is_commerce": false + }, + { + "start": 52, + "end": 56, + "type": 1, + "hashtag_name": "fyp", + "hashtag_id": "229207", + "is_commerce": false + }, + { + "start": 57, + "end": 68, + "type": 1, + "hashtag_name": "foryoupage", + "hashtag_id": "88764338", + "is_commerce": false + }, + { + "start": 69, + "end": 75, + "type": 1, + "hashtag_name": "funny", + "hashtag_id": "5424", + "is_commerce": false + }, + { + "start": 76, + "end": 82, + "type": 1, + "hashtag_name": "viral", + "hashtag_id": "20884", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101152280720B23EE28" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6838989854651485445/?region=CN&mid=6838989845474462470&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6838989854651485445", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Mv Ryhan’s video! #TikTok > ", + "share_desc": "Check out Mv Ryhan's video! #TikTok", + "share_title": "Check out Mv Ryhan’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13073, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6793978522702792000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "FR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6838989854651485445", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6833668167223627010", + "desc": "我丢脸到极致了", + "create_time": 1591087360, + "author": { + "uid": "6533313231259074561", + "short_id": "2153826008", + "nickname": "丁律", + "signature": "人家是女生欸 只是身高177\nI am a girl . my English is very poor\nIG:dingggg32\n追IG才是你明確的選", + "avatar_thumb": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666387953183745.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666387953183745.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "dingggg0302", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "TW", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 3, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309490101152280720B23EE28" + ], + "width": 720, + "height": 720 + } + ], + "language": "zh-Hant", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666387953183745~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666387953183745~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAA1OrcUvL6p1mCQoWQLDKwx5K9O5FutbxysMBDqzbztgTdmD4RdLGIAmWMH5tNU8vA", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6833668179777146000, + "id_str": "6833668179777145602", + "title": "original sound - 丁律", + "author": "丁律", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1666387953183745.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1666387953183745.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666387953183745.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666387953183745.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/5575125a09d3e7093ce41f04ea0973e8.mp3", + "url_list": [ + "https://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/5575125a09d3e7093ce41f04ea0973e8.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 13, + "extra": "{\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1,\"has_edited\":0,\"reviewed\":0,\"beats\":{}}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6533313231259074561", + "owner_nickname": "丁律", + "is_original": false, + "mid": "6833668179777145602", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "dingggg0302", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAA1OrcUvL6p1mCQoWQLDKwx5K9O5FutbxysMBDqzbztgTdmD4RdLGIAmWMH5tNU8vA", + "avatar_thumb": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666387953183745.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666387953183745.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/1666387953183745", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/1666387953183745.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": null, + "video": { + "play_addr": { + "uri": "v07025010000brb11kf06l3jfrlrphig", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025010000brb11kf06l3jfrlrphig&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025010000brb11kf06l3jfrlrphig_h264_540p_1156187", + "data_size": 1976502 + }, + "cover": { + "uri": "large/v0201/4608a1aa0cce4dce9bbadba3b0565ea0_1591087362", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/4608a1aa0cce4dce9bbadba3b0565ea0_1591087362.webp?x-expires=1592658000&x-signature=yIGW9KJ9Flh95ntZVhHb8IK63RA%3D&l=202006181309490101152280720B23EE28" + ], + "width": 720, + "height": 720 + }, + "height": 958, + "width": 540, + "dynamic_cover": { + "uri": "v0201/a80f3b48b3264659bd00365c698426ce_1591087363", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/obj/v0201/a80f3b48b3264659bd00365c698426ce_1591087363?x-expires=1592658000&x-signature=XwwHsYMMK47lQ3MCNAV%2BtKfjJ0c%3D&l=202006181309490101152280720B23EE28" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/d7bc2e3b2eb444899cc0e23bcce8a4d1_1591087363", + "url_list": [ + "https://p16-tiktok-sg.ibyteimg.com/large/v0201/d7bc2e3b2eb444899cc0e23bcce8a4d1_1591087363.jpeg?x-expires=1592658000&x-signature=UCd7LwxjEoyx6IqWYcPLRnZYvug%3D&l=202006181309490101152280720B23EE28" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025010000brb11kf06l3jfrlrphig", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025010000brb11kf06l3jfrlrphig&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2054317 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1156187, + "play_addr": { + "uri": "v07025010000brb11kf06l3jfrlrphig", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025010000brb11kf06l3jfrlrphig&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025010000brb11kf06l3jfrlrphig_h264_540p_1156187", + "data_size": 1976502 + }, + "is_h265": 0 + } + ], + "duration": 13676, + "download_suffix_logo_addr": { + "uri": "v07025010000brb11kf06l3jfrlrphig", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025010000brb11kf06l3jfrlrphig&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 2121225 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507403 + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6833668167223627010/?region=CN&mid=6833668179777145602&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833668167223627010", + "user_digged": 0, + "statistics": { + "aweme_id": "6833668167223627010", + "comment_count": 25, + "digg_count": 3324, + "download_count": 11, + "play_count": 31953, + "share_count": 9, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1 + }, + "status": { + "aweme_id": "6833668167223627010", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309490101152280720B23EE28" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6833668167223627010/?region=CN&mid=6833668179777145602&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6833668167223627010", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 丁律’s video! #TikTok > ", + "share_desc": "Check out 丁律's video! #TikTok", + "share_title": "Check out 丁律’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 13676, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6533313231259075000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "TW", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6833668167223627010", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 1, + "item_react": 1, + "desc_language": "zh", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485790000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309490101152280720B23EE28" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.zh/assets/i18#lang_zh/my.json b/config.zh/assets/i18#lang_zh/my.json new file mode 100644 index 0000000..2ea14d4 --- /dev/null +++ b/config.zh/assets/i18#lang_zh/my.json @@ -0,0 +1,1505 @@ +{ + "status_code": 0, + "min_cursor": 0, + "max_cursor": 0, + "has_more": 1, + "aweme_list": [ + { + "aweme_id": "6826642661441588482", + "desc": "#zoommyface", + "create_time": 1589451607, + "author": { + "uid": "77105514261684224", + "short_id": "21463362668", + "nickname": "Nadiraisaac", + "signature": "Instagram @nadiraisaac", + "avatar_thumb": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666462649114626.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666462649114626.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "nadiraisaac", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "MY", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 0, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "ms", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 0, + "avatar_168x168": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666462649114626~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1666462649114626", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666462649114626~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAegJOuW2ezJneXyREEzOIZrfR3e2U8W4BLv9bpwd0QVFVu1EvsCCn0uXzvACj9G5x", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6817319822334922000, + "id_str": "6817319822334921473", + "title": "Cari Mama Muda", + "author": "Bballgntng🚀", + "album": "", + "cover_hd": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664387989637121.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/1664387989637121.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 24, + "start_time": 0, + "end_time": 0, + "duration": 12, + "extra": "{\"has_edited\":1,\"reviewed\":1,\"beats\":{},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_id": "6694206941936141313", + "owner_nickname": "Bballgntng🚀", + "is_original": false, + "mid": "6817319822334921473", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "bballmaniss_2710", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "sec_uid": "MS4wLjABAAAAUxPCq4ZhkyFB_osTlGng3zdurPSQOFyRdJajpzyETdt37775BQqhDsVUqU_PNiqI", + "avatar_thumb": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_large": { + "uri": "tiktok-obj/0082fa2459be045cbe6ecd3a6db263db", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tiktok-obj/0082fa2459be045cbe6ecd3a6db263db.webp" + ], + "width": 720, + "height": 720 + }, + "preview_start_time": 0, + "preview_end_time": 0, + "is_commerce_music": true, + "is_original_sound": true, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": false + }, + "cha_list": [ + { + "cid": "81462767", + "cha_name": "zoommyface", + "desc": "which is your cutest expression? Try this trending effect with you!🔥🎬", + "schema": "aweme://aweme/challenge/detail?cid=81462767", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/81462767?name=zoommyface&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=81462767", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #zoommyface Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #zoommyface Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: zoommyface", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "musically-maliva-obj/c92e8f2dc4a4b60d2cca43b8a1e247a2", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1952003", + "data_size": 2996813 + }, + "cover": { + "uri": "large/tos-alisg-p-0037/e7193304166d400abe63a6ed69410a3a", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/tos-alisg-p-0037/e7193304166d400abe63a6ed69410a3a.webp?x-expires=1592658000&x-signature=sxA7uoCQzjWDe1CoxuzoE72hcHI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 960, + "width": 540, + "dynamic_cover": { + "uri": "v0201/dceb4cfefcf944548e1ccfd7bb8036cf_1589451609", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/dceb4cfefcf944548e1ccfd7bb8036cf_1589451609?x-expires=1592658000&x-signature=WaZM%2FQAGOQMtZqK5cYETrMcuCbU%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/fe5536f44fe94fa6819f3554440f5209_1589451610", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/fe5536f44fe94fa6819f3554440f5209_1589451610.jpeg?x-expires=1592658000&x-signature=8wlE3UPU1xeOkrrBLLn6m24FuBw%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3048539 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 1952003, + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1952003", + "data_size": 2996813 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1054082, + "play_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v070256e0000bquhmk5sk0etnap0a9pg_h264_540p_1054082", + "data_size": 1618280 + }, + "is_h265": 0 + } + ], + "duration": 12282, + "download_suffix_logo_addr": { + "uri": "v070256e0000bquhmk5sk0etnap0a9pg", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 3106638 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507404, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v070256e0000bquhmk5sk0etnap0a9pg\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v070256e0000bquhmk5sk0etnap0a9pg&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":3162561}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6826642661441588482/?region=CN&mid=6817319822334921473&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826642661441588482", + "user_digged": 0, + "statistics": { + "aweme_id": "6826642661441588482", + "comment_count": 1151, + "digg_count": 92703, + "download_count": 7645, + "play_count": 2389579, + "share_count": 5016, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 1938 + }, + "status": { + "aweme_id": "6826642661441588482", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 0, + "end": 11, + "type": 1, + "hashtag_name": "zoommyface", + "hashtag_id": "81462767", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6826642661441588482/?region=CN&mid=6817319822334921473&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6826642661441588482", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out Nadiraisaac’s video! #TikTok > ", + "share_desc": "Check out Nadiraisaac's video! #TikTok", + "share_title": "Check out Nadiraisaac’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 12282, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 77105514261684220, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "MY", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "stickers": "235261", + "group_id": "6826642661441588482", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "sticker_detail": { + "id": "235261", + "name": "Zoom Me", + "children": null, + "tags": null + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "un", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6839407117871664390", + "desc": "😳 Why would somebody do this? 💔 With @trifinn Come back tomorrow for part 2... #kittens", + "create_time": 1592423564, + "author": { + "uid": "6718992235998741510", + "short_id": "44477201384", + "nickname": "SCOTT 🔥 🔥 🔥", + "signature": "😳🔞Ending is on my insta (@tri.scott) ↗️\nFollow for more crazy pranks 😅", + "avatar_thumb": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "http://p16-mt-va.ibyteimg.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_100x100.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "http://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_720x720.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "", + "unique_id": "tri.scott", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "GB", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "en", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a", + "url_list": [ + "https://p16-va.tiktokcdn.com/img/musically-maliva-obj/ca431e9ab2bee1d94230ba8e3543850a~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAAQq58m31S-GAQ7zOvlqwAVJ39xsO_LwHgXYISlxlreKA1mPkDoQVbaBRYNBNKPMAz", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6777935271007619000, + "id_str": "6777935271007619074", + "title": "Surrender", + "author": "Natalie Taylor", + "album": "Surrender", + "cover_hd": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/5efc46e07eea49a7ba73288809806609.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6616921c9a2fb7a099e9872cadc75fb0.m4a", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/6616921c9a2fb7a099e9872cadc75fb0.m4a" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10033, + "start_time": 0, + "end_time": 0, + "duration": 60, + "extra": "{\"has_edited\":0,\"reviewed\":1,\"beats\":{\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218666896392\",\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218677436429\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218666860551\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1667218677471245\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6777935271007619074", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "strong_beat_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656528675791873", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/strong_beat/1656528675791873" + ], + "width": 720, + "height": 720 + }, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [], + "preview_start_time": 107.83, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": true, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "17709", + "cha_name": "kittens", + "desc": "", + "schema": "aweme://aweme/challenge/detail?cid=17709", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/17709?name=kittens&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=17709", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #kittens Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #kittens Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: kittens", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_2706639", + "data_size": 5192349 + }, + "cover": { + "uri": "tos-maliva-p-0068/d0831e54eff64fa4a5bd0d52352de277", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d0831e54eff64fa4a5bd0d52352de277~noop.webp?x-expires=1592658000&x-signature=w3sjgpghqGwkALCxAsdVCwr6QUo%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "tos-maliva-p-0068/dd81511378304c1e973c990dc5f383b7_1592423566", + "url_list": [ + "https://p16-tiktok-va.ibyteimg.com/obj/tos-maliva-p-0068/dd81511378304c1e973c990dc5f383b7_1592423566?x-expires=1592658000&x-signature=JVi%2BopJ8pIlo9VlyHmH4GxsOVJc%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "tos-maliva-p-0068/d92e9043395645b9a952afd8fbe8a653_1592423568", + "url_list": [ + "http://p16-tiktok-va.ibyteimg.com/tos-maliva-p-0068/d92e9043395645b9a952afd8fbe8a653_1592423568~noop.image?x-expires=1592658000&x-signature=lDbifvE9vrwcVNHm8ub%2FO2%2BgWmE%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5342737 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 2706639, + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_2706639", + "data_size": 5192349 + }, + "is_h265": 0 + }, + { + "gear_name": "lower_540", + "quality_type": 24, + "bit_rate": 1455703, + "play_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v09044e00000brl790gbiapcs9qmj0m0_h264_540p_1455703", + "data_size": 2792586 + }, + "is_h265": 0 + } + ], + "duration": 15347, + "download_suffix_logo_addr": { + "uri": "v09044e00000brl790gbiapcs9qmj0m0", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 5413811 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507407, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v09044e00000brl790gbiapcs9qmj0m0\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v09044e00000brl790gbiapcs9qmj0m0&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&quality_type=4&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":5519889}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6839407117871664390/?region=CN&mid=6777935271007619074&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839407117871664390", + "user_digged": 0, + "statistics": { + "aweme_id": "6839407117871664390", + "comment_count": 9173, + "digg_count": 426700, + "download_count": 24115, + "play_count": 9118163, + "share_count": 49199, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 22763 + }, + "status": { + "aweme_id": "6839407117871664390", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 39, + "end": 47, + "user_id": "6718768300996707334", + "type": 0, + "sec_uid": "MS4wLjABAAAA_-Y4Auotwdtok9sC0inkxtv4pOkZfQmZfxt-r_7iNpe_UJ0kvsn2CNAJS-glTroa" + }, + { + "start": 81, + "end": 89, + "type": 1, + "hashtag_name": "kittens", + "hashtag_id": "17709", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6839407117871664390/?region=CN&mid=6777935271007619074&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6839407117871664390", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out SCOTT 🔥 🔥 🔥’s video! #TikTok > ", + "share_desc": "Check out SCOTT 🔥 🔥 🔥's video! #TikTok", + "share_title": "Check out SCOTT 🔥 🔥 🔥’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15347, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6718992235998742000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "GB", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6839407117871664390", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "en", + "interaction_stickers": [ + { + "type": 5, + "index": 0, + "track_info": "[{\"x\":-28.2093,\"end_time\":9366.6667,\"p\":-1,\"y\":84.5312,\"h\":0.1105,\"start_time\":7333.3333,\"r\":0,\"w\":0.622,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 1, + "track_info": "[{\"x\":0,\"end_time\":2666.6667,\"p\":-1,\"y\":76.0035,\"h\":0.269,\"start_time\":166.6667,\"r\":0,\"w\":0.7569,\"s\":2.3519}]", + "attr": "" + }, + { + "type": 5, + "index": 2, + "track_info": "[{\"x\":-30.4684,\"end_time\":5666.6667,\"p\":-1,\"y\":86.4804,\"h\":0.1664,\"start_time\":2533.3333,\"r\":0,\"w\":0.7111,\"s\":1}]", + "attr": "" + }, + { + "type": 5, + "index": 3, + "track_info": "[{\"x\":-117.243,\"end_time\":5633.3333,\"p\":-1,\"y\":186.1506,\"h\":0.1056,\"start_time\":0,\"r\":0,\"w\":0.3854,\"s\":0.9559}]", + "attr": "" + }, + { + "type": 5, + "index": 4, + "track_info": "[{\"x\":70.7108,\"end_time\":13966.6667,\"p\":-1,\"y\":-260.9235,\"h\":0.1068,\"start_time\":6500,\"r\":0,\"w\":0.3898,\"s\":0.9669}]", + "attr": "" + } + ], + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": false, + "geofencing_regions": null + }, + { + "aweme_id": "6818716475365264642", + "desc": "눈감는거 진짜 너무 귀엽다구~~💕😆#뽕짝비트", + "create_time": 1587606150, + "author": { + "uid": "6624101169890639873", + "short_id": "31538989017", + "nickname": "최지원(Jiwon)", + "signature": "· 최지원 9살, 최주원 6살 + 아빠, 엄마\n· 관리는 엄마가 합니다.\n- 댓글은 거의 다 봐요❤️\n💖광고문의 soonent@daum.net", + "avatar_thumb": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tiktok-obj/1666369713957890.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_medium": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tiktok-obj/1666369713957890.webp" + ], + "width": 720, + "height": 720 + }, + "is_verified": true, + "follow_status": 0, + "is_block": false, + "location": "", + "hide_location": false, + "custom_verify": "인기 틱톡커", + "unique_id": "jiw_juw", + "story_count": 0, + "room_id": 0, + "authority_status": 0, + "verify_info": "", + "share_info": { + "share_url": "", + "share_weibo_desc": "", + "share_desc": "", + "share_title": "", + "share_qrcode_url": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "share_title_myself": "", + "share_title_other": "" + }, + "with_commerce_entry": false, + "verification_type": 1, + "enterprise_verify_reason": "", + "is_ad_fake": false, + "followers_detail": null, + "region": "KR", + "sync_to_toutiao": 0, + "commerce_user_level": 0, + "platform_sync_info": null, + "is_discipline_member": false, + "secret": 0, + "prevent_download": false, + "geofencing": null, + "video_icon": { + "uri": "", + "url_list": [], + "width": 720, + "height": 720 + }, + "comment_setting": 0, + "duet_setting": 0, + "download_setting": 3, + "cover_url": [ + { + "uri": "tiktok-obj/1613727517271041", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1613727517271041?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + } + ], + "language": "ko", + "item_list": null, + "has_unread_story": false, + "new_story_cover": null, + "is_star": false, + "type_label": [], + "ad_cover_url": null, + "comment_filter_status": 1, + "avatar_168x168": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666369713957890~c5_168x168.webp" + ], + "width": 720, + "height": 720 + }, + "avatar_300x300": { + "uri": "tiktok-obj/1666369713957890", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/img/tiktok-obj/1666369713957890~c5_300x300.webp" + ], + "width": 720, + "height": 720 + }, + "relative_users": null, + "cha_list": null, + "sec_uid": "MS4wLjABAAAADojbrID8PT6JiKZr888cyCGasWbtwo36WTQxRvCuO9rWNh8g5Pqg0ra8T8v09IGb", + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "music": { + "id": 6804093117843770000, + "id_str": "6804093117843770118", + "title": "Laxed (Siren Beat)", + "author": "Jawsh 685", + "album": "Laxed (Siren Beat)", + "cover_hd": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/1080x1080/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_large": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/720x720/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_medium": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/200x200/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "cover_thumb": { + "uri": "tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3", + "url_list": [ + "https://p16-tiktokcdn-com.akamaized.net/aweme/100x100/tos-alisg-i-0000/09fc0d58ccc34577928fdd1da36d0ba3.jpeg" + ], + "width": 720, + "height": 720 + }, + "play_url": { + "uri": "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3", + "url_list": [ + "http://sf-tk-sg.ibytedtos.com/obj/tiktok-obj/b02d7db7e88b595758f8e5b87c5380df.mp3" + ], + "width": 720, + "height": 720 + }, + "schema_url": "", + "source_platform": 10036, + "start_time": 0, + "end_time": 0, + "duration": 15, + "extra": "{\"apple_song_id\":1509920512,\"has_edited\":0,\"reviewed\":1,\"beats\":{\"beats_tracker\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353615373\",\"energy_trace\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349662733\",\"merged_beats\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295353668615\",\"audio_effect_onset\":\"http://p16-tiktokcdn-com.akamaized.net/tt-img/obj/ies-music/strong_beat/v3/1665295349691399\"},\"douyin_beats_info\":{},\"schedule_search_time\":0,\"hotsoon_review_time\":-1}", + "user_count": 0, + "position": null, + "collect_stat": 0, + "status": 1, + "offline_desc": "", + "owner_nickname": "", + "is_original": false, + "mid": "6804093117843770118", + "binded_challenge_id": 0, + "redirect": false, + "is_restricted": false, + "author_deleted": false, + "is_del_video": false, + "is_video_self_see": false, + "owner_handle": "", + "author_position": null, + "prevent_download": false, + "unshelve_countries": null, + "prevent_item_download_status": 0, + "external_song_info": [ + { + "h5_url": "", + "partner_name": "apple", + "partner_song_id": "1509920512", + "external_song_key": "apple_song_id" + } + ], + "preview_start_time": 71, + "preview_end_time": 0, + "is_commerce_music": false, + "is_original_sound": false, + "artists": null, + "lyric_short_position": null, + "mute_share": false, + "tag_list": null, + "is_author_artist": false, + "is_pgc": true + }, + "cha_list": [ + { + "cid": "1664466174753794", + "cha_name": "뽕짝비트", + "desc": "🤛⬆️ (뽕짝) 🤜⬆️ (뽕짝) ✋⬆️🤚~~~🎵\n왠지 모르게 흥얼흥얼 콧노래가 나올 것 같은 뽕짝한 음악에 맞춰 #뽕짝비트 춤춰 보자! 🙆", + "schema": "aweme://aweme/challenge/detail?cid=1664466174753794", + "author": { + "followers_detail": null, + "platform_sync_info": null, + "geofencing": null, + "cover_url": null, + "item_list": null, + "new_story_cover": null, + "type_label": null, + "ad_cover_url": null, + "relative_users": null, + "cha_list": null, + "need_points": null, + "homepage_bottom_toast": null, + "can_set_geofencing": null, + "white_cover_url": null + }, + "user_count": 0, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/challenge/1664466174753794?name=%EB%BD%95%EC%A7%9D%EB%B9%84%ED%8A%B8&u_code=0&language=en&_d=d29f81747l03gg&share_challenge_id=1664466174753794", + "share_weibo_desc": "This is becoming a big trend on TikTok now! #뽕짝비트 Join me and have fun! Tap here:", + "share_desc": "This is becoming a big trend on TikTok now! #뽕짝비트 Join me and have fun! Tap here:", + "share_title": "It is a becoming a big trend on TikTok now! Click here: 뽕짝비트", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "connect_music": [], + "type": 2, + "sub_type": 0, + "is_pgcshow": false, + "collect_stat": 0, + "is_challenge": 0, + "view_count": 0, + "is_commerce": false, + "hashtag_profile": "", + "cha_attrs": null, + "banner_list": null + } + ], + "video": { + "play_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025680000bqgf50c1a8b4ss0b7c70_h264_540p_805327", + "data_size": 1521565 + }, + "cover": { + "uri": "large/v0201/400c2d6b7ea24ea08061f99f857f63ba", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/400c2d6b7ea24ea08061f99f857f63ba.webp?x-expires=1592658000&x-signature=%2FwP0ZuC9xfqb1hLNZ9k6NZXWphE%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "height": 1280, + "width": 720, + "dynamic_cover": { + "uri": "v0201/4facabbe1c7e47a38f3449f8ee87020a_1587606154", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/obj/v0201/4facabbe1c7e47a38f3449f8ee87020a_1587606154?x-expires=1592658000&x-signature=8ho06DZsoPkkTx6G5RRfOzMmYLI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "origin_cover": { + "uri": "large/v0201/9c2ee2057d67416eae254f830b8c2523_1587606153", + "url_list": [ + "http://p16-tiktok-sg.ibyteimg.com/large/v0201/9c2ee2057d67416eae254f830b8c2523_1587606153.jpeg?x-expires=1592658000&x-signature=5MX4E1%2FnmUO3qDkZMth2h07d2BI%3D&l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "ratio": "540p", + "download_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1627831 + }, + "has_watermark": true, + "bit_rate": [ + { + "gear_name": "normal_540", + "quality_type": 20, + "bit_rate": 805327, + "play_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&media_type=4&vr_type=0&improve_bitrate=0&is_play_url=1&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "url_key": "v07025680000bqgf50c1a8b4ss0b7c70_h264_540p_805327", + "data_size": 1521565 + }, + "is_h265": 0 + } + ], + "duration": 15115, + "download_suffix_logo_addr": { + "uri": "v07025680000bqgf50c1a8b4ss0b7c70", + "url_list": [ + "https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_m_suffix&is_support_h265=0&source=PackSourceEnum_FEED" + ], + "width": 720, + "height": 720, + "data_size": 1696449 + }, + "has_download_suffix_logo_addr": true, + "is_h265": 0, + "cdn_url_expired": 1592507407, + "misc_download_addrs": "{\"snapchat\":{\"uri\":\"v07025680000bqgf50c1a8b4ss0b7c70\",\"url_list\":[\"https://api-h2.tiktokv.com/aweme/v1/play/?video_id=v07025680000bqgf50c1a8b4ss0b7c70&line=0&ratio=540p&watermark=1&media_type=4&vr_type=0&improve_bitrate=0&logo_name=tiktok_snapchat_suffix&is_support_h265=0&source=PackSourceEnum_FEED\"],\"width\":720,\"height\":720,\"data_size\":1767018}}\n" + }, + "share_url": "https://t.tiktok.com/i18n/share/video/6818716475365264642/?region=CN&mid=6804093117843770118&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6818716475365264642", + "user_digged": 0, + "statistics": { + "aweme_id": "6818716475365264642", + "comment_count": 5488, + "digg_count": 488650, + "download_count": 4472, + "play_count": 6334744, + "share_count": 7925, + "forward_count": 0, + "lose_count": 0, + "lose_comment_count": 0, + "whatsapp_share_count": 2447 + }, + "status": { + "aweme_id": "6818716475365264642", + "is_delete": false, + "allow_share": true, + "allow_comment": true, + "is_private": false, + "with_goods": false, + "private_status": 0, + "with_fusion_goods": false, + "in_reviewing": false, + "reviewed": 1, + "self_see": false, + "is_prohibited": false, + "download_status": 0 + }, + "rate": 12, + "text_extra": [ + { + "start": 21, + "end": 26, + "type": 1, + "hashtag_name": "뽕짝비트", + "hashtag_id": "1664466174753794", + "is_commerce": false + } + ], + "is_top": 0, + "label_top": { + "uri": "tiktok-obj/1598708589477025.PNG", + "url_list": [ + "http://p16-tiktokcdn-com.akamaized.net/obj/tiktok-obj/1598708589477025.PNG?l=202006181309510101152280680E23F803" + ], + "width": 720, + "height": 720 + }, + "share_info": { + "share_url": "https://t.tiktok.com/i18n/share/video/6818716475365264642/?region=CN&mid=6804093117843770118&u_code=0&preview_pb=0&language=en&_d=d29f81747l03gg&share_item_id=6818716475365264642", + "share_weibo_desc": "TikTok: Make Every Second CountCheck out 최지원(Jiwon)’s video! #TikTok > ", + "share_desc": "Check out 최지원(Jiwon)'s video! #TikTok", + "share_title": "Check out 최지원(Jiwon)’s video! #TikTok > ", + "bool_persist": 0, + "share_title_myself": "", + "share_title_other": "", + "share_link_desc": "", + "share_signature_url": "", + "share_signature_desc": "", + "share_quote": "" + }, + "distance": "", + "video_labels": [], + "is_vr": false, + "is_ads": false, + "duration": 15115, + "aweme_type": 0, + "is_fantasy": false, + "cmt_swt": false, + "image_infos": null, + "risk_infos": { + "vote": false, + "warn": false, + "risk_sink": false, + "type": 0, + "content": "" + }, + "is_relieve": false, + "sort_label": "_", + "position": null, + "uniqid_position": null, + "comment_list": null, + "author_user_id": 6624101169890640000, + "bodydance_score": 0, + "geofencing": [], + "is_hash_tag": 1, + "is_pgcshow": false, + "region": "KR", + "video_text": [], + "vr_type": 0, + "collect_stat": 0, + "label_top_text": null, + "promotions": null, + "group_id": "6818716475365264642", + "prevent_download": false, + "nickname_position": null, + "challenge_position": null, + "item_comment_settings": 0, + "with_promotional_music": false, + "xigua_task": { + "is_xigua_task": false + }, + "long_video": null, + "item_duet": 0, + "item_react": 0, + "desc_language": "ko", + "interaction_stickers": null, + "origin_comment_ids": null, + "commerce_config_data": null, + "distribute_type": 1, + "video_control": { + "allow_download": true, + "share_type": 1, + "show_progress_bar": 0, + "draft_progress_bar": 0, + "allow_duet": true, + "allow_react": true, + "prevent_download_type": 0, + "allow_dynamic_wallpaper": true, + "timer_status": 1, + "allow_music": true + }, + "has_vs_entry": false, + "need_vs_entry": false, + "anchors": null, + "hybrid_label": null, + "with_survey": true, + "geofencing_regions": null + } + ], + "home_model": 1, + "refresh_clear": 1, + "extra": { + "now": 1592485792000, + "fatal_item_ids": null + }, + "log_pb": { + "impr_id": "202006181309510101152280680E23F803" + }, + "preload_ads": [], + "preload_awemes": null +} \ No newline at end of file diff --git a/config.zh/resources.arsc b/config.zh/resources.arsc new file mode 100644 index 0000000..0568682 Binary files /dev/null and b/config.zh/resources.arsc differ diff --git a/df_fusing/AndroidManifest.xml b/df_fusing/AndroidManifest.xml new file mode 100644 index 0000000..e95b4ca Binary files /dev/null and b/df_fusing/AndroidManifest.xml differ diff --git a/df_fusing/META-INF/BNDLTOOL.RSA b/df_fusing/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..7dbbd01 Binary files /dev/null and b/df_fusing/META-INF/BNDLTOOL.RSA differ diff --git a/df_fusing/META-INF/BNDLTOOL.SF b/df_fusing/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..8799ecb --- /dev/null +++ b/df_fusing/META-INF/BNDLTOOL.SF @@ -0,0 +1,14 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: l3ZmJCNYUjni0a9g9M/xD3nC9DI= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: 9fasODjZmryISyd3SuosOzy+xoY= + +Name: classes.dex +SHA1-Digest: XYnJUenNBI0lsnCgckI96pGCefw= + +Name: resources.arsc +SHA1-Digest: u5GBFG16iSNYOZIs4SDfYQ6tu24= + diff --git a/df_fusing/META-INF/MANIFEST.MF b/df_fusing/META-INF/MANIFEST.MF new file mode 100644 index 0000000..c4a45bf --- /dev/null +++ b/df_fusing/META-INF/MANIFEST.MF @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: wcEedTfPWDM5Q/K7fGkZ/xnJV+Y= + +Name: classes.dex +SHA1-Digest: uzVk4EYBF0PPl30Tbb9oaIB5zPc= + +Name: resources.arsc +SHA1-Digest: MaSMuFUJ1LeyH6/DaAUblCeJp10= + diff --git a/df_fusing/classes.dex b/df_fusing/classes.dex new file mode 100644 index 0000000..72d0f4c Binary files /dev/null and b/df_fusing/classes.dex differ diff --git a/df_fusing/classes.jar b/df_fusing/classes.jar new file mode 100644 index 0000000..0afc656 Binary files /dev/null and b/df_fusing/classes.jar differ diff --git a/df_fusing/classes/com/ss/android/ugc/i18n/fusing/BuildConfig.java b/df_fusing/classes/com/ss/android/ugc/i18n/fusing/BuildConfig.java new file mode 100644 index 0000000..f7b02f8 --- /dev/null +++ b/df_fusing/classes/com/ss/android/ugc/i18n/fusing/BuildConfig.java @@ -0,0 +1,13 @@ +package com.ss.android.ugc.i18n.fusing; + +public final class BuildConfig { + public static final int VERSION_CODE = -1; + + public static final String VERSION_NAME = ""; +} + + +/* Location: C:\Users\august\Desktop\tik\df_fusing\classes.jar!\com\ss\androi\\ugc\i18n\fusing\BuildConfig.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_fusing/classes/com/ss/android/ugc/i18n/fusing/FusingPlaceHolder.java b/df_fusing/classes/com/ss/android/ugc/i18n/fusing/FusingPlaceHolder.java new file mode 100644 index 0000000..d9f7941 --- /dev/null +++ b/df_fusing/classes/com/ss/android/ugc/i18n/fusing/FusingPlaceHolder.java @@ -0,0 +1,36 @@ +package com.ss.android.ugc.i18n.fusing; + +import android.support.v4.app.Fragment; +import com.bytedance.apm.agent.v2.instrumentation.FragmentShowAgent; + +public class FusingPlaceHolder extends Fragment { + public static void test() { + System.out.println("do nothing"); + } + + public void onHiddenChanged(boolean paramBoolean) { + super.onHiddenChanged(paramBoolean); + FragmentShowAgent.onHiddenChanged(this, paramBoolean); + } + + public void onPause() { + super.onPause(); + FragmentShowAgent.onPause(this); + } + + public void onResume() { + super.onResume(); + FragmentShowAgent.onResume(this); + } + + public void setUserVisibleHint(boolean paramBoolean) { + super.setUserVisibleHint(paramBoolean); + FragmentShowAgent.setUserVisibleHint(this, paramBoolean); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_fusing\classes.jar!\com\ss\androi\\ugc\i18n\fusing\FusingPlaceHolder.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_fusing/resources.arsc b/df_fusing/resources.arsc new file mode 100644 index 0000000..8aa46e0 Binary files /dev/null and b/df_fusing/resources.arsc differ diff --git a/df_miniapp.config.arm64_v8a/AndroidManifest.xml b/df_miniapp.config.arm64_v8a/AndroidManifest.xml new file mode 100644 index 0000000..5f11827 Binary files /dev/null and b/df_miniapp.config.arm64_v8a/AndroidManifest.xml differ diff --git a/df_miniapp.config.arm64_v8a/META-INF/BNDLTOOL.RSA b/df_miniapp.config.arm64_v8a/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..e4d9002 Binary files /dev/null and b/df_miniapp.config.arm64_v8a/META-INF/BNDLTOOL.RSA differ diff --git a/df_miniapp.config.arm64_v8a/META-INF/BNDLTOOL.SF b/df_miniapp.config.arm64_v8a/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..63cb3c5 --- /dev/null +++ b/df_miniapp.config.arm64_v8a/META-INF/BNDLTOOL.SF @@ -0,0 +1,11 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: +H0QFF2oyUqGyBh7JjeOGWoikbE= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: Qmy34Y5mAErjidPH9r/m75HPA3U= + +Name: lib/arm64-v8a/libjsbinding-jsc.so +SHA1-Digest: /6Jx40zhC41k5Xw3lSNDBhyYR10= + diff --git a/df_miniapp.config.arm64_v8a/META-INF/MANIFEST.MF b/df_miniapp.config.arm64_v8a/META-INF/MANIFEST.MF new file mode 100644 index 0000000..7fbe821 --- /dev/null +++ b/df_miniapp.config.arm64_v8a/META-INF/MANIFEST.MF @@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: LQskqAYUNTPnOQeu0XOWEpGvvAA= + +Name: lib/arm64-v8a/libjsbinding-jsc.so +SHA1-Digest: wqpPcrLSEg4x8LCZHi0VHzaIBng= + diff --git a/df_miniapp.config.arm64_v8a/lib/arm64-v8a/libjsbinding-jsc.so b/df_miniapp.config.arm64_v8a/lib/arm64-v8a/libjsbinding-jsc.so new file mode 100644 index 0000000..f768cc1 Binary files /dev/null and b/df_miniapp.config.arm64_v8a/lib/arm64-v8a/libjsbinding-jsc.so differ diff --git a/df_miniapp.config.en/AndroidManifest.xml b/df_miniapp.config.en/AndroidManifest.xml new file mode 100644 index 0000000..23d3609 Binary files /dev/null and b/df_miniapp.config.en/AndroidManifest.xml differ diff --git a/df_miniapp.config.en/META-INF/BNDLTOOL.RSA b/df_miniapp.config.en/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..74946c8 Binary files /dev/null and b/df_miniapp.config.en/META-INF/BNDLTOOL.RSA differ diff --git a/df_miniapp.config.en/META-INF/BNDLTOOL.SF b/df_miniapp.config.en/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..b83d2b7 --- /dev/null +++ b/df_miniapp.config.en/META-INF/BNDLTOOL.SF @@ -0,0 +1,11 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: LNQU0uFDuz5ycJgHPms8UoxAkfQ= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: ZaV+jt6vI9PI4amFfv46iaWaQVI= + +Name: resources.arsc +SHA1-Digest: EkiubV1pqdBr4HlUYvJ2MFcdQ1o= + diff --git a/df_miniapp.config.en/META-INF/MANIFEST.MF b/df_miniapp.config.en/META-INF/MANIFEST.MF new file mode 100644 index 0000000..5d412ca --- /dev/null +++ b/df_miniapp.config.en/META-INF/MANIFEST.MF @@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: PUSuCd4HDP7GvC+hEQJ6u3md23E= + +Name: resources.arsc +SHA1-Digest: 6T11J95goIvuCcL04J8KYDRBVk4= + diff --git a/df_miniapp.config.en/resources.arsc b/df_miniapp.config.en/resources.arsc new file mode 100644 index 0000000..1bfafe9 Binary files /dev/null and b/df_miniapp.config.en/resources.arsc differ diff --git a/df_miniapp.config.xxxhdpi/AndroidManifest.xml b/df_miniapp.config.xxxhdpi/AndroidManifest.xml new file mode 100644 index 0000000..3391692 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/AndroidManifest.xml differ diff --git a/df_miniapp.config.xxxhdpi/META-INF/BNDLTOOL.RSA b/df_miniapp.config.xxxhdpi/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..b8403ed Binary files /dev/null and b/df_miniapp.config.xxxhdpi/META-INF/BNDLTOOL.RSA differ diff --git a/df_miniapp.config.xxxhdpi/META-INF/BNDLTOOL.SF b/df_miniapp.config.xxxhdpi/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..055879f --- /dev/null +++ b/df_miniapp.config.xxxhdpi/META-INF/BNDLTOOL.SF @@ -0,0 +1,131 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: j/2F2x7PvuFgTTC0YHBjG3xwj6U= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: F+w0kG/EYeCDCocEicFdq8nYmE4= + +Name: res/o/bq_.png +SHA1-Digest: sjdKNoVDOUihitK3Ywa2NJ+S5To= + +Name: res/o/bqb.png +SHA1-Digest: I4/sIOF8ZPMWjDd5SpyqUeCMNS4= + +Name: res/o/bqc.png +SHA1-Digest: 7+T+UFtmUqHeVU7lRGzUDW9uSVM= + +Name: res/o/bqd.png +SHA1-Digest: gD8MYdnfk9iUu3Qt+/g9eNXVvzw= + +Name: res/o/bqf.png +SHA1-Digest: 0FnpJRvW0cXVIFcPl7zxEyahd5w= + +Name: res/o/bqi.png +SHA1-Digest: EPMuST1ImhTgkX0zPBfBQEeRX0w= + +Name: res/o/bqk.png +SHA1-Digest: IDSLAGq99d70wEluVHNi4mIvwvU= + +Name: res/o/bql.png +SHA1-Digest: NLPz2oKg1ExH70YqfH0qbTyuGj4= + +Name: res/o/bqp.png +SHA1-Digest: JUm2mjNGAfnD2vCCJv9FnlJodjU= + +Name: res/o/bqq.png +SHA1-Digest: uDSIV77wn8XyGM51QWcaktevW70= + +Name: res/o/bqr.png +SHA1-Digest: SgDN5srk8sxazysz3Z10cLTXTOQ= + +Name: res/o/bqu.png +SHA1-Digest: rWasj+yoP2+gljVzPzUcCjHuSwU= + +Name: res/o/bqv.png +SHA1-Digest: cE7J5W0p3JbE1ZW8bYYPtjvz55M= + +Name: res/o/bqx.png +SHA1-Digest: BNu5j1KATm8ii01MDJAVoYYkETU= + +Name: res/o/bqz.png +SHA1-Digest: fFgARcw6xe61wWt4Ww9/twHNorI= + +Name: res/o/br1.png +SHA1-Digest: B6lhkwvUlmDVLNNjUuCSi1/4VtM= + +Name: res/o/br2.png +SHA1-Digest: UMOw7LuApvch/QVe4LUgS9H8lC8= + +Name: res/o/br3.png +SHA1-Digest: CjSeDDQDq/dkXhF8qe4P/rNKeGo= + +Name: res/o/br6.png +SHA1-Digest: CgiTGdweJRtMgNyeEIMzQjRanpk= + +Name: res/o/br9.png +SHA1-Digest: 3XkHmGQ1jXTzarMI9FNTxc/cTUw= + +Name: res/o/bra.png +SHA1-Digest: DEPt+hYwEBGK8IrUzzVwnMVLqOA= + +Name: res/o/brb.png +SHA1-Digest: 2Ba0AS3j3qasq2JyRYrhtNJgfQA= + +Name: res/o/brd.png +SHA1-Digest: N3IhK3WU1d9Nv6y+seDB+mt48mI= + +Name: res/o/bre.png +SHA1-Digest: mzqLoZ0qTOX70kwdRE7ceaDlQHA= + +Name: res/o/brf.png +SHA1-Digest: oc9ITja4PQLYfSr0Yo7H5I/vUdc= + +Name: res/o/brg.png +SHA1-Digest: r9asvUAGNUib4SmyXmLyI3lAzVE= + +Name: res/o/bri.png +SHA1-Digest: R1svIV//aGUgCuyvtnie2xdUMaE= + +Name: res/o/brk.png +SHA1-Digest: lPBOKNeIyi5jxTpyuBghYIQXRvo= + +Name: res/o/brn.png +SHA1-Digest: qABK3GUdj6ZGPTpZY+xAcD4/RDo= + +Name: res/o/bro.png +SHA1-Digest: WI3pJapRocSfgw9aNHZ/4GTjbtQ= + +Name: res/o/brp.png +SHA1-Digest: RVvvbZ5xThc5jdXikeoWnhDnSGc= + +Name: res/o/brv.png +SHA1-Digest: Wiunh55Ml1pKKunSLHF3TkkoXWA= + +Name: res/o/brw.png +SHA1-Digest: xTuv943FL/x7wXDu/OfyLc/NEiE= + +Name: res/o/brx.png +SHA1-Digest: KU4ZkC6+URBln95v9A3hV1TL1B4= + +Name: res/o/brz.png +SHA1-Digest: NOE9OK4zOgsVIzhJxg6WWg+fWxg= + +Name: res/o/bs0.png +SHA1-Digest: FGN3e7y9yGDzdeFDMsFIs/7mr3Y= + +Name: res/o/bs1.png +SHA1-Digest: C+JSU6vOnIH7Tq7jjJxw6dbLOwE= + +Name: res/o/bs2.png +SHA1-Digest: YCMeFuUn+pGNMIk5J3kToaRai7M= + +Name: res/o/bs6.png +SHA1-Digest: XfbSi0qESfKt3BU3j4sWFyEBzZ4= + +Name: res/o/bs8.png +SHA1-Digest: N8FtjqMO9+lbBFK96jU39rQLbWg= + +Name: resources.arsc +SHA1-Digest: t9EBtC7DI5gsZNa0j9lj5HFi//E= + diff --git a/df_miniapp.config.xxxhdpi/META-INF/MANIFEST.MF b/df_miniapp.config.xxxhdpi/META-INF/MANIFEST.MF new file mode 100644 index 0000000..41a3c70 --- /dev/null +++ b/df_miniapp.config.xxxhdpi/META-INF/MANIFEST.MF @@ -0,0 +1,130 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: 9r5Y8kduKHYefux4Y/SaFrXRuzk= + +Name: res/o/bq_.png +SHA1-Digest: CHRyRzbGzyd5KSnXn9aE00O0/OY= + +Name: res/o/bqb.png +SHA1-Digest: Qr3Dvyl4Bkz6AQOaaZaVNQ9h7zQ= + +Name: res/o/bqc.png +SHA1-Digest: Fa9OZhDO1FAiaP2U91/yrOYaGfY= + +Name: res/o/bqd.png +SHA1-Digest: bwISjS0hwZpYiSXTxoEabZkbSro= + +Name: res/o/bqf.png +SHA1-Digest: VnAgGpcmzQqvdXCBOKo2/YMjrUw= + +Name: res/o/bqi.png +SHA1-Digest: NXqjrR06a+CWJj/9S32K7P9HKPw= + +Name: res/o/bqk.png +SHA1-Digest: XWzxxIgXh9NWG6JV90tey1maJq0= + +Name: res/o/bql.png +SHA1-Digest: HyOP6n2UomaftPLTOpRtoIlGVK8= + +Name: res/o/bqp.png +SHA1-Digest: W5csfjk4TRuxWCSTic8EIc9xzJY= + +Name: res/o/bqq.png +SHA1-Digest: MKWkec33cSEuIpYNKfU+jR6DpAg= + +Name: res/o/bqr.png +SHA1-Digest: u0/VeBN+E5aYRLOnqxg/30Lqeg8= + +Name: res/o/bqu.png +SHA1-Digest: s+Nxt/QOZWlThwYKtY8HuFxrF1E= + +Name: res/o/bqv.png +SHA1-Digest: xGrL/C2YCPy3qopBRuMklIuh+98= + +Name: res/o/bqx.png +SHA1-Digest: 3TPcomHx4+LIwGu/rQNnpHKGPRQ= + +Name: res/o/bqz.png +SHA1-Digest: SjB3yrmIYYkGtnnIL8iINlc2HTo= + +Name: res/o/br1.png +SHA1-Digest: 6TyJ4bOWeUhMqj6CW/sBCEiUtFM= + +Name: res/o/br2.png +SHA1-Digest: CZvucAgGIpliBR712k6Lwmc4MNM= + +Name: res/o/br3.png +SHA1-Digest: eGtha6W89V0QPTuyd32Isco16jM= + +Name: res/o/br6.png +SHA1-Digest: 1KA9jDFKC1oEI/01xr5pZLaRFwA= + +Name: res/o/br9.png +SHA1-Digest: nGFZ2FGIYb0slLzpeJpHp9NOQAQ= + +Name: res/o/bra.png +SHA1-Digest: s2r0k8C1JkNLoJYRIXWhEL98yuI= + +Name: res/o/brb.png +SHA1-Digest: e0+OpKJ/E5lB1Ofot+rSzI3FbjQ= + +Name: res/o/brd.png +SHA1-Digest: IYaCp9VbSiQCF25xDf4Mj/0DP6Q= + +Name: res/o/bre.png +SHA1-Digest: Vayr+c61+NIVvhT603Qkjq8C4KM= + +Name: res/o/brf.png +SHA1-Digest: K0xfJ7yt7OzZSL1aJ5Zm3VBeLxY= + +Name: res/o/brg.png +SHA1-Digest: Dy649OgUCXXIpoliJchnfY1yaoQ= + +Name: res/o/bri.png +SHA1-Digest: AUZQaP5zfH8rvl+KL3rGilc85sA= + +Name: res/o/brk.png +SHA1-Digest: UoWQUkhbyv/hhWMz0NCuuDj+miw= + +Name: res/o/brn.png +SHA1-Digest: hsZaX5zdT5RGHte71I+dzVnuHXw= + +Name: res/o/bro.png +SHA1-Digest: Oxjjt5bp76hIKYFXRlmWoePC12U= + +Name: res/o/brp.png +SHA1-Digest: 4eehQSuJSFvl+2PC1+Tl7v133To= + +Name: res/o/brv.png +SHA1-Digest: 4LpSyLFzc+gLSHlfeIxv4fDlQ10= + +Name: res/o/brw.png +SHA1-Digest: BKFqpZ8l9+X5DmpgV0xyk0Xxpxs= + +Name: res/o/brx.png +SHA1-Digest: uwDEGjJkN1UDFQgm4lPxxzLQKDQ= + +Name: res/o/brz.png +SHA1-Digest: MDJ4+B9YyeE/pm1iJv8du5j7j8Q= + +Name: res/o/bs0.png +SHA1-Digest: 1YuP2XzmOVZAYmXbOEF2nad/cZQ= + +Name: res/o/bs1.png +SHA1-Digest: Cy1NIu2vwzruB4WGozZow0iRnWg= + +Name: res/o/bs2.png +SHA1-Digest: NAK0t2XYacu4OdJ8T3MzAM/wOA8= + +Name: res/o/bs6.png +SHA1-Digest: oPVfD7J61+DqVkhcYa6GGkOEFg0= + +Name: res/o/bs8.png +SHA1-Digest: hgyRAPLhNPXlgAsd0QJ6tHnokNM= + +Name: resources.arsc +SHA1-Digest: JvdYOirBf1j1WIzwCppeCganYRE= + diff --git a/df_miniapp.config.xxxhdpi/res/o/bq_.png b/df_miniapp.config.xxxhdpi/res/o/bq_.png new file mode 100644 index 0000000..bf8a578 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bq_.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqb.png b/df_miniapp.config.xxxhdpi/res/o/bqb.png new file mode 100644 index 0000000..bf717f1 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqb.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqc.png b/df_miniapp.config.xxxhdpi/res/o/bqc.png new file mode 100644 index 0000000..8b6ac6a Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqc.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqd.png b/df_miniapp.config.xxxhdpi/res/o/bqd.png new file mode 100644 index 0000000..d129db5 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqd.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqf.png b/df_miniapp.config.xxxhdpi/res/o/bqf.png new file mode 100644 index 0000000..e70cd55 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqf.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqi.png b/df_miniapp.config.xxxhdpi/res/o/bqi.png new file mode 100644 index 0000000..db629c5 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqi.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqk.png b/df_miniapp.config.xxxhdpi/res/o/bqk.png new file mode 100644 index 0000000..7d9c023 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqk.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bql.png b/df_miniapp.config.xxxhdpi/res/o/bql.png new file mode 100644 index 0000000..46fe7b4 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bql.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqp.png b/df_miniapp.config.xxxhdpi/res/o/bqp.png new file mode 100644 index 0000000..100595f Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqp.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqq.png b/df_miniapp.config.xxxhdpi/res/o/bqq.png new file mode 100644 index 0000000..a7b83ff Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqq.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqr.png b/df_miniapp.config.xxxhdpi/res/o/bqr.png new file mode 100644 index 0000000..c1a15f6 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqr.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqu.png b/df_miniapp.config.xxxhdpi/res/o/bqu.png new file mode 100644 index 0000000..09f5789 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqu.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqv.png b/df_miniapp.config.xxxhdpi/res/o/bqv.png new file mode 100644 index 0000000..72c5934 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqv.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqx.png b/df_miniapp.config.xxxhdpi/res/o/bqx.png new file mode 100644 index 0000000..1427808 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqx.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bqz.png b/df_miniapp.config.xxxhdpi/res/o/bqz.png new file mode 100644 index 0000000..e61a790 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bqz.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/br1.png b/df_miniapp.config.xxxhdpi/res/o/br1.png new file mode 100644 index 0000000..a0e5ec2 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/br1.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/br2.png b/df_miniapp.config.xxxhdpi/res/o/br2.png new file mode 100644 index 0000000..d5994b0 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/br2.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/br3.png b/df_miniapp.config.xxxhdpi/res/o/br3.png new file mode 100644 index 0000000..df078e0 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/br3.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/br6.png b/df_miniapp.config.xxxhdpi/res/o/br6.png new file mode 100644 index 0000000..09c9276 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/br6.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/br9.png b/df_miniapp.config.xxxhdpi/res/o/br9.png new file mode 100644 index 0000000..c2f02aa Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/br9.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bra.png b/df_miniapp.config.xxxhdpi/res/o/bra.png new file mode 100644 index 0000000..6406d3d Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bra.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brb.png b/df_miniapp.config.xxxhdpi/res/o/brb.png new file mode 100644 index 0000000..2ce0db2 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brb.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brd.png b/df_miniapp.config.xxxhdpi/res/o/brd.png new file mode 100644 index 0000000..4be01a8 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brd.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bre.png b/df_miniapp.config.xxxhdpi/res/o/bre.png new file mode 100644 index 0000000..6313bc1 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bre.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brf.png b/df_miniapp.config.xxxhdpi/res/o/brf.png new file mode 100644 index 0000000..d67f68b Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brf.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brg.png b/df_miniapp.config.xxxhdpi/res/o/brg.png new file mode 100644 index 0000000..5415554 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brg.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bri.png b/df_miniapp.config.xxxhdpi/res/o/bri.png new file mode 100644 index 0000000..2208b90 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bri.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brk.png b/df_miniapp.config.xxxhdpi/res/o/brk.png new file mode 100644 index 0000000..1e19ba9 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brk.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brn.png b/df_miniapp.config.xxxhdpi/res/o/brn.png new file mode 100644 index 0000000..e0a8b11 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brn.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bro.png b/df_miniapp.config.xxxhdpi/res/o/bro.png new file mode 100644 index 0000000..5f5d59c Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bro.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brp.png b/df_miniapp.config.xxxhdpi/res/o/brp.png new file mode 100644 index 0000000..32ed16b Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brp.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brv.png b/df_miniapp.config.xxxhdpi/res/o/brv.png new file mode 100644 index 0000000..85dff8e Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brv.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brw.png b/df_miniapp.config.xxxhdpi/res/o/brw.png new file mode 100644 index 0000000..a7d1693 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brw.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brx.png b/df_miniapp.config.xxxhdpi/res/o/brx.png new file mode 100644 index 0000000..52b77d2 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brx.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/brz.png b/df_miniapp.config.xxxhdpi/res/o/brz.png new file mode 100644 index 0000000..9888b4d Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/brz.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bs0.png b/df_miniapp.config.xxxhdpi/res/o/bs0.png new file mode 100644 index 0000000..483ec83 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bs0.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bs1.png b/df_miniapp.config.xxxhdpi/res/o/bs1.png new file mode 100644 index 0000000..bce24ba Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bs1.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bs2.png b/df_miniapp.config.xxxhdpi/res/o/bs2.png new file mode 100644 index 0000000..5966022 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bs2.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bs6.png b/df_miniapp.config.xxxhdpi/res/o/bs6.png new file mode 100644 index 0000000..ea1b62a Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bs6.png differ diff --git a/df_miniapp.config.xxxhdpi/res/o/bs8.png b/df_miniapp.config.xxxhdpi/res/o/bs8.png new file mode 100644 index 0000000..8392eb7 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/res/o/bs8.png differ diff --git a/df_miniapp.config.xxxhdpi/resources.arsc b/df_miniapp.config.xxxhdpi/resources.arsc new file mode 100644 index 0000000..f1f35c5 Binary files /dev/null and b/df_miniapp.config.xxxhdpi/resources.arsc differ diff --git a/df_miniapp/AndroidManifest.xml b/df_miniapp/AndroidManifest.xml new file mode 100644 index 0000000..1aee2a8 Binary files /dev/null and b/df_miniapp/AndroidManifest.xml differ diff --git a/df_miniapp/META-INF/BNDLTOOL.RSA b/df_miniapp/META-INF/BNDLTOOL.RSA new file mode 100644 index 0000000..8d9d556 Binary files /dev/null and b/df_miniapp/META-INF/BNDLTOOL.RSA differ diff --git a/df_miniapp/META-INF/BNDLTOOL.SF b/df_miniapp/META-INF/BNDLTOOL.SF new file mode 100644 index 0000000..6b7f6f7 --- /dev/null +++ b/df_miniapp/META-INF/BNDLTOOL.SF @@ -0,0 +1,830 @@ +Signature-Version: 1.0 +Created-By: 1.0 (Android) +SHA1-Digest-Manifest: 0GvlgZ/3FN24eOfRkkWEw/0ufOA= +X-Android-APK-Signed: 2 + +Name: AndroidManifest.xml +SHA1-Digest: 3FNJ8WLz2a94S1P8cWDy4896m5E= + +Name: assets/error-page.html +SHA1-Digest: nXH+hJpx6+7+g+pSCmCgck+LEi8= + +Name: assets/preloadTemplate.html +SHA1-Digest: TC7vosL+3pHqh7SZFOmAxWmABqk= + +Name: assets/public1024.der +SHA1-Digest: i7riniLlqjSANlE0cYW5xIuRP7A= + +Name: assets/webview.js +SHA1-Digest: INeL89lvP1Mpmg8MFHKziXB99U0= + +Name: classes.dex +SHA1-Digest: JC7Tfc8KyMWhRt8ZW/JnKHddAw0= + +Name: res/a/e6.xml +SHA1-Digest: 8KmJrN3C5+iUGejmx/vkCcl/4rc= + +Name: res/a/e7.xml +SHA1-Digest: Vd0DhNrGUDKAL+Ckn9/US8MmPTk= + +Name: res/a/e8.xml +SHA1-Digest: v1L8s3Pz6zK731B2K/niBVO/85M= + +Name: res/a/e9.xml +SHA1-Digest: sg/ROK0mPr+2/nXSL1uxfT1jwtY= + +Name: res/a/e_.xml +SHA1-Digest: ssPBNACU75IWjP64Gcet9RTjOUs= + +Name: res/a/ea.xml +SHA1-Digest: FHIbgfcD4IMxHT6JClP/DhGKSpY= + +Name: res/a/eb.xml +SHA1-Digest: /yrxqcRWIKI24RDsus0jaz16GbU= + +Name: res/a/ec.xml +SHA1-Digest: Tf4QN/osVgVwvPs3FmoLJedgQEo= + +Name: res/a/ed.xml +SHA1-Digest: rByZlDi5KvZ4FeS4XuQHHZZnlxQ= + +Name: res/a/ee.xml +SHA1-Digest: ZEki5JHS5l9fMkxNQby03VcsV4s= + +Name: res/a/ef.xml +SHA1-Digest: wTBJDA8iXh4BhF32a3e/wzLScAU= + +Name: res/a/eg.xml +SHA1-Digest: v8zzM7FjOCEPc1/5TTN1OOgbliE= + +Name: res/a/eh.xml +SHA1-Digest: 2Snnv3+72TMfpAXz/V28WLwtqD0= + +Name: res/a/ei.xml +SHA1-Digest: 4LpY9CI5QqwWaWV0cpS2CnGNyWI= + +Name: res/a/ej.xml +SHA1-Digest: CEmBMrys6s+rdCoOHsuAzDLlGuQ= + +Name: res/a/ek.xml +SHA1-Digest: rKAJcA6qIWak2ZDG2s+0tszh66c= + +Name: res/a/el.xml +SHA1-Digest: ND51GCbh122BcThBMCdK2IqLz/g= + +Name: res/a/em.xml +SHA1-Digest: oLgwxpN15Fb6l7XYO5R2jYqvPT0= + +Name: res/a/en.xml +SHA1-Digest: +u9e+vu6Dp2SN32tI8smt9oIYmM= + +Name: res/a/eo.xml +SHA1-Digest: KU+dtkGbezmKKnx5OU+fBoGut2A= + +Name: res/a/ep.xml +SHA1-Digest: BCX9MLFPK5Vq06ytEwolVlqkALU= + +Name: res/a/eq.xml +SHA1-Digest: VBwTkFsF3gvDLjAzSKVIGhKiWGc= + +Name: res/a7/b5p.xml +SHA1-Digest: Gdq1J5lsqE0bPBuMuFV9UQkgcy4= + +Name: res/a7/b5q.xml +SHA1-Digest: OlQiV3NqV5HPFPFVTuRBpThMyEo= + +Name: res/a7/b5r.xml +SHA1-Digest: cLZGbqB6Ra3FYcWFCluQeCj7ATQ= + +Name: res/a7/b5s.xml +SHA1-Digest: ZEr8rUmUZEbbjIUs0BOUYTsWj0Y= + +Name: res/a7/b5t.xml +SHA1-Digest: VUmKtcVPnkgzS/il1DgyebIBuFs= + +Name: res/a7/b5u.xml +SHA1-Digest: ZTNkpCnfj5hVWxa7oc1EGqo0U6g= + +Name: res/a7/b5v.xml +SHA1-Digest: ESRu1fvvG7G1qFLhXrvUvFQVm4I= + +Name: res/a7/b5w.xml +SHA1-Digest: ojw1B1PPT6VhU4oayeMdn5bkFTE= + +Name: res/a7/b5x.xml +SHA1-Digest: wqFTnbxc+J2kXQaOZKhKL/Vdn5Y= + +Name: res/a7/b5y.xml +SHA1-Digest: I5c6Iql0cuoVRKhF0pXVYmEePsI= + +Name: res/a7/b5z.xml +SHA1-Digest: HAj+Tzkp0/InmJgJbvXHP3SaVp4= + +Name: res/a7/b60.xml +SHA1-Digest: tmpv4GLjFt59TsXaF352zDz45/I= + +Name: res/a7/b61.xml +SHA1-Digest: tSFa25LiDTeEnn2s9hoOmaTlrj4= + +Name: res/a7/b62.xml +SHA1-Digest: 1pGCCf/5U+u4sslSIPBJVCdMS28= + +Name: res/a7/b63.xml +SHA1-Digest: B8vYdsoRQLhzRtwBeRFf7JgXjrg= + +Name: res/a7/b64.xml +SHA1-Digest: hSXwJgYt8UJUk1z5rZ4Zoaz19Xo= + +Name: res/a7/b65.xml +SHA1-Digest: q2ZrDhVDbjzwhYcIJumLIKFk1eg= + +Name: res/a7/b66.xml +SHA1-Digest: nQufN5oWvV+PhIMQpw+iL50M7NI= + +Name: res/a7/b67.xml +SHA1-Digest: pfCfAQogLDjQcP29ZP1IXONBQ20= + +Name: res/a7/b68.xml +SHA1-Digest: 0EHpKgDHxv97oiM+z+NunV68wEE= + +Name: res/a7/b69.xml +SHA1-Digest: lEfGTSNAQaa/LtG2thu+DB+dPaU= + +Name: res/a7/b6_.xml +SHA1-Digest: Imu2K8KtdoDbYSigOzmy+rbypAY= + +Name: res/a7/b6a.xml +SHA1-Digest: 733/1ZnsDxK7tQyduBZwuKl1NZY= + +Name: res/a7/b6b.xml +SHA1-Digest: qQj5UEKeLZ+dep/mVrv9ZCVdv84= + +Name: res/a7/b6c.xml +SHA1-Digest: iWZzWLtddMSIpi3Nl8oKuFT0bg0= + +Name: res/a7/b6d.xml +SHA1-Digest: Auqa4e1kqmyvP6peqpAQ8VFTDO8= + +Name: res/a7/b6e.xml +SHA1-Digest: AenrhlCuQWyfIH5natigIpAsptw= + +Name: res/a7/b6f.xml +SHA1-Digest: uxV6/xAuZvjKOA2SBSxzExzQshM= + +Name: res/a7/b6g.xml +SHA1-Digest: Bqt60uktUI5bIQUQn0s0NPiL4UI= + +Name: res/a7/b6h.xml +SHA1-Digest: tFfBpV5tGt3Rfhkte5eRf+F1LDY= + +Name: res/a7/b6i.xml +SHA1-Digest: ZBmOGr38g18E9VykHAS9ursOUFo= + +Name: res/a7/b6j.xml +SHA1-Digest: JeqmIfFhWVZjDuy2nLSAhSiIcZw= + +Name: res/a7/b6k.xml +SHA1-Digest: JtiXj1/Ve+NSMk2ibSFX+BTr1Os= + +Name: res/a7/b6l.xml +SHA1-Digest: LfPhVhkgz0/IDXLix/Ox0vA2boU= + +Name: res/a7/b6m.xml +SHA1-Digest: MPRCAOnDmDn3BJ2bL7yHMjFjDsM= + +Name: res/a7/b6n.xml +SHA1-Digest: xFt0Ev1+6aRh/s/mL9WH/CQKoEs= + +Name: res/a7/b6o.xml +SHA1-Digest: t8TcpBemCZOPDwr//swhDjbn1RY= + +Name: res/a7/b6p.xml +SHA1-Digest: tKBNDwJOyItI3rUAdVMbnUnVnfo= + +Name: res/a7/b6q.xml +SHA1-Digest: CPudeYjieFPhgSywBChHNhheGSQ= + +Name: res/a7/b6r.xml +SHA1-Digest: K2iZqW+q3l2yA/6Jz5iFufLNGyo= + +Name: res/a7/b6s.xml +SHA1-Digest: Plm29CWEeK27q+enhQBGgKb6gvQ= + +Name: res/a7/b6t.xml +SHA1-Digest: SJ1pwYr/Tpe4qC1RfRL6H3ZyVJw= + +Name: res/a7/b6u.xml +SHA1-Digest: g8bNd8k1NZOXnC6w6bigS5kQ7jQ= + +Name: res/a7/b6v.xml +SHA1-Digest: fGzfHZns/U5jBDBF8lEbsVI7GME= + +Name: res/a7/b6w.xml +SHA1-Digest: jyKySUltfUwmNpuGOSKq2H1KU6k= + +Name: res/a7/b6x.xml +SHA1-Digest: Ov7BbqjT5ggGq9Glm3ROWI9Xe1E= + +Name: res/a7/b6y.xml +SHA1-Digest: 9vhruhL8/7vocz/FKQU103nTI4w= + +Name: res/a7/b6z.xml +SHA1-Digest: DPJjd0BgoC74IEHXGj2WgvUmKRU= + +Name: res/a7/b70.xml +SHA1-Digest: dKSH6iJAz+/ll2ciRuHmEQtXpQU= + +Name: res/a7/b71.xml +SHA1-Digest: 9dMnytA+Q/69H/OD+NytbHXy/7k= + +Name: res/a7/b72.xml +SHA1-Digest: F6fshU/1MT/RWaHxTnUTxBplgyA= + +Name: res/a7/b73.xml +SHA1-Digest: P2O+rRqqd87SFCdaCU/pMnhsy8M= + +Name: res/a7/b74.xml +SHA1-Digest: vr4oED+SP/SbstOEUJOFzxUIJ4g= + +Name: res/a7/b75.xml +SHA1-Digest: am+NNuqgfF9VUO7kvifWbSw4mpw= + +Name: res/a7/b76.xml +SHA1-Digest: Rpf6hgnyDdFF2IuTEXAGg91NZq4= + +Name: res/a7/b77.xml +SHA1-Digest: W0pbImsUS06uCUApxCpv5mD6RtY= + +Name: res/a7/b78.xml +SHA1-Digest: HZo/SyfqkclKdiA3VL2dfiyvKjE= + +Name: res/a7/b79.xml +SHA1-Digest: /UZob4sq4IZu0vU6iwFYlZaI+pk= + +Name: res/a7/b7_.xml +SHA1-Digest: wj4jbOCgUi+6Acvtc/56C6cr1HI= + +Name: res/a7/b7a.xml +SHA1-Digest: YvA98b4BrXJXlowTeIgGm/TdnFM= + +Name: res/a7/b7b.xml +SHA1-Digest: vvPjn06Sw1xbylkenu8m5DFhMps= + +Name: res/a7/b7c.xml +SHA1-Digest: 09b2FSB866B4GIksGFhro/Lpv5k= + +Name: res/a7/b7d.xml +SHA1-Digest: WO1G++dMa78e+KIRbli76hY5zUY= + +Name: res/a7/b7e.xml +SHA1-Digest: GcKBwN1Z2vFoFH1iuHjuaZKFULQ= + +Name: res/a7/b7f.xml +SHA1-Digest: SNT5XDgnLmsVPE2gKL6gFKyy7lg= + +Name: res/a7/b7g.xml +SHA1-Digest: LiT2rEzaxVtYE7docx3HzTkSkv0= + +Name: res/a7/b7h.xml +SHA1-Digest: I2RC2dfK4IcpO0YexD9XhUvilV0= + +Name: res/a7/b7i.xml +SHA1-Digest: cPKE3RyQh0sGoxNlMnMg5/I1Uwk= + +Name: res/a7/b7j.xml +SHA1-Digest: x9slOBCeNYu4+Ap2p9FoLpg2T6g= + +Name: res/a7/b7k.xml +SHA1-Digest: J4tHn8whkcK6TzKTFmbLNzAIoi0= + +Name: res/a7/b7l.xml +SHA1-Digest: WAJgqDh/X6zypxCLL28xAmpyeUA= + +Name: res/a7/b7m.xml +SHA1-Digest: 9BQLAAB4tEVuxmZUeUZpC85dK6Y= + +Name: res/a7/b7n.xml +SHA1-Digest: AC1RI0Pe6Yjpm/JLlOHPyfcFh5Q= + +Name: res/a7/b7o.xml +SHA1-Digest: m9wGEvUQmUDK9R+NfRZPFFYvnfk= + +Name: res/a7/b7p.xml +SHA1-Digest: LaS5eGtgNritg3bZaE3Ahr/Z7KU= + +Name: res/a7/b7q.xml +SHA1-Digest: Q8DqqHPRViE1LJCt4RZreBJVy0A= + +Name: res/a8/ap3.xml +SHA1-Digest: YUkXu3l2DuoWKH/wzQ5i3G3YpyI= + +Name: res/a8/ap4.xml +SHA1-Digest: cxs7OjCSoEJW21YR58pJ6Pqpf9w= + +Name: res/a8/ap5.xml +SHA1-Digest: lr/E1bWNngYIOzfcSEUv6l4zdbQ= + +Name: res/a8/ap6.xml +SHA1-Digest: N99Tly82Fh8LSJMlEfwEmyvRKqI= + +Name: res/a8/ap7.xml +SHA1-Digest: 0IMpFOHGhKU1Af0QPsGvhQEvO1Y= + +Name: res/a8/ap8.xml +SHA1-Digest: /MPffPu5Tgp9mUiiJuX7o6FGYoQ= + +Name: res/a8/ap9.xml +SHA1-Digest: puwXj3Gs7Kh7S/JKRsBKTDIQIOU= + +Name: res/a8/ap_.xml +SHA1-Digest: 2+Pd5cKhT6oFs4uRqkrOVHtWQhs= + +Name: res/a8/apa.xml +SHA1-Digest: 9wvugDpRgUrJO09cW2SgGzEp+W0= + +Name: res/a8/apb.xml +SHA1-Digest: BhKF0S1dDNwYJ7QwJaj9Sx4B/xM= + +Name: res/a8/apc.xml +SHA1-Digest: bcjwHz2PyQaw66itVbZil6dQffU= + +Name: res/a8/apd.xml +SHA1-Digest: dYMzCMQbQkSqfBr0RmxdKlJgh7Q= + +Name: res/a8/ape.xml +SHA1-Digest: hbPGVe4XY+2h4pHPz8hcg9oGkVQ= + +Name: res/a8/apf.xml +SHA1-Digest: d1pLRtHS/m90GBQ8vu25DX0rg64= + +Name: res/a8/apg.xml +SHA1-Digest: zmKluN8TuThhjWhTOmlAcCi+qJI= + +Name: res/a8/aph.xml +SHA1-Digest: I9CPgvt8dnhPLzLgqdU/rjXIqyI= + +Name: res/a8/api.xml +SHA1-Digest: KB2s3dpCTK9o0cgM68uPwFGIBPY= + +Name: res/a8/apj.xml +SHA1-Digest: VCWgezvpUsNuxtnlOe2AJyY0Azs= + +Name: res/a8/apk.xml +SHA1-Digest: 81Y4gsAL8N+1MXHFVqDh6TbRZCA= + +Name: res/a8/apl.xml +SHA1-Digest: T/xZzotFb+4Fy+6jX7cVgNuiYAA= + +Name: res/a8/apm.xml +SHA1-Digest: /fzyCj5U2xmLkaB45oGhrkW7Z7Y= + +Name: res/a8/apn.xml +SHA1-Digest: 4Ymfd9qZHIMSzPkOsA4bKU0CI3c= + +Name: res/a8/apo.xml +SHA1-Digest: P4TOddCywLLuwJJqDRr6npsARpc= + +Name: res/a8/app.xml +SHA1-Digest: and3jCqJIkpNdL9GiYFmbDO82Mc= + +Name: res/a8/apq.xml +SHA1-Digest: f1DV/ob0Tf5b5pZS7oN0yJpWUJA= + +Name: res/a8/apr.xml +SHA1-Digest: NA32s1+6B4M8t/l0nob+B647ZOU= + +Name: res/a8/aps.xml +SHA1-Digest: qeWivjuiW+Ydx2WbrjHeBRg2O4w= + +Name: res/a8/apt.xml +SHA1-Digest: eyMqlj2Ek4b/RBixdGG+0Jt7gLA= + +Name: res/a8/apu.xml +SHA1-Digest: AxZq6eDxOX0isV0peRt4YDheCCI= + +Name: res/a8/apv.xml +SHA1-Digest: KwEEvxyDeZRes1zzlbsjbqnQCSA= + +Name: res/a8/apw.xml +SHA1-Digest: Umhi6lQaWrgSIYQ5ENXwFKkjrG4= + +Name: res/a8/apx.xml +SHA1-Digest: Eywxkl/QF6S9szhnETrbIs6cWZ0= + +Name: res/a8/apy.xml +SHA1-Digest: b+/wDhS5by3+1JH+xN2NekIHsug= + +Name: res/a8/apz.xml +SHA1-Digest: eM6bFsCjDZon6GXRtxUHJkroLBY= + +Name: res/a8/aq0.xml +SHA1-Digest: IGicwbVYyzZ2TqCtxZJbwj7yJLE= + +Name: res/a8/aq1.xml +SHA1-Digest: WSHytluqSBpvYBmBE8W6QKJ6//c= + +Name: res/a8/aq2.xml +SHA1-Digest: b7bEssvLkxd2rTVjamIe+OkDj9s= + +Name: res/a8/aq3.xml +SHA1-Digest: YXr5ZgflvkAybnTQ6Tc8QDLzVXY= + +Name: res/a8/aq4.xml +SHA1-Digest: ZUmfE6RHTB6IUk/bJEdxkcd/qFw= + +Name: res/a8/aq5.xml +SHA1-Digest: +lBYxqMIcHLkEAZqFWf+uLy+QNk= + +Name: res/a8/aq6.xml +SHA1-Digest: w+B1oNJTM/HkRwduHvH5ht45xiY= + +Name: res/a8/aq7.xml +SHA1-Digest: 5cugu/PhXtT1hDm1Z9VnpPcj2PU= + +Name: res/a8/aq8.xml +SHA1-Digest: 3FUuAQnE0x8JZqRoY+Cz6Eu803I= + +Name: res/a8/aq9.xml +SHA1-Digest: mjwciQ1J0goWD2oStYz9bbDJgzo= + +Name: res/a8/aq_.xml +SHA1-Digest: YzieNL7ilgTL76BHuGe7ph0JyEk= + +Name: res/a8/aqa.xml +SHA1-Digest: g1z669AROx9g71atoFLN7whv+p4= + +Name: res/aa/av.xml +SHA1-Digest: u2Idvor5JO7+pEoKwHIshEo+jdE= + +Name: res/aa/aw.xml +SHA1-Digest: ZCuiWVWpUA6CbMtDS7O/SzWMTZY= + +Name: res/aa/ax.xml +SHA1-Digest: P7SyMMWGl1G2wBOboa2ZNrJLb9o= + +Name: res/aa/ay.xml +SHA1-Digest: f7R4fC2L7RbwC0k4VmovnRL7PiA= + +Name: res/aa/az.xml +SHA1-Digest: oP/b+V8YLt6s+J1YnVyCsXKXxco= + +Name: res/aa/b0.xml +SHA1-Digest: VH1h/KmVZAdSlN8qabeLwK0iCak= + +Name: res/aa/b1.xml +SHA1-Digest: sBtDoAOAlQDuXnherRyIGPcQIDI= + +Name: res/ad/c.xml +SHA1-Digest: 9V5Od/8lre8x7gncaE1/EoukxhU= + +Name: res/ad/d.xml +SHA1-Digest: e+ntAUYDCSZT7TyOOr0NSZcdbwk= + +Name: res/ad/e.xml +SHA1-Digest: Yt3dvKpXG69W1gxRXnvjPT7oisE= + +Name: res/ad/f.xml +SHA1-Digest: hgjQ1qkA3pl/QqSabicXjJTiv2U= + +Name: res/aq/l.xml +SHA1-Digest: evqj7CBzlQqxQ2SZ2qL4dI6xmTI= + +Name: res/au/c.xml +SHA1-Digest: ACkBQuML7Y2+a5RUNN2usAreofg= + +Name: res/au/d.xml +SHA1-Digest: ZYZ6gBLPsvIz6ZHfixswTim+UGE= + +Name: res/au/e.xml +SHA1-Digest: tPF6iRbBv9KIZYdTEiBy3QGMaSM= + +Name: res/au/f.xml +SHA1-Digest: 4mCglTcrcHFWvfcRj81uqMzlRMM= + +Name: res/au/g.xml +SHA1-Digest: vO7A68JgBGYIoTXUv3acOJr+roE= + +Name: res/g/bk.xml +SHA1-Digest: 3hV0OiG5+/yuhNXBcpYLfEhXK7k= + +Name: res/g/bl.xml +SHA1-Digest: Uig3J17IvL7EoFo3RAFM+AnqSTU= + +Name: res/g/bm.xml +SHA1-Digest: XAek/bnRIVYLNkZZm1bSeJxyXbs= + +Name: res/n/he.png +SHA1-Digest: jVZ7H9kRsD4773sC6EE+c6ey0nk= + +Name: res/n/hh.png +SHA1-Digest: cp/jv09dCcf77WpJD2FaVT+luBU= + +Name: res/n/hj.png +SHA1-Digest: WVy52HMeEzXxLpSOiV8u0Ufc/4Q= + +Name: res/n/ho.png +SHA1-Digest: 38ctb+bz6Ombjh3NxFiOb/uHrT8= + +Name: res/n/hq.png +SHA1-Digest: 64zShpbyXiuTsZwinWEflmo2Sdg= + +Name: res/n/hr.png +SHA1-Digest: BQDuo9NUca01BWdzs//oBTX9eIY= + +Name: res/n/hs.png +SHA1-Digest: TzhysgMmZ5bslEYalnzKDKjt5gQ= + +Name: res/n/hu.png +SHA1-Digest: ykMZ8gkNUkHyQMu33it8Zwb5yIk= + +Name: res/n/hx.9.png +SHA1-Digest: CEZoi+UdOIK99vnb3ex0FVcm6ko= + +Name: res/n/i1.9.png +SHA1-Digest: UalYg37gY7piqdP8Om5rf0o0GAQ= + +Name: res/n/i6.png +SHA1-Digest: O6Es6ZfWVJCiFK5Nv+vn/SXY5FU= + +Name: res/n/i7.png +SHA1-Digest: tLXCRrgSY/lRWxjqzoGUf3iH6A0= + +Name: res/n/ib.png +SHA1-Digest: BKrz415yBHZlbzvrvD+lCvLES/o= + +Name: res/n/ic.png +SHA1-Digest: 7f8uLVnM2WEOMUpuzajeIH2G31c= + +Name: res/n/if.9.png +SHA1-Digest: 7YKa1NloiPo5tcsGVysA3O/6fSc= + +Name: res/n/ig.png +SHA1-Digest: cu4MMx+3Fxrk1/IM3oLgzv4q7j4= + +Name: res/n/ij.png +SHA1-Digest: hm6wLlE/xAPEzL4a5qXNUd9qF6A= + +Name: res/n/im.png +SHA1-Digest: gMfiwlmW4N+AkOhXaWwUD81lbTQ= + +Name: res/n/iq.png +SHA1-Digest: zni6lGZLDVxa7Tc9+cIE8Kg4RwM= + +Name: res/n/ir.png +SHA1-Digest: /V9PqfQzIpzHWHsS9Pk3pUL0c5s= + +Name: res/n/iy.9.png +SHA1-Digest: YcyRvPPsBnQ6677cea5SoYDulNI= + +Name: res/n/iz.png +SHA1-Digest: gny/RebTL9RhPUyL+3URDGmrzAI= + +Name: res/n/j1.png +SHA1-Digest: lifZ3jmM4ZYW2hZZ0E02zpIpUTE= + +Name: res/n/j2.png +SHA1-Digest: 0p5ZvxuqpqonmJPdG4G29aLAawM= + +Name: res/n/j3.xml +SHA1-Digest: dXqInBWfw/1QyYm2QZGUFmOOVh8= + +Name: res/n/j5.png +SHA1-Digest: Pbpjx3cPdnRnNyI6x/szrlLg3Iw= + +Name: res/o/bqa.png +SHA1-Digest: WfWyn5lfcpQqc4XpKEX/n559Uhc= + +Name: res/o/bqe.png +SHA1-Digest: O3UXYL6cnNyz/MUNxr0NqvPOHeI= + +Name: res/o/bqg.png +SHA1-Digest: tbtqM9DMi7r7SRlfWSMQrY+C+qg= + +Name: res/o/bqh.png +SHA1-Digest: +efDRkieCoFsr6/7vg7uu/XpFl8= + +Name: res/o/bqj.png +SHA1-Digest: anFQicstY/BNK5yais30teLusxk= + +Name: res/o/bqm.png +SHA1-Digest: YKS004nOU2wtnx0Sc9K0RV9cWpg= + +Name: res/o/bqn.png +SHA1-Digest: +xLZX7IHTR8QZ3AsndixopcC+vI= + +Name: res/o/bqo.png +SHA1-Digest: /3e+ttNtofCgRs4YiZwhUdYAKbM= + +Name: res/o/bqs.png +SHA1-Digest: pY/BmoLXBBMNUCzvm9p6hytmoic= + +Name: res/o/bqt.png +SHA1-Digest: wLohkpNxbFWo6qMZNxt5C4fKqHg= + +Name: res/o/bqw.png +SHA1-Digest: hCPZ3ydtxbevVOOT7OyhWhNpdMA= + +Name: res/o/bqy.png +SHA1-Digest: JL8HY02pAhmcnYgiflPdTQkP+RQ= + +Name: res/o/br0.png +SHA1-Digest: esAYuIvBjzMxrLJ/6k5CcQvMNxU= + +Name: res/o/br4.png +SHA1-Digest: k86kxZnL+8QlzaFKm7wISwhDfCQ= + +Name: res/o/br5.png +SHA1-Digest: x/zy+0x0VokqVzYD3GsSVNf3l74= + +Name: res/o/br7.png +SHA1-Digest: TYCuSxaf8oXaQb+vSlBxjSpLwO8= + +Name: res/o/br8.png +SHA1-Digest: NvnrvzAFBCNP2W3jlrRveDnJr8I= + +Name: res/o/br_.png +SHA1-Digest: nP6fIf7aXaL9rngBvQYuUVqNql4= + +Name: res/o/brc.png +SHA1-Digest: hCFufXoaM/EOnMf8LI+68d5SPYc= + +Name: res/o/brh.png +SHA1-Digest: xtslC24vMFvLboNlpsULNcacKS8= + +Name: res/o/brj.png +SHA1-Digest: rIHFlMKJP1cxW7wOjMcQArgXt7A= + +Name: res/o/brl.png +SHA1-Digest: cLOBTKwx6Y4hA5DMESIMgn2wib0= + +Name: res/o/brm.png +SHA1-Digest: RegSkbxGA0Vy68vRu81hnF+AuOw= + +Name: res/o/brq.png +SHA1-Digest: 6CPuxr2zmUkvtr6heeD0M7m+f6g= + +Name: res/o/brr.png +SHA1-Digest: zO9nCJanf0+IcAncBA0bEZtXJtQ= + +Name: res/o/brs.png +SHA1-Digest: gvjP4tR35m3sc1Qp8YB6HdVhs2o= + +Name: res/o/brt.png +SHA1-Digest: MW6ZfVpUhfeYTEMkKnsL9fwnEas= + +Name: res/o/bru.png +SHA1-Digest: 2tOBvPUKK+4d1Gk61sQba3+mLuU= + +Name: res/o/bry.png +SHA1-Digest: jbop3PeCYqaBKtr9mAzQz18gjlU= + +Name: res/o/bs3.png +SHA1-Digest: fie3Oa8ISw0lg0WU74myPJ3ru40= + +Name: res/o/bs4.png +SHA1-Digest: /P4tiFL4L+VsQvCXanPcJezUmqo= + +Name: res/o/bs5.png +SHA1-Digest: Ot6U7Xmivwr9gg4m4lHmbmLFPAI= + +Name: res/o/bs7.png +SHA1-Digest: EBpCaO6elcWfSO1bOpcV3PUdtZw= + +Name: res/o/bs9.png +SHA1-Digest: YY08LYGqsjZPIPCfFY97SJakD7o= + +Name: res/p/apl.xml +SHA1-Digest: 0M1hqPLmQCZTQ6IgIrYJbCQQAAw= + +Name: res/p/apm.xml +SHA1-Digest: FH9RiB9C9yXZXT3+g23dcZYHlK8= + +Name: res/p/apn.xml +SHA1-Digest: zjl5n+ZFIu59+LM1XEElX93fuiI= + +Name: res/p/apo.xml +SHA1-Digest: eQaF3x4GhCYBsAsKGozCB7FdTEg= + +Name: res/p/app.xml +SHA1-Digest: z8b6Phmuyy+mB0Ov6zo322ZHen8= + +Name: res/p/apq.xml +SHA1-Digest: qIZragHxjQnAqbqxzo9iyWrJTLc= + +Name: res/p/apr.xml +SHA1-Digest: 67wThXTbeAOEN97VgHr+22/nIz8= + +Name: res/p/aps.xml +SHA1-Digest: IK/8fVJbWEJeBfFsDjrqFP1s/VM= + +Name: res/p/apt.xml +SHA1-Digest: v227e3f84yp77hXEXmmadG22YvU= + +Name: res/p/apu.png +SHA1-Digest: ThDxcEfa5dwNYXqvLaEvK3/WCXo= + +Name: res/p/apv.xml +SHA1-Digest: 2YS087XsfdGBHZlQspT555tOy1o= + +Name: res/p/apw.xml +SHA1-Digest: Qapi9B2NBAyCfZrwOG9GUy1bjY0= + +Name: res/p/apx.xml +SHA1-Digest: whhyMb0BoBkxJ4D7a7yVgcbVrsM= + +Name: res/p/apy.xml +SHA1-Digest: bpzvFWHmIZ+SBl2r09gJM0IckWc= + +Name: res/p/apz.xml +SHA1-Digest: L3T5lVTqOuV3HHr4KJHQ5i38TZk= + +Name: res/p/aq0.xml +SHA1-Digest: KU4qPEWSCoPbwIsOWhOksruyV74= + +Name: res/p/aq1.xml +SHA1-Digest: 1zBa3/pfdwd1dGnuHbuKmenQvV4= + +Name: res/p/aq2.xml +SHA1-Digest: lzX5ABa7jRxNJR90mOwtnboa9RA= + +Name: res/p/aq3.png +SHA1-Digest: rXjjFcD2IP1QrLyvzKf3GrWLpIg= + +Name: res/p/aq4.xml +SHA1-Digest: +/Fhr/KB+A8add9sa2GwGiATnu0= + +Name: res/p/aq5.xml +SHA1-Digest: Jfr/l/7yq+iOV9yU0v0Wi80obmc= + +Name: res/p/aq6.xml +SHA1-Digest: UhN81+CrGyLsZ6Os3VqGQopUuAE= + +Name: res/p/aq7.xml +SHA1-Digest: HMABldmozAx0/jdqbr7giveUROM= + +Name: res/p/aq8.xml +SHA1-Digest: pyES79LyDIGY7KZTPi3SeDIdT2g= + +Name: res/p/aq9.xml +SHA1-Digest: uewSEGexxvuecy5vP2WrPk3ai10= + +Name: res/p/aq_.xml +SHA1-Digest: VkuF3QIwHDCJx5Tvzpu3c3CYPrI= + +Name: res/p/aqa.xml +SHA1-Digest: sDdwaU6IVMkPyjxvTiTqDbEUbtU= + +Name: res/p/aqb.xml +SHA1-Digest: 82ur0Xa10CXfMwaNOW02hYvxh6s= + +Name: res/p/aqc.png +SHA1-Digest: I9xj0XdyOQx5zRGQjLQtbF/diuU= + +Name: res/p/aqd.xml +SHA1-Digest: qortthq/5xcnR8brhMz7su9IcwM= + +Name: res/p/aqe.xml +SHA1-Digest: P9nUI5/2xqeI2NaZqH47fQi8Xfk= + +Name: res/p/aqf.xml +SHA1-Digest: Kwytt9zdmWH5fzBocNa95N7qrG8= + +Name: res/p/aqg.xml +SHA1-Digest: dTS9sRXaY6kRZX4ul2t9SsrQ5+c= + +Name: res/p/aqh.xml +SHA1-Digest: kRGAIKhacz6vk5jJb86NgBZWlF8= + +Name: res/p/aqi.xml +SHA1-Digest: nsUU6I0exoC3u94wbHbq2NjR170= + +Name: res/p/aqj.xml +SHA1-Digest: k9AvZiZirfcD7VWf8MLsFE5e4dA= + +Name: res/p/aqk.xml +SHA1-Digest: UaS73BGok2dp4B0TDq6Zv27QVyk= + +Name: res/p/aql.xml +SHA1-Digest: g3OtOkcJ0F6q7FbIB9bYKCf60RM= + +Name: res/p/aqm.xml +SHA1-Digest: 08DxpVmfgUzlmgzeNE0tGzDpzKs= + +Name: res/p/aqn.xml +SHA1-Digest: zbqSyQURXYG+CDKjzYKZKWgxgZU= + +Name: res/p/aqo.9.png +SHA1-Digest: efZ2n9/dXdrRIRe6ki0XIqab3Q0= + +Name: res/p/aqp.xml +SHA1-Digest: 2c1No9d598+6d6JDSW6hP5kW40U= + +Name: res/p/aqq.xml +SHA1-Digest: SlEHd8Jl8sEyBYWh6VaI0VnA7m4= + +Name: res/p/aqr.xml +SHA1-Digest: 2VCc5jNvA56pYSfbaU4WBgB1fdY= + +Name: resources.arsc +SHA1-Digest: lxLHt9Y59Jug0AFLwthuz36Js1I= + diff --git a/df_miniapp/META-INF/MANIFEST.MF b/df_miniapp/META-INF/MANIFEST.MF new file mode 100644 index 0000000..f748929 --- /dev/null +++ b/df_miniapp/META-INF/MANIFEST.MF @@ -0,0 +1,829 @@ +Manifest-Version: 1.0 +Built-By: BundleTool +Created-By: BundleTool + +Name: AndroidManifest.xml +SHA1-Digest: +bLyiRsZEoC+YmfAhdmMaMLRB84= + +Name: assets/error-page.html +SHA1-Digest: pJSprzz2l7Yyw/tgqmTVPGwulyU= + +Name: assets/preloadTemplate.html +SHA1-Digest: o+1yQxvCZ0uul4tZ/n0ilReIT/U= + +Name: assets/public1024.der +SHA1-Digest: sXyUAHA/o1KbSTKIN0N/y3KO1W0= + +Name: assets/webview.js +SHA1-Digest: olVK0meQJllMPHjuQ4QEeRuYdn4= + +Name: classes.dex +SHA1-Digest: 4RBI3X4mevLUK8gzYbIUkOQrFgE= + +Name: res/a/e6.xml +SHA1-Digest: adhnzMNW9/wO8RgcdVzGhvebNO8= + +Name: res/a/e7.xml +SHA1-Digest: qBPUnRFeTP3dR0CJl6STA/5xgkU= + +Name: res/a/e8.xml +SHA1-Digest: VgO0DIHpqQNgPmBSYqP1B7H+a44= + +Name: res/a/e9.xml +SHA1-Digest: c/LVxqjtkQflgInsqXZr+m6KTFw= + +Name: res/a/e_.xml +SHA1-Digest: dgEnARWsRxD3dmzxolVienyxZ5o= + +Name: res/a/ea.xml +SHA1-Digest: G9GlBwlgyC1Ud1s5w6BcKvzUULQ= + +Name: res/a/eb.xml +SHA1-Digest: Cb6UJCiR1iHexoFZ6vXivXrenBo= + +Name: res/a/ec.xml +SHA1-Digest: xfwHa9ZKnQNn//lPcbE81Va/7rM= + +Name: res/a/ed.xml +SHA1-Digest: jwMUs/+Henoep6kScxXwyHIdilE= + +Name: res/a/ee.xml +SHA1-Digest: k/65p6U5PZt55N0px+pk1F++GsA= + +Name: res/a/ef.xml +SHA1-Digest: +SjN34bWm8zikqEn7ihFzTthxdo= + +Name: res/a/eg.xml +SHA1-Digest: gcOkksbpHUQTcut7XD2PYO3rl6k= + +Name: res/a/eh.xml +SHA1-Digest: Qqn9aUbw/K37x3nCx67+hzgO1yg= + +Name: res/a/ei.xml +SHA1-Digest: gL34GjzStKrazMKXXvf3JXusOHg= + +Name: res/a/ej.xml +SHA1-Digest: JqEcTuIwT/c1fEmUlas2PD6tTLM= + +Name: res/a/ek.xml +SHA1-Digest: Gdo1Krecyr36slrj+Xys32vmIT0= + +Name: res/a/el.xml +SHA1-Digest: WOHfIIJncsRUzTHlvnyWi1e/a8U= + +Name: res/a/em.xml +SHA1-Digest: 2Ko3+XjIEqN4KdyoR/s79Yi2coU= + +Name: res/a/en.xml +SHA1-Digest: tB0CJ9R44wVBFjq0jZDKE8fxSuM= + +Name: res/a/eo.xml +SHA1-Digest: nv83dM/how4h6l/+geI1Z7BERDQ= + +Name: res/a/ep.xml +SHA1-Digest: Uf8twqMtEU2WS+xyLy2N4mDF3zo= + +Name: res/a/eq.xml +SHA1-Digest: ayMN//6+6aGppGD6kGyWrUVIDKU= + +Name: res/a7/b5p.xml +SHA1-Digest: +NrYITpWMAYfmMRv1L6deshfRS0= + +Name: res/a7/b5q.xml +SHA1-Digest: M38mAoQjG2b0TC9H3Q+Oh9XerIU= + +Name: res/a7/b5r.xml +SHA1-Digest: Qj8vEDNpEsrqRMiLHoTjBC2YVeY= + +Name: res/a7/b5s.xml +SHA1-Digest: aXoqdtEVyiMmTpC1j9/n6lMFxkQ= + +Name: res/a7/b5t.xml +SHA1-Digest: 1fmE+jUTkHDu8o8zFiwfF5Fe/xs= + +Name: res/a7/b5u.xml +SHA1-Digest: k3CgoShXnhl3I7IHuG527wYHG7A= + +Name: res/a7/b5v.xml +SHA1-Digest: oERlWZ6eyhpEfoxoKuDnSlqjxOk= + +Name: res/a7/b5w.xml +SHA1-Digest: 9ZYjVekoPo/90yxUlVS+tsvXm6w= + +Name: res/a7/b5x.xml +SHA1-Digest: mB2oKITSiLM8k5vGk8VOuUk/ZTQ= + +Name: res/a7/b5y.xml +SHA1-Digest: pgInww1lMLX0+Sr1vSDwsD0OMyk= + +Name: res/a7/b5z.xml +SHA1-Digest: FuWhK6ueeHeJ0d73yQHEdk+ZL/k= + +Name: res/a7/b60.xml +SHA1-Digest: PjW8InR6vBfAiybc4EQ0x7nLacE= + +Name: res/a7/b61.xml +SHA1-Digest: efyj7twfU3x9HRImrCgiAAh5MOY= + +Name: res/a7/b62.xml +SHA1-Digest: 6ysgFg4G1qQcxcb95XfVYoNr3tw= + +Name: res/a7/b63.xml +SHA1-Digest: EhFKV3DAMN0swvXgfQRaH33PgUs= + +Name: res/a7/b64.xml +SHA1-Digest: fLS6kNQei39D6r3UophUoOcw1ZM= + +Name: res/a7/b65.xml +SHA1-Digest: 1jsqbogepB47klRB7Wo+Hmc19xk= + +Name: res/a7/b66.xml +SHA1-Digest: SC1kvMiKhMkCohVB07L1J6gDv6M= + +Name: res/a7/b67.xml +SHA1-Digest: WmQtQqWMmUDCyHNzguNYL+kwCIE= + +Name: res/a7/b68.xml +SHA1-Digest: vpVr5VTK6Goy+5rEw2Sftofl7yE= + +Name: res/a7/b69.xml +SHA1-Digest: 7IYr8CNkekexuFhY47X1ophbzng= + +Name: res/a7/b6_.xml +SHA1-Digest: Z+SJvFvo+XaawkWlZyctAjmt5rM= + +Name: res/a7/b6a.xml +SHA1-Digest: jPmWRHwV9Burv9nGJLwoB81LJ/Q= + +Name: res/a7/b6b.xml +SHA1-Digest: uZffa3a8NdGhRG//v5MRbl+rxR4= + +Name: res/a7/b6c.xml +SHA1-Digest: WVNmZSGcDpU3inuhNY+aByP1Vwg= + +Name: res/a7/b6d.xml +SHA1-Digest: onvfShEZDansRASh2DE0Hnx8bYI= + +Name: res/a7/b6e.xml +SHA1-Digest: K7hN4GR63OcFWoWo4e4UW0P1EEw= + +Name: res/a7/b6f.xml +SHA1-Digest: +jUcjX7l106G8a7OcbvER0+nAQ0= + +Name: res/a7/b6g.xml +SHA1-Digest: 77sgKCFUiOPN8wgXhYAY8Qsh0uw= + +Name: res/a7/b6h.xml +SHA1-Digest: CjCSXZNCUNdWgbVWz3XRoZNym18= + +Name: res/a7/b6i.xml +SHA1-Digest: GHvqjFxDmbhznNkleB4qRj4TBBI= + +Name: res/a7/b6j.xml +SHA1-Digest: pTJL9OJ4KGY00xerVnIsD/MyyZY= + +Name: res/a7/b6k.xml +SHA1-Digest: TlGd2QORAVM2IPxHygftpynDWWY= + +Name: res/a7/b6l.xml +SHA1-Digest: YuUk/SpnNa5JL5R2aEhnFJINPQY= + +Name: res/a7/b6m.xml +SHA1-Digest: Xpg1cSXCoj8/31IEwaV0UKtWUAs= + +Name: res/a7/b6n.xml +SHA1-Digest: G5y9Lm0n1G1oaMi9vANWO8RwyAo= + +Name: res/a7/b6o.xml +SHA1-Digest: BTHSAqCnH0F3H5buJJukyTmNyLU= + +Name: res/a7/b6p.xml +SHA1-Digest: 0alzz392P5m9PkZx8kXtbpyyNfY= + +Name: res/a7/b6q.xml +SHA1-Digest: HRXZggj4tvHMjJ003nTntl9Dp6o= + +Name: res/a7/b6r.xml +SHA1-Digest: 91hDMNuKnVCYeoPnLu4FhzBU7M4= + +Name: res/a7/b6s.xml +SHA1-Digest: 0LHvXglNrAobZ5aRrYB0FfWxbes= + +Name: res/a7/b6t.xml +SHA1-Digest: Zt7lOSF2CoQ5knvFu70H2ybtTjQ= + +Name: res/a7/b6u.xml +SHA1-Digest: 37K8F6JXHanL3XGp06izm9LDf00= + +Name: res/a7/b6v.xml +SHA1-Digest: Xf+EeARTbYXKDCJiGvzYTj21HZA= + +Name: res/a7/b6w.xml +SHA1-Digest: p+E05tB7NhpFkkPSCOK9pOcjFkg= + +Name: res/a7/b6x.xml +SHA1-Digest: 9Nd7T2OO8OWf8JrrxcafpNxj/ZI= + +Name: res/a7/b6y.xml +SHA1-Digest: 9dvbnG5U12eZWCP/GfnhHEb1sB4= + +Name: res/a7/b6z.xml +SHA1-Digest: QqymDQHSz5O+nCfwLzw3m8jPDBg= + +Name: res/a7/b70.xml +SHA1-Digest: rHY026LZcpoWRLVWpw/s4gf9wIs= + +Name: res/a7/b71.xml +SHA1-Digest: Hwao4TCKRLhZNNwIhTxhSTlhYhw= + +Name: res/a7/b72.xml +SHA1-Digest: FHKehpteA537ZvGXEwiffWqGBQo= + +Name: res/a7/b73.xml +SHA1-Digest: +kBEGHHIOj7yK6wpyyERfp13HVg= + +Name: res/a7/b74.xml +SHA1-Digest: Rb8GMhE0+nb1JU4PGCHoEUT/ty0= + +Name: res/a7/b75.xml +SHA1-Digest: J9mOTytB4H6HIaL4WzAPDvHQ0RY= + +Name: res/a7/b76.xml +SHA1-Digest: pxFhMEH2gDvoyCQfBammb+5bF14= + +Name: res/a7/b77.xml +SHA1-Digest: GaLimFVH45LKRYj7a4+jxrN95Qg= + +Name: res/a7/b78.xml +SHA1-Digest: fabNh4Chduqqxjb48Mk4Qw0YZ1E= + +Name: res/a7/b79.xml +SHA1-Digest: Ip2NbpFH6KbGtyzloNASmq3a4XQ= + +Name: res/a7/b7_.xml +SHA1-Digest: ytBhDW6FyXjSJhZYymooxtAYwvk= + +Name: res/a7/b7a.xml +SHA1-Digest: qxNTvKxSN8cBBjKCu+DqXSnLCpE= + +Name: res/a7/b7b.xml +SHA1-Digest: WtrLxwc94cqnn3xIm51L93j6vks= + +Name: res/a7/b7c.xml +SHA1-Digest: wiLM/C2GoPQ7pbJ3Od/aZaYhA9I= + +Name: res/a7/b7d.xml +SHA1-Digest: 8wOAISaoqZq7t2wuhMk5XPG/ODA= + +Name: res/a7/b7e.xml +SHA1-Digest: gSN3rYC4VA7DCTCdWWUeHaJrtNo= + +Name: res/a7/b7f.xml +SHA1-Digest: 2jEtilw0NZDqNx15Ev+4a0aaX4U= + +Name: res/a7/b7g.xml +SHA1-Digest: CKykIl4ZxCbwf0UrNsNpnVBQKE4= + +Name: res/a7/b7h.xml +SHA1-Digest: AjyvvTVwMY2sVPfY8XgzPRUOmbw= + +Name: res/a7/b7i.xml +SHA1-Digest: pD6LclGZYcMWtptUl3aIBCE1KGE= + +Name: res/a7/b7j.xml +SHA1-Digest: 3g7opbK2mqF+1ym5y16DHtO8KP4= + +Name: res/a7/b7k.xml +SHA1-Digest: JBGcx141w5g0f4pRVs/cVKaHYf0= + +Name: res/a7/b7l.xml +SHA1-Digest: Ym3DhflUR8spxWs7oNoFRtmfXQY= + +Name: res/a7/b7m.xml +SHA1-Digest: HyzHF1f5PvcQ+BEh66AdzxNf23I= + +Name: res/a7/b7n.xml +SHA1-Digest: Ws+mmgyvC6ePVtEuqLYOp9UaiBw= + +Name: res/a7/b7o.xml +SHA1-Digest: T9vdsF3f0I9XcTNneioNiP0YMe0= + +Name: res/a7/b7p.xml +SHA1-Digest: fPmUwgEfGCzCqFcDyq9zZIm+Q8o= + +Name: res/a7/b7q.xml +SHA1-Digest: jq6bT+uHXLjMcbWAdieLcqCkOdc= + +Name: res/a8/ap3.xml +SHA1-Digest: SGW+6dTFGrtf5X0eJ+/GjEjXuck= + +Name: res/a8/ap4.xml +SHA1-Digest: 9g34fOx4b1G059TOHHJenTLiKt0= + +Name: res/a8/ap5.xml +SHA1-Digest: lFYKB7TJRPTUf8cCmW1kMrEO4Dc= + +Name: res/a8/ap6.xml +SHA1-Digest: LXuzfeurj76vyxBf+AYSPV8mcjw= + +Name: res/a8/ap7.xml +SHA1-Digest: rqo3E+3G1lCSPKnmiVkTpLkXbL0= + +Name: res/a8/ap8.xml +SHA1-Digest: mmH7KBNty6KCm9bgb95qGzHbZlM= + +Name: res/a8/ap9.xml +SHA1-Digest: YEogr2Q5+oxj+M6+wusIb4lAjxo= + +Name: res/a8/ap_.xml +SHA1-Digest: WBR24+k4JNIGGIBfp/GHwIKSvm4= + +Name: res/a8/apa.xml +SHA1-Digest: V117caQ1mhuX9qfejGDVTV50uoc= + +Name: res/a8/apb.xml +SHA1-Digest: wT0PQ2T5dhpcK29WsZFLSe/eTeg= + +Name: res/a8/apc.xml +SHA1-Digest: NJO5lN+YQCEE3xKpMS50+8bbAc8= + +Name: res/a8/apd.xml +SHA1-Digest: cYNIdlHBOgAAkRQkgGPJs/liqTc= + +Name: res/a8/ape.xml +SHA1-Digest: DYdQ9c8RnK4NJiniKbWfJvux2iw= + +Name: res/a8/apf.xml +SHA1-Digest: IAjX5hnsvXnLzJ9ZPE3LL5sDt0A= + +Name: res/a8/apg.xml +SHA1-Digest: ilGg6VyvE3eHt9naNcSOTp3ROMk= + +Name: res/a8/aph.xml +SHA1-Digest: 5pac0hgFLn7hzLPph+FFH2Arefw= + +Name: res/a8/api.xml +SHA1-Digest: xkAS3b3eCPIqWpl4PSH9StZ8k/I= + +Name: res/a8/apj.xml +SHA1-Digest: OlCTlfMYJN5jqoMTASb51SODuIg= + +Name: res/a8/apk.xml +SHA1-Digest: +S/HlXg0VSb0x2Hsc7/LYGcEfhU= + +Name: res/a8/apl.xml +SHA1-Digest: UgqXlS7JD1FQj7cjTCKv8aJgv+8= + +Name: res/a8/apm.xml +SHA1-Digest: vx9JnPjN0wNgQ3yYtrjfHy0g/yg= + +Name: res/a8/apn.xml +SHA1-Digest: xtFa1TU2/yfLuFLdLXOp2Vgfj2U= + +Name: res/a8/apo.xml +SHA1-Digest: YDo8F/A0nySwdQoQjWjNlorgYBI= + +Name: res/a8/app.xml +SHA1-Digest: 1ZTPJtyDG45774zj+j2qvNMan8s= + +Name: res/a8/apq.xml +SHA1-Digest: 1CX3X34oUEwhS4kBbwJohJS4F5s= + +Name: res/a8/apr.xml +SHA1-Digest: oVhvXpTqI1YZprV604SwYlZmAY0= + +Name: res/a8/aps.xml +SHA1-Digest: EwP6VPmWQYT/snqCxjcSh/t06n0= + +Name: res/a8/apt.xml +SHA1-Digest: 0pc1/c+J0CT9YH1s4NjLU+i0Ic8= + +Name: res/a8/apu.xml +SHA1-Digest: fn2ZJjfG236O+B+IH8dLA7nLXL0= + +Name: res/a8/apv.xml +SHA1-Digest: C2Sz4PLFRAvqVhwob2+LAPMuyOU= + +Name: res/a8/apw.xml +SHA1-Digest: v5cth56bpIrkh2EA7BQAPp3DTe0= + +Name: res/a8/apx.xml +SHA1-Digest: 8mTBmD+aIfvMlY33MRsOEgo38eA= + +Name: res/a8/apy.xml +SHA1-Digest: qcDFxyrF6tAvOoCNd3bcIyJDglk= + +Name: res/a8/apz.xml +SHA1-Digest: aDg9Rmxb10D2I9qWOfucUTtdFjQ= + +Name: res/a8/aq0.xml +SHA1-Digest: z24k8aAwDPRHIR9qG1F34pjpCbU= + +Name: res/a8/aq1.xml +SHA1-Digest: GxAcHJI0awgixuSnuIkAopX1r3o= + +Name: res/a8/aq2.xml +SHA1-Digest: kEDitCa1BvbkFT7LgHaCzeTgWOU= + +Name: res/a8/aq3.xml +SHA1-Digest: zIvbQNc4XzSOzirEfuzxcfIcmLM= + +Name: res/a8/aq4.xml +SHA1-Digest: QJKW6VYt7IL8WdbMye2SVEe4A28= + +Name: res/a8/aq5.xml +SHA1-Digest: dtRrUjdh8Te4RmCngJ+tT6Ka1E4= + +Name: res/a8/aq6.xml +SHA1-Digest: fDecelNshnslcj6DhhZWPamlXEc= + +Name: res/a8/aq7.xml +SHA1-Digest: qVfVSI5BzRbFCq/Xg9+x4eYbej0= + +Name: res/a8/aq8.xml +SHA1-Digest: ixQDnZ19VqVRhnwzE3rI3ti6tL4= + +Name: res/a8/aq9.xml +SHA1-Digest: 64LIeffwSS/ZvbAcKcC3QuNn+zk= + +Name: res/a8/aq_.xml +SHA1-Digest: Ra/kCYVL9g6olSPMBn5dk0o2rLA= + +Name: res/a8/aqa.xml +SHA1-Digest: IJltsceLWzmQaRVbAj1uvQSIUwU= + +Name: res/aa/av.xml +SHA1-Digest: AAkAbefVTkoSpoDCyq1s6Sv+KDM= + +Name: res/aa/aw.xml +SHA1-Digest: GjPCYRu7/ZESsJA8wrLT9v9+p6A= + +Name: res/aa/ax.xml +SHA1-Digest: 88lJCYWb5JCB7rp4Azvf1smwo4s= + +Name: res/aa/ay.xml +SHA1-Digest: 9mhATp4vDz7vvUgkbdyK4UZp+Hs= + +Name: res/aa/az.xml +SHA1-Digest: HN7mQyqzmBRJ5MSKd4j78vwHXqQ= + +Name: res/aa/b0.xml +SHA1-Digest: EKyVdkNAtj8dShpZqQRycJj6FlE= + +Name: res/aa/b1.xml +SHA1-Digest: jw7XRQ1dEfxCEWnsBXNekEqAaYU= + +Name: res/ad/c.xml +SHA1-Digest: MSf/iJ8T+EuW/2JCfVKitgmET6Q= + +Name: res/ad/d.xml +SHA1-Digest: OCjSuksh2ggl2K5PBZs9NUK0jkA= + +Name: res/ad/e.xml +SHA1-Digest: SzJD/+0EmYDewVoqReLmbdzNKGM= + +Name: res/ad/f.xml +SHA1-Digest: GAm7QqjAoOwkKNH7SQDDK3myNac= + +Name: res/aq/l.xml +SHA1-Digest: 1JQKKOAkBnFrtIAJElOakqNbN+o= + +Name: res/au/c.xml +SHA1-Digest: 9R4xkdho9db4ehbmiFKkahZ6nH4= + +Name: res/au/d.xml +SHA1-Digest: JOoZ1Q9qgvpaY0k500nwQHyUhig= + +Name: res/au/e.xml +SHA1-Digest: ct3+cthpWj4lSw7KLLzccA9F7qA= + +Name: res/au/f.xml +SHA1-Digest: 4twdMWc2UP0vMild2SyW2AOg8DU= + +Name: res/au/g.xml +SHA1-Digest: R3aRPWh+5CjrMIEqeg5MhHqLZI8= + +Name: res/g/bk.xml +SHA1-Digest: ueA0PGG6SE5E00a6z+qRDP732uA= + +Name: res/g/bl.xml +SHA1-Digest: aHafx5yGQqKT2/hWOL6FbE133ko= + +Name: res/g/bm.xml +SHA1-Digest: 3nC+5M5X0Hgfs0LqG+r0h4q8Inc= + +Name: res/n/he.png +SHA1-Digest: LLk8Qg1DVjpaeObjseZXNQ6ZPV0= + +Name: res/n/hh.png +SHA1-Digest: z9W8a6zN6f4SWsiEWt95oCdxPLc= + +Name: res/n/hj.png +SHA1-Digest: uWwEYTf2KLrY+N15SSVN3pWlMv0= + +Name: res/n/ho.png +SHA1-Digest: aUk0Mca4h+b+wosy0kRln7hrf8o= + +Name: res/n/hq.png +SHA1-Digest: 3l++tPqF83MRV+RBQJCO8KiODOU= + +Name: res/n/hr.png +SHA1-Digest: 3Sr4X0X2qlCQVamqMey8MmcJUZw= + +Name: res/n/hs.png +SHA1-Digest: 9tBqzFDWQMb+ZlNmB/hzScSjV9c= + +Name: res/n/hu.png +SHA1-Digest: gUolvsoNIWLCYvmf1ROXdDczZ3A= + +Name: res/n/hx.9.png +SHA1-Digest: gNUhDqO2rsphEA/3dXbHBTC5RyU= + +Name: res/n/i1.9.png +SHA1-Digest: yVDoDb5uQ752/aShGAglhXPR58E= + +Name: res/n/i6.png +SHA1-Digest: ZlXYyI3eC6VA+dlFejWDoLq5dnM= + +Name: res/n/i7.png +SHA1-Digest: S5foQhrxUxjeoOimFEBBMTYu1qA= + +Name: res/n/ib.png +SHA1-Digest: 3RrEIDAtfqXmNS+8yY4jAF9/myU= + +Name: res/n/ic.png +SHA1-Digest: LKN7E58Rm0g8WqHiNuXjFYfaDHA= + +Name: res/n/if.9.png +SHA1-Digest: ETThKNhe6CxvXqHaG9Vb9Z5+0P4= + +Name: res/n/ig.png +SHA1-Digest: VxenMn9t6DriPi6Ew0ddc4EYeD4= + +Name: res/n/ij.png +SHA1-Digest: /eAQDNGaaa6X8fXvkQPQf/sj1Kk= + +Name: res/n/im.png +SHA1-Digest: I/fmG4WIpiwrBZVgYF+j/tq2EUY= + +Name: res/n/iq.png +SHA1-Digest: y09HUruZdZLDTos+KtUoYnzKIoI= + +Name: res/n/ir.png +SHA1-Digest: Ld0sZQ5QT02pqWcraT3R85F13U8= + +Name: res/n/iy.9.png +SHA1-Digest: c+soGUJwq2OLMC3Stt/R1h9rdyk= + +Name: res/n/iz.png +SHA1-Digest: yyBSOdtmzzc8WHqGEdM82agNqqI= + +Name: res/n/j1.png +SHA1-Digest: 1M1zZevinqY8DZ5pCNZEg+FGn7E= + +Name: res/n/j2.png +SHA1-Digest: hSs7nHMg2jk9iVagXiTH1DlPZAw= + +Name: res/n/j3.xml +SHA1-Digest: U/zkdStxAKVrFvRixyqb+ifFDWs= + +Name: res/n/j5.png +SHA1-Digest: /JpIU4+mutAd+WK/uojg2YGoI2E= + +Name: res/o/bqa.png +SHA1-Digest: h3JcBAWXMA2i6N9iGV23AZORtEg= + +Name: res/o/bqe.png +SHA1-Digest: QZuCYH9FovQgwZeLK0xdg/7D/b0= + +Name: res/o/bqg.png +SHA1-Digest: VUmBOVHtTjxtWEeXsoFb7YgRTMQ= + +Name: res/o/bqh.png +SHA1-Digest: 7n729ywHQn/mHSmYDrEY9xI5NSI= + +Name: res/o/bqj.png +SHA1-Digest: Pu6nlN9UdzcaNrblQ8FtJ2q9Wxk= + +Name: res/o/bqm.png +SHA1-Digest: d+q0ZaZaigiqAdT8DdtswMdsjJ0= + +Name: res/o/bqn.png +SHA1-Digest: VbX1FRZdJfg1sOqlWO3+OQl/UDs= + +Name: res/o/bqo.png +SHA1-Digest: KfWfnlShshS21xlzXdUdeuFjpjg= + +Name: res/o/bqs.png +SHA1-Digest: vdb5fVjmPgfM5TZCgH2J4e2oVnc= + +Name: res/o/bqt.png +SHA1-Digest: nmTI/Kp1VJ6PZdH1hxJlt3GOSNU= + +Name: res/o/bqw.png +SHA1-Digest: XFluz9Jx1aC0p8fyxHEymuuKBXE= + +Name: res/o/bqy.png +SHA1-Digest: w7+Xe1tLKRff1GlpaV4YzJP8x1I= + +Name: res/o/br0.png +SHA1-Digest: W6AEUZzBgbL30dRrbGGZxXwSp00= + +Name: res/o/br4.png +SHA1-Digest: 4WebDTU9k2MYp9DrfJlaXSnITas= + +Name: res/o/br5.png +SHA1-Digest: nwqrvbKUIvjiYOdn7vehfHJFRW0= + +Name: res/o/br7.png +SHA1-Digest: pt+1maZ64SEZcPhjac7foKF/3DE= + +Name: res/o/br8.png +SHA1-Digest: FQl+e6HRG2UMMHTYLlngDsXyg1Y= + +Name: res/o/br_.png +SHA1-Digest: 2SbqsjtFI/OWibZv0YyXus/e0FE= + +Name: res/o/brc.png +SHA1-Digest: mV9bwPsUpJPw87HtYo2lIi0/M0w= + +Name: res/o/brh.png +SHA1-Digest: CeSq4nRejTfqldorFQMPP/I3vg8= + +Name: res/o/brj.png +SHA1-Digest: e+jczoo4FlO4h0JVU+w7I5z21AA= + +Name: res/o/brl.png +SHA1-Digest: /aqO3ZDg42//kdasMqrrKyX1F1c= + +Name: res/o/brm.png +SHA1-Digest: r5Fjh88AGUSvGv6hfPIa/QDJw0g= + +Name: res/o/brq.png +SHA1-Digest: ng304PJE0DCTpFUmXy7gGc5N3NM= + +Name: res/o/brr.png +SHA1-Digest: prHI8C2enBP0c4sc7bFuorsTS+o= + +Name: res/o/brs.png +SHA1-Digest: W4BKY8ZwJ/B4zAAweK96AQs7jDE= + +Name: res/o/brt.png +SHA1-Digest: TUt+qLe89jUHxqUGRmOxIeFhaGI= + +Name: res/o/bru.png +SHA1-Digest: o+/08jquFvzYbk6pMW+uRy0hCMk= + +Name: res/o/bry.png +SHA1-Digest: 9/eGe1KyL1x5KNwHXnrDBR1RqHw= + +Name: res/o/bs3.png +SHA1-Digest: NJE6ugu9qF+p0+CA6WhSV9ZpR6Q= + +Name: res/o/bs4.png +SHA1-Digest: HFzOGz64Cwv016moHN9xlx7mBy4= + +Name: res/o/bs5.png +SHA1-Digest: omKgXPCiFEPacj581R1LElNm+TY= + +Name: res/o/bs7.png +SHA1-Digest: s4BxepvyAkT7e/ngVjIoaJGP34E= + +Name: res/o/bs9.png +SHA1-Digest: MuwTGwGP00H/SkJtsOuIL5KLsF8= + +Name: res/p/apl.xml +SHA1-Digest: acHP0/yW2iIfZQiFaR8nma/Z2xA= + +Name: res/p/apm.xml +SHA1-Digest: Ql82DhEgwQ9uwhmFycM398+OwAM= + +Name: res/p/apn.xml +SHA1-Digest: OmCMAcucyS00tnluTdrQwyfRnBM= + +Name: res/p/apo.xml +SHA1-Digest: gp1HqeJlMrh4whxxeuZZBktAhi4= + +Name: res/p/app.xml +SHA1-Digest: LH+FqLIIapmGhL7gIz+RCFZ4c2g= + +Name: res/p/apq.xml +SHA1-Digest: v9PKLWmtCPuT6n8m5qwhrc8MXeU= + +Name: res/p/apr.xml +SHA1-Digest: LvXl8I4szqFF2fcyIKiBHoKbVE4= + +Name: res/p/aps.xml +SHA1-Digest: V0LYEpe2hf/RcRR8+19XgDlXCms= + +Name: res/p/apt.xml +SHA1-Digest: 5BGx4trlYrkkXV04/S5E3K+c6iY= + +Name: res/p/apu.png +SHA1-Digest: BUaYsoCiGD1opjKf147fydsRbAI= + +Name: res/p/apv.xml +SHA1-Digest: qHmrwH5clfCSHLoMx7hGeoMAJf4= + +Name: res/p/apw.xml +SHA1-Digest: OvioUX/HpW6hv2ahJ3caBymbUj0= + +Name: res/p/apx.xml +SHA1-Digest: kyR6dyj1KF3hYklaUz4TSQ2IbqU= + +Name: res/p/apy.xml +SHA1-Digest: VikasCI/sah67+Uizlsl3F1fZSk= + +Name: res/p/apz.xml +SHA1-Digest: G87we64Hu5TEozdphC22U+/JRPk= + +Name: res/p/aq0.xml +SHA1-Digest: 0CQAdCv+8v6x3sv9atIJ2PkDIuk= + +Name: res/p/aq1.xml +SHA1-Digest: GZYM9kNNxHYPdJtHO/sbRTpB98A= + +Name: res/p/aq2.xml +SHA1-Digest: E30A4CrDQxBtVZHcRkpMWK3a2vg= + +Name: res/p/aq3.png +SHA1-Digest: yb//ubfoNa0//+t9HZLFBeuFlKs= + +Name: res/p/aq4.xml +SHA1-Digest: jgW9Rc3ERWJKd3C589vLnK4r3sM= + +Name: res/p/aq5.xml +SHA1-Digest: Iwr9FvEALL+yFRwflrzmnzC4O4s= + +Name: res/p/aq6.xml +SHA1-Digest: 2myF7WZSSaz4RUslUA8td8qcXR4= + +Name: res/p/aq7.xml +SHA1-Digest: HLBB0dr2wTxQOYg8MCEfWHw4JuY= + +Name: res/p/aq8.xml +SHA1-Digest: rpzsgvk6k/ul2qnp8rcz3gaUGwo= + +Name: res/p/aq9.xml +SHA1-Digest: S5WCMQ6HxPtBh4d61uRRzGOV42w= + +Name: res/p/aq_.xml +SHA1-Digest: PSnvVxJr3kadb89qSVTaK7xJox8= + +Name: res/p/aqa.xml +SHA1-Digest: P7LvkVxL4WW5CfP6xlfDPUQOt8k= + +Name: res/p/aqb.xml +SHA1-Digest: rD1al/jqVTEYzlC/Acj+MZ8Vrsg= + +Name: res/p/aqc.png +SHA1-Digest: 7+SHdL05K5eC8Sy970PCnHd4M08= + +Name: res/p/aqd.xml +SHA1-Digest: kYT958T5+DIv+sNwQBRBHjCx8CA= + +Name: res/p/aqe.xml +SHA1-Digest: ZC6noRFy8C4AwAeYFegutRdrzvw= + +Name: res/p/aqf.xml +SHA1-Digest: v+tlDVt7Uf2YdGA2s6SZQQmzvE4= + +Name: res/p/aqg.xml +SHA1-Digest: FzimfDrDv242ZxZkto6Gm2BOfqk= + +Name: res/p/aqh.xml +SHA1-Digest: iGsleTENtLPSZCIwnklR4bQTB8U= + +Name: res/p/aqi.xml +SHA1-Digest: 4yfqxFao13Ol7fRswuKIPbRFC9I= + +Name: res/p/aqj.xml +SHA1-Digest: D5NxHB7flcwrnkHMeNik4yniMZM= + +Name: res/p/aqk.xml +SHA1-Digest: mqgM0/bRkQypZmCvb4pzZ2dIX7A= + +Name: res/p/aql.xml +SHA1-Digest: d/QeddmnEjZLduZbCfU8+9TZIVE= + +Name: res/p/aqm.xml +SHA1-Digest: EPbqmCt10jtRodoRrxl6UTgXr0w= + +Name: res/p/aqn.xml +SHA1-Digest: ULqGeortiE8UF9/HQkP2joDzN9s= + +Name: res/p/aqo.9.png +SHA1-Digest: ZdF+Xr4u4sn0nnD21N7aGQvFAek= + +Name: res/p/aqp.xml +SHA1-Digest: HrPZgiVmy8eQ/7JEcnZrNOcbxkk= + +Name: res/p/aqq.xml +SHA1-Digest: xUQCTK7uBl4Olua14aeV3sF2YUU= + +Name: res/p/aqr.xml +SHA1-Digest: CSEjJNjRxBX/oVjh9O7h6Bnctg0= + +Name: resources.arsc +SHA1-Digest: 1/WMVNMsSJGugiiPsHMJE/7nAHk= + diff --git a/df_miniapp/assets/error-page.html b/df_miniapp/assets/error-page.html new file mode 100644 index 0000000..881f2ce --- /dev/null +++ b/df_miniapp/assets/error-page.html @@ -0,0 +1,117 @@ + + + + + + + 加载错误 + + + +
+
+
+ +
+ + + \ No newline at end of file diff --git a/df_miniapp/assets/preloadTemplate.html b/df_miniapp/assets/preloadTemplate.html new file mode 100644 index 0000000..7c92cac --- /dev/null +++ b/df_miniapp/assets/preloadTemplate.html @@ -0,0 +1,10 @@ + + + + + +

+ + \ No newline at end of file diff --git a/df_miniapp/assets/public1024.der b/df_miniapp/assets/public1024.der new file mode 100644 index 0000000..092934b Binary files /dev/null and b/df_miniapp/assets/public1024.der differ diff --git a/df_miniapp/assets/webview.js b/df_miniapp/assets/webview.js new file mode 100644 index 0000000..e9eda4a --- /dev/null +++ b/df_miniapp/assets/webview.js @@ -0,0 +1 @@ +window.__ttjsenv__ = 'microapp' \ No newline at end of file diff --git a/df_miniapp/classes.dex b/df_miniapp/classes.dex new file mode 100644 index 0000000..0cb1273 Binary files /dev/null and b/df_miniapp/classes.dex differ diff --git a/df_miniapp/classes.jar b/df_miniapp/classes.jar new file mode 100644 index 0000000..d82779e Binary files /dev/null and b/df_miniapp/classes.jar differ diff --git a/df_miniapp/classes/androidx/annotation/Keep.java b/df_miniapp/classes/androidx/annotation/Keep.java new file mode 100644 index 0000000..b43ad04 --- /dev/null +++ b/df_miniapp/classes/androidx/annotation/Keep.java @@ -0,0 +1,16 @@ +package androidx.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.CLASS) +@Target({ElementType.PACKAGE, ElementType.TYPE, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.FIELD}) +public @interface Keep {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\androidx\annotation\Keep.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/d/a/a.java b/df_miniapp/classes/com/bytedance/d/a/a.java new file mode 100644 index 0000000..37b03c3 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/d/a/a.java @@ -0,0 +1,43 @@ +package com.bytedance.d.a; + +import android.app.Application; +import com.bytedance.d.a.a.a; +import com.bytedance.d.a.a.b; +import com.bytedance.d.a.b.a; +import d.f; +import d.f.b.l; +import d.f.b.m; +import d.f.b.u; +import d.f.b.v; +import d.f.b.x; +import d.g; +import d.k.d; +import d.k.h; + +public final class a { + public static Application b; + + public static final a c = new a(); + + private static final f d = g.a(a.a); + + public final a a(a parama) { + l.b(parama, "plugin"); + ((a)d.getValue()).a(parama); + return this; + } + + static final class a extends m implements d.f.a.a { + public static final a a = new a(); + + a() { + super(0); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\d\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/d/a/a/a.java b/df_miniapp/classes/com/bytedance/d/a/a/a.java new file mode 100644 index 0000000..73f5efe --- /dev/null +++ b/df_miniapp/classes/com/bytedance/d/a/a/a.java @@ -0,0 +1,11 @@ +package com.bytedance.d.a.a; + +public abstract class a { + public abstract a a(com.bytedance.d.a.b.a parama); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\d\a\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/d/a/a/b.java b/df_miniapp/classes/com/bytedance/d/a/a/b.java new file mode 100644 index 0000000..24ddeb4 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/d/a/a/b.java @@ -0,0 +1,27 @@ +package com.bytedance.d.a.a; + +import android.app.Application; +import com.bytedance.d.a.a; +import com.bytedance.d.a.b.a; +import d.f.b.l; +import java.util.concurrent.ConcurrentHashMap; + +public final class b extends a { + private final ConcurrentHashMap a = new ConcurrentHashMap(); + + public final a a(a parama) { + l.b(parama, "plugin"); + this.a.put(parama.a(), parama); + Application application = a.b; + if (application == null) + l.a("application"); + parama.a(application); + return this; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\d\a\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/d/a/b/a.java b/df_miniapp/classes/com/bytedance/d/a/b/a.java new file mode 100644 index 0000000..7d3b869 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/d/a/b/a.java @@ -0,0 +1,22 @@ +package com.bytedance.d.a.b; + +import android.app.Application; +import d.f.b.l; + +public interface a { + b a(); + + void a(Application paramApplication); + + public static final class a { + public static void a(a param1a, Application param1Application) { + l.b(param1Application, "app"); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\d\a\b\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/d/a/b/b.java b/df_miniapp/classes/com/bytedance/d/a/b/b.java new file mode 100644 index 0000000..15e8925 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/d/a/b/b.java @@ -0,0 +1,29 @@ +package com.bytedance.d.a.b; + +import d.f.b.g; +import d.f.b.l; + +public final class b { + public static final a b = new a(null); + + public final String a; + + public b(String paramString) { + this.a = paramString; + } + + public static final class a { + private a() {} + + public static b a(String param1String) { + l.b(param1String, "name"); + return new b(param1String); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\d\a\b\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/d/a/c/a/a.java b/df_miniapp/classes/com/bytedance/d/a/c/a/a.java new file mode 100644 index 0000000..187d492 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/d/a/c/a/a.java @@ -0,0 +1,11 @@ +package com.bytedance.d.a.c.a; + +import com.bytedance.d.a.b.a; + +public interface a extends a {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\d\a\c\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/d/a/c/b/a.java b/df_miniapp/classes/com/bytedance/d/a/c/b/a.java new file mode 100644 index 0000000..9fc3024 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/d/a/c/b/a.java @@ -0,0 +1,11 @@ +package com.bytedance.d.a.c.b; + +import com.bytedance.d.a.b.a; + +public interface a extends a {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\d\a\c\b\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/d/a/c/c/a/a.java b/df_miniapp/classes/com/bytedance/d/a/c/c/a/a.java new file mode 100644 index 0000000..4f0f614 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/d/a/c/c/a/a.java @@ -0,0 +1,11 @@ +package com.bytedance.d.a.c.c.a; + +import com.bytedance.d.a.b.a; + +public interface a extends a {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\d\a\c\c\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/d/a/c/d/a.java b/df_miniapp/classes/com/bytedance/d/a/c/d/a.java new file mode 100644 index 0000000..cafb738 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/d/a/c/d/a.java @@ -0,0 +1,11 @@ +package com.bytedance.d.a.c.d; + +import com.bytedance.d.a.b.a; + +public interface a extends a {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\d\a\c\d\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/a.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/a.java new file mode 100644 index 0000000..bd4077e --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/a.java @@ -0,0 +1,61 @@ +package com.bytedance.platform.godzilla.d; + +import android.os.Process; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.atomic.AtomicInteger; + +public final class a implements ThreadFactory { + public final h a; + + private final String b; + + private final ThreadGroup c; + + private final AtomicInteger d; + + public a(String paramString, h paramh) { + ThreadGroup threadGroup; + this.d = new AtomicInteger(1); + this.a = paramh; + SecurityManager securityManager = System.getSecurityManager(); + if (securityManager != null) { + threadGroup = securityManager.getThreadGroup(); + } else { + threadGroup = Thread.currentThread().getThreadGroup(); + } + this.c = threadGroup; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramString); + stringBuilder.append("-thread-"); + this.b = stringBuilder.toString(); + } + + public final Thread newThread(Runnable paramRunnable) { + ThreadGroup threadGroup = this.c; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.b); + stringBuilder.append(this.d.getAndIncrement()); + paramRunnable = new Thread(this, threadGroup, paramRunnable, stringBuilder.toString(), 0L) { + public final void run() { + Process.setThreadPriority(10); + if (this.a.a != null) + try { + return; + } finally { + Exception exception = null; + this.a.a.a(exception); + } + super.run(); + } + }; + if (paramRunnable.isDaemon()) + paramRunnable.setDaemon(false); + return (Thread)paramRunnable; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/a/a.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/a/a.java new file mode 100644 index 0000000..af05d02 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/a/a.java @@ -0,0 +1,39 @@ +package com.bytedance.platform.godzilla.d.a; + +import com.bytedance.platform.godzilla.d.c; +import java.util.concurrent.ThreadPoolExecutor; +import org.json.JSONException; +import org.json.JSONObject; + +public final class a implements Runnable { + private Thread a; + + private Runnable b; + + private ThreadPoolExecutor c; + + public a(ThreadPoolExecutor paramThreadPoolExecutor, Thread paramThread, Runnable paramRunnable) { + this.c = paramThreadPoolExecutor; + this.a = paramThread; + this.b = paramRunnable; + } + + public final void run() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("poolName", ((c)this.c).a()); + jSONObject.put("poolInfo", this.c.toString()); + jSONObject.put("threadName", this.a.getName()); + jSONObject.put("stack", b.a(this.a.getStackTrace())); + return; + } catch (JSONException jSONException) { + return; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/a/b.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/a/b.java new file mode 100644 index 0000000..9070d98 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/a/b.java @@ -0,0 +1,65 @@ +package com.bytedance.platform.godzilla.d.a; + +import android.os.Handler; +import android.os.HandlerThread; +import com.bytedance.platform.godzilla.d.d; + +public final class b { + private static HandlerThread a; + + private static Handler b = new Handler(a.getLooper()); + + private static boolean c; + + private static int d = 10000; + + private static int e = 10000; + + public static String a(StackTraceElement[] paramArrayOfStackTraceElement) { + String str = ""; + if (paramArrayOfStackTraceElement == null) + return ""; + int j = paramArrayOfStackTraceElement.length; + for (int i = 0; i < j; i++) { + StackTraceElement stackTraceElement = paramArrayOfStackTraceElement[i]; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(str); + stringBuilder.append(stackTraceElement.toString()); + stringBuilder.append("\n"); + str = stringBuilder.toString(); + } + return str; + } + + public static void a(a parama) { + b.postDelayed(parama, d); + } + + public static void a(c paramc) { + b.postDelayed(paramc, e); + } + + public static boolean a() { + return c; + } + + public static void b(a parama) { + b.removeCallbacks(parama); + } + + public static void b(c paramc) { + b.removeCallbacks(paramc); + } + + static { + d.a a = new d.a("pool-monitor", 0, 0); + a.start(); + a = (HandlerThread)a; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/a/c.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/a/c.java new file mode 100644 index 0000000..46b1ed7 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/a/c.java @@ -0,0 +1,34 @@ +package com.bytedance.platform.godzilla.d.a; + +import java.util.concurrent.ThreadPoolExecutor; +import org.json.JSONException; +import org.json.JSONObject; + +public final class c implements Runnable { + private Runnable a; + + private ThreadPoolExecutor b; + + public c(ThreadPoolExecutor paramThreadPoolExecutor, Runnable paramRunnable) { + this.a = paramRunnable; + this.b = paramThreadPoolExecutor; + } + + public final void run() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("poolName", ((com.bytedance.platform.godzilla.d.c)this.b).a()); + jSONObject.put("poolInfo", this.b.toString()); + jSONObject.put("task", this.a.toString()); + return; + } catch (JSONException jSONException) { + return; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\a\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/b.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/b.java new file mode 100644 index 0000000..5562aa9 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/b.java @@ -0,0 +1,17 @@ +package com.bytedance.platform.godzilla.d; + +public final class b { + public g.a a; + + public g.a b; + + public g.a c; + + public g.a d; +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/c.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/c.java new file mode 100644 index 0000000..a74b223 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/c.java @@ -0,0 +1,11 @@ +package com.bytedance.platform.godzilla.d; + +public interface c { + String a(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/d.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/d.java new file mode 100644 index 0000000..fc9d64d --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/d.java @@ -0,0 +1,94 @@ +package com.bytedance.platform.godzilla.d; + +import android.os.Handler; +import android.os.HandlerThread; +import android.os.Looper; +import com.bytedance.platform.godzilla.e.f; +import java.lang.reflect.Field; +import java.util.HashMap; + +public final class d { + private static volatile Handler a = new Handler(Looper.getMainLooper()); + + private static HashMap b = new HashMap(); + + public static final class a extends HandlerThread { + private volatile boolean a; + + public a(String param1String, int param1Int1, int param1Int2) { + super(param1String, param1Int1); + if (param1Int2 != 0) + a(param1Int2); + } + + private boolean a(long param1Long) { + Field field = com.bytedance.platform.godzilla.e.a.a(HandlerThread.class, "stackSize"); + if (field != null) { + boolean bool; + field.setAccessible(true); + if (field != null) { + bool = true; + } else { + bool = false; + } + if (bool) { + try { + if (!field.isAccessible()) + field.setAccessible(true); + if (((Long)field.get(this)).longValue() != param1Long) { + field = (Field)f.a(field, "The field must not be null"); + if (!field.isAccessible()) + field.setAccessible(true); + field.set(this, Long.valueOf(param1Long)); + return true; + } + } catch (IllegalAccessException illegalAccessException) { + return false; + } + } else { + throw new IllegalArgumentException("The field must not be null"); + } + } else { + return false; + } + return true; + } + + public final void start() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield a : Z + // 6: istore_1 + // 7: iload_1 + // 8: ifeq -> 14 + // 11: aload_0 + // 12: monitorexit + // 13: return + // 14: aload_0 + // 15: iconst_1 + // 16: putfield a : Z + // 19: aload_0 + // 20: invokespecial start : ()V + // 23: aload_0 + // 24: monitorexit + // 25: return + // 26: astore_2 + // 27: aload_0 + // 28: monitorexit + // 29: aload_2 + // 30: athrow + // Exception table: + // from to target type + // 2 7 26 finally + // 14 23 26 finally + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/e.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/e.java new file mode 100644 index 0000000..5d22a34 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/e.java @@ -0,0 +1,66 @@ +package com.bytedance.platform.godzilla.d; + +import android.text.TextUtils; +import com.bytedance.platform.godzilla.d.a.a; +import com.bytedance.platform.godzilla.d.a.b; +import com.bytedance.platform.godzilla.d.a.c; +import java.util.Map; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +final class e extends ThreadPoolExecutor implements c { + private String a; + + private ThreadLocal b = new ThreadLocal(); + + private Map c = new ConcurrentHashMap(); + + e(int paramInt1, int paramInt2, long paramLong, TimeUnit paramTimeUnit, BlockingQueue paramBlockingQueue, ThreadFactory paramThreadFactory, String paramString) { + super(paramInt1, paramInt2, paramLong, paramTimeUnit, paramBlockingQueue, paramThreadFactory); + this.a = paramString; + } + + e(int paramInt1, int paramInt2, long paramLong, TimeUnit paramTimeUnit, BlockingQueue paramBlockingQueue, ThreadFactory paramThreadFactory, RejectedExecutionHandler paramRejectedExecutionHandler, String paramString) { + super(paramInt1, paramInt2, paramLong, paramTimeUnit, paramBlockingQueue, paramThreadFactory, paramRejectedExecutionHandler); + this.a = paramString; + } + + public final String a() { + return !TextUtils.isEmpty(this.a) ? this.a : "PlatformScheduleExecutor"; + } + + protected final void afterExecute(Runnable paramRunnable, Throwable paramThrowable) { + super.afterExecute(paramRunnable, paramThrowable); + if (b.a()) + b.b(this.b.get()); + } + + protected final void beforeExecute(Thread paramThread, Runnable paramRunnable) { + super.beforeExecute(paramThread, paramRunnable); + if (b.a()) { + b.b(this.c.remove(paramRunnable)); + a a = new a(this, paramThread, paramRunnable); + this.b.set(a); + b.a(a); + } + } + + public final void execute(Runnable paramRunnable) { + if (b.a()) { + c c1 = new c(this, paramRunnable); + this.c.put(paramRunnable, c1); + b.a(c1); + } + super.execute(paramRunnable); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/f.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/f.java new file mode 100644 index 0000000..840b23c --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/f.java @@ -0,0 +1,58 @@ +package com.bytedance.platform.godzilla.d; + +import android.text.TextUtils; +import com.bytedance.platform.godzilla.d.a.a; +import com.bytedance.platform.godzilla.d.a.b; +import com.bytedance.platform.godzilla.d.a.c; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadFactory; + +final class f extends ScheduledThreadPoolExecutor implements c { + private String a; + + private ThreadLocal b = new ThreadLocal(); + + private Map c = new ConcurrentHashMap(); + + f(int paramInt, ThreadFactory paramThreadFactory, String paramString) { + super(paramInt, paramThreadFactory); + this.a = paramString; + } + + public final String a() { + return !TextUtils.isEmpty(this.a) ? this.a : "PlatformScheduleExecutor"; + } + + protected final void afterExecute(Runnable paramRunnable, Throwable paramThrowable) { + super.afterExecute(paramRunnable, paramThrowable); + if (b.a()) + b.b(this.b.get()); + } + + protected final void beforeExecute(Thread paramThread, Runnable paramRunnable) { + super.beforeExecute(paramThread, paramRunnable); + if (b.a()) { + b.b(this.c.remove(paramRunnable)); + a a = new a(this, paramThread, paramRunnable); + this.b.set(a); + b.a(a); + } + } + + public final void execute(Runnable paramRunnable) { + if (b.a()) { + c c1 = new c(this, paramRunnable); + this.c.put(paramRunnable, c1); + b.a(c1); + } + super.execute(paramRunnable); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\f.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/g.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/g.java new file mode 100644 index 0000000..8711adf --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/g.java @@ -0,0 +1,390 @@ +package com.bytedance.platform.godzilla.d; + +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.RejectedExecutionHandler; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +public final class g { + public static b a; + + public static h b; + + private static final int c; + + private static final int d; + + private static b e; + + private static h f = new h() { + public final void a(Throwable param1Throwable) { + if (g.b != null) + g.b.a(param1Throwable); + } + }; + + private static volatile ThreadPoolExecutor g; + + private static volatile ThreadPoolExecutor h; + + private static volatile ScheduledThreadPoolExecutor i; + + private static volatile ThreadPoolExecutor j; + + public static ThreadPoolExecutor a() { + // Byte code: + // 0: getstatic com/bytedance/platform/godzilla/d/g.g : Ljava/util/concurrent/ThreadPoolExecutor; + // 3: ifnonnull -> 168 + // 6: ldc com/bytedance/platform/godzilla/d/g + // 8: monitorenter + // 9: getstatic com/bytedance/platform/godzilla/d/g.g : Ljava/util/concurrent/ThreadPoolExecutor; + // 12: ifnonnull -> 156 + // 15: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 18: ifnull -> 108 + // 21: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 24: getfield a : Lcom/bytedance/platform/godzilla/d/g$a; + // 27: ifnull -> 108 + // 30: new com/bytedance/platform/godzilla/d/e + // 33: dup + // 34: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 37: getfield a : Lcom/bytedance/platform/godzilla/d/g$a; + // 40: getfield a : I + // 43: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 46: getfield a : Lcom/bytedance/platform/godzilla/d/g$a; + // 49: getfield b : I + // 52: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 55: getfield a : Lcom/bytedance/platform/godzilla/d/g$a; + // 58: getfield e : J + // 61: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 64: getfield a : Lcom/bytedance/platform/godzilla/d/g$a; + // 67: getfield f : Ljava/util/concurrent/TimeUnit; + // 70: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 73: getfield a : Lcom/bytedance/platform/godzilla/d/g$a; + // 76: getfield c : Ljava/util/concurrent/BlockingQueue; + // 79: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 82: getfield a : Lcom/bytedance/platform/godzilla/d/g$a; + // 85: getfield g : Ljava/util/concurrent/ThreadFactory; + // 88: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 91: getfield a : Lcom/bytedance/platform/godzilla/d/g$a; + // 94: getfield d : Ljava/util/concurrent/RejectedExecutionHandler; + // 97: ldc 'platform-io' + // 99: invokespecial : (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;Ljava/lang/String;)V + // 102: putstatic com/bytedance/platform/godzilla/d/g.g : Ljava/util/concurrent/ThreadPoolExecutor; + // 105: goto -> 156 + // 108: new com/bytedance/platform/godzilla/d/e + // 111: dup + // 112: iconst_0 + // 113: sipush #128 + // 116: ldc2_w 60 + // 119: getstatic java/util/concurrent/TimeUnit.SECONDS : Ljava/util/concurrent/TimeUnit; + // 122: new java/util/concurrent/SynchronousQueue + // 125: dup + // 126: invokespecial : ()V + // 129: new com/bytedance/platform/godzilla/d/a + // 132: dup + // 133: ldc 'platform-io' + // 135: getstatic com/bytedance/platform/godzilla/d/g.f : Lcom/bytedance/platform/godzilla/d/h; + // 138: invokespecial : (Ljava/lang/String;Lcom/bytedance/platform/godzilla/d/h;)V + // 141: new com/bytedance/platform/godzilla/d/g$2 + // 144: dup + // 145: invokespecial : ()V + // 148: ldc 'platform-io' + // 150: invokespecial : (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;Ljava/lang/String;)V + // 153: putstatic com/bytedance/platform/godzilla/d/g.g : Ljava/util/concurrent/ThreadPoolExecutor; + // 156: ldc com/bytedance/platform/godzilla/d/g + // 158: monitorexit + // 159: goto -> 168 + // 162: astore_0 + // 163: ldc com/bytedance/platform/godzilla/d/g + // 165: monitorexit + // 166: aload_0 + // 167: athrow + // 168: getstatic com/bytedance/platform/godzilla/d/g.g : Ljava/util/concurrent/ThreadPoolExecutor; + // 171: areturn + // Exception table: + // from to target type + // 9 105 162 finally + // 108 156 162 finally + // 156 159 162 finally + // 163 166 162 finally + } + + public static ThreadPoolExecutor b() { + // Byte code: + // 0: getstatic com/bytedance/platform/godzilla/d/g.h : Ljava/util/concurrent/ThreadPoolExecutor; + // 3: ifnonnull -> 193 + // 6: ldc com/bytedance/platform/godzilla/d/g + // 8: monitorenter + // 9: getstatic com/bytedance/platform/godzilla/d/g.h : Ljava/util/concurrent/ThreadPoolExecutor; + // 12: ifnonnull -> 181 + // 15: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 18: ifnull -> 123 + // 21: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 24: getfield b : Lcom/bytedance/platform/godzilla/d/g$a; + // 27: ifnull -> 123 + // 30: new com/bytedance/platform/godzilla/d/e + // 33: dup + // 34: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 37: getfield b : Lcom/bytedance/platform/godzilla/d/g$a; + // 40: getfield a : I + // 43: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 46: getfield b : Lcom/bytedance/platform/godzilla/d/g$a; + // 49: getfield b : I + // 52: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 55: getfield b : Lcom/bytedance/platform/godzilla/d/g$a; + // 58: getfield e : J + // 61: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 64: getfield b : Lcom/bytedance/platform/godzilla/d/g$a; + // 67: getfield f : Ljava/util/concurrent/TimeUnit; + // 70: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 73: getfield b : Lcom/bytedance/platform/godzilla/d/g$a; + // 76: getfield c : Ljava/util/concurrent/BlockingQueue; + // 79: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 82: getfield b : Lcom/bytedance/platform/godzilla/d/g$a; + // 85: getfield g : Ljava/util/concurrent/ThreadFactory; + // 88: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 91: getfield b : Lcom/bytedance/platform/godzilla/d/g$a; + // 94: getfield d : Ljava/util/concurrent/RejectedExecutionHandler; + // 97: ldc 'platform-default' + // 99: invokespecial : (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;Ljava/lang/String;)V + // 102: astore_0 + // 103: aload_0 + // 104: putstatic com/bytedance/platform/godzilla/d/g.h : Ljava/util/concurrent/ThreadPoolExecutor; + // 107: aload_0 + // 108: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 111: getfield b : Lcom/bytedance/platform/godzilla/d/g$a; + // 114: getfield h : Z + // 117: invokevirtual allowCoreThreadTimeOut : (Z)V + // 120: goto -> 181 + // 123: new com/bytedance/platform/godzilla/d/e + // 126: dup + // 127: getstatic com/bytedance/platform/godzilla/d/g.d : I + // 130: iconst_4 + // 131: invokestatic min : (II)I + // 134: getstatic com/bytedance/platform/godzilla/d/g.d : I + // 137: iconst_4 + // 138: invokestatic min : (II)I + // 141: ldc2_w 60 + // 144: getstatic java/util/concurrent/TimeUnit.SECONDS : Ljava/util/concurrent/TimeUnit; + // 147: new java/util/concurrent/LinkedBlockingQueue + // 150: dup + // 151: invokespecial : ()V + // 154: new com/bytedance/platform/godzilla/d/a + // 157: dup + // 158: ldc 'platform-default' + // 160: getstatic com/bytedance/platform/godzilla/d/g.f : Lcom/bytedance/platform/godzilla/d/h; + // 163: invokespecial : (Ljava/lang/String;Lcom/bytedance/platform/godzilla/d/h;)V + // 166: ldc 'platform-default' + // 168: invokespecial : (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/lang/String;)V + // 171: astore_0 + // 172: aload_0 + // 173: putstatic com/bytedance/platform/godzilla/d/g.h : Ljava/util/concurrent/ThreadPoolExecutor; + // 176: aload_0 + // 177: iconst_1 + // 178: invokevirtual allowCoreThreadTimeOut : (Z)V + // 181: ldc com/bytedance/platform/godzilla/d/g + // 183: monitorexit + // 184: goto -> 193 + // 187: astore_0 + // 188: ldc com/bytedance/platform/godzilla/d/g + // 190: monitorexit + // 191: aload_0 + // 192: athrow + // 193: getstatic com/bytedance/platform/godzilla/d/g.h : Ljava/util/concurrent/ThreadPoolExecutor; + // 196: areturn + // Exception table: + // from to target type + // 9 120 187 finally + // 123 181 187 finally + // 181 184 187 finally + // 188 191 187 finally + } + + public static ScheduledExecutorService c() { + // Byte code: + // 0: getstatic com/bytedance/platform/godzilla/d/g.i : Ljava/util/concurrent/ScheduledThreadPoolExecutor; + // 3: ifnonnull -> 122 + // 6: ldc com/bytedance/platform/godzilla/d/g + // 8: monitorenter + // 9: getstatic com/bytedance/platform/godzilla/d/g.i : Ljava/util/concurrent/ScheduledThreadPoolExecutor; + // 12: ifnonnull -> 110 + // 15: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 18: ifnull -> 78 + // 21: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 24: getfield c : Lcom/bytedance/platform/godzilla/d/g$a; + // 27: ifnull -> 78 + // 30: new com/bytedance/platform/godzilla/d/f + // 33: dup + // 34: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 37: getfield c : Lcom/bytedance/platform/godzilla/d/g$a; + // 40: getfield a : I + // 43: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 46: getfield c : Lcom/bytedance/platform/godzilla/d/g$a; + // 49: getfield g : Ljava/util/concurrent/ThreadFactory; + // 52: ldc 'platform-schedule' + // 54: invokespecial : (ILjava/util/concurrent/ThreadFactory;Ljava/lang/String;)V + // 57: putstatic com/bytedance/platform/godzilla/d/g.i : Ljava/util/concurrent/ScheduledThreadPoolExecutor; + // 60: getstatic com/bytedance/platform/godzilla/d/g.i : Ljava/util/concurrent/ScheduledThreadPoolExecutor; + // 63: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 66: getfield c : Lcom/bytedance/platform/godzilla/d/g$a; + // 69: getfield h : Z + // 72: invokevirtual allowCoreThreadTimeOut : (Z)V + // 75: goto -> 110 + // 78: new com/bytedance/platform/godzilla/d/f + // 81: dup + // 82: iconst_1 + // 83: new com/bytedance/platform/godzilla/d/a + // 86: dup + // 87: ldc 'platform-schedule' + // 89: getstatic com/bytedance/platform/godzilla/d/g.f : Lcom/bytedance/platform/godzilla/d/h; + // 92: invokespecial : (Ljava/lang/String;Lcom/bytedance/platform/godzilla/d/h;)V + // 95: ldc 'platform-schedule' + // 97: invokespecial : (ILjava/util/concurrent/ThreadFactory;Ljava/lang/String;)V + // 100: putstatic com/bytedance/platform/godzilla/d/g.i : Ljava/util/concurrent/ScheduledThreadPoolExecutor; + // 103: getstatic com/bytedance/platform/godzilla/d/g.i : Ljava/util/concurrent/ScheduledThreadPoolExecutor; + // 106: iconst_1 + // 107: invokevirtual allowCoreThreadTimeOut : (Z)V + // 110: ldc com/bytedance/platform/godzilla/d/g + // 112: monitorexit + // 113: goto -> 122 + // 116: astore_0 + // 117: ldc com/bytedance/platform/godzilla/d/g + // 119: monitorexit + // 120: aload_0 + // 121: athrow + // 122: getstatic com/bytedance/platform/godzilla/d/g.i : Ljava/util/concurrent/ScheduledThreadPoolExecutor; + // 125: areturn + // 126: astore_0 + // 127: goto -> 110 + // Exception table: + // from to target type + // 9 60 116 finally + // 60 75 126 java/lang/Exception + // 60 75 116 finally + // 78 103 116 finally + // 103 110 126 java/lang/Exception + // 103 110 116 finally + // 110 113 116 finally + // 117 120 116 finally + } + + public static ThreadPoolExecutor d() { + // Byte code: + // 0: getstatic com/bytedance/platform/godzilla/d/g.j : Ljava/util/concurrent/ThreadPoolExecutor; + // 3: ifnonnull -> 156 + // 6: ldc com/bytedance/platform/godzilla/d/g + // 8: monitorenter + // 9: getstatic com/bytedance/platform/godzilla/d/g.j : Ljava/util/concurrent/ThreadPoolExecutor; + // 12: ifnonnull -> 144 + // 15: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 18: ifnull -> 98 + // 21: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 24: getfield d : Lcom/bytedance/platform/godzilla/d/g$a; + // 27: ifnull -> 98 + // 30: new com/bytedance/platform/godzilla/d/e + // 33: dup + // 34: iconst_1 + // 35: iconst_1 + // 36: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 39: getfield d : Lcom/bytedance/platform/godzilla/d/g$a; + // 42: getfield e : J + // 45: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 48: getfield d : Lcom/bytedance/platform/godzilla/d/g$a; + // 51: getfield f : Ljava/util/concurrent/TimeUnit; + // 54: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 57: getfield d : Lcom/bytedance/platform/godzilla/d/g$a; + // 60: getfield c : Ljava/util/concurrent/BlockingQueue; + // 63: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 66: getfield d : Lcom/bytedance/platform/godzilla/d/g$a; + // 69: getfield g : Ljava/util/concurrent/ThreadFactory; + // 72: ldc 'platform-single' + // 74: invokespecial : (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/lang/String;)V + // 77: astore_0 + // 78: aload_0 + // 79: putstatic com/bytedance/platform/godzilla/d/g.j : Ljava/util/concurrent/ThreadPoolExecutor; + // 82: aload_0 + // 83: getstatic com/bytedance/platform/godzilla/d/g.e : Lcom/bytedance/platform/godzilla/d/b; + // 86: getfield d : Lcom/bytedance/platform/godzilla/d/g$a; + // 89: getfield h : Z + // 92: invokevirtual allowCoreThreadTimeOut : (Z)V + // 95: goto -> 144 + // 98: new com/bytedance/platform/godzilla/d/e + // 101: dup + // 102: iconst_1 + // 103: iconst_1 + // 104: ldc2_w 60 + // 107: getstatic java/util/concurrent/TimeUnit.SECONDS : Ljava/util/concurrent/TimeUnit; + // 110: new java/util/concurrent/LinkedBlockingQueue + // 113: dup + // 114: invokespecial : ()V + // 117: new com/bytedance/platform/godzilla/d/a + // 120: dup + // 121: ldc 'platform-single' + // 123: getstatic com/bytedance/platform/godzilla/d/g.f : Lcom/bytedance/platform/godzilla/d/h; + // 126: invokespecial : (Ljava/lang/String;Lcom/bytedance/platform/godzilla/d/h;)V + // 129: ldc 'platform-single' + // 131: invokespecial : (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/lang/String;)V + // 134: astore_0 + // 135: aload_0 + // 136: putstatic com/bytedance/platform/godzilla/d/g.j : Ljava/util/concurrent/ThreadPoolExecutor; + // 139: aload_0 + // 140: iconst_1 + // 141: invokevirtual allowCoreThreadTimeOut : (Z)V + // 144: ldc com/bytedance/platform/godzilla/d/g + // 146: monitorexit + // 147: goto -> 156 + // 150: astore_0 + // 151: ldc com/bytedance/platform/godzilla/d/g + // 153: monitorexit + // 154: aload_0 + // 155: athrow + // 156: getstatic com/bytedance/platform/godzilla/d/g.j : Ljava/util/concurrent/ThreadPoolExecutor; + // 159: areturn + // Exception table: + // from to target type + // 9 95 150 finally + // 98 144 150 finally + // 144 147 150 finally + // 151 154 150 finally + } + + static { + int i = Runtime.getRuntime().availableProcessors(); + c = i; + if (i > 0) { + i = c; + } else { + i = 1; + } + d = i; + } + + public static final class a { + public int a; + + public int b; + + public BlockingQueue c; + + public RejectedExecutionHandler d; + + public long e; + + public TimeUnit f; + + public ThreadFactory g; + + public boolean h; + } + + public static interface b {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\g.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/platform/godzilla/d/h.java b/df_miniapp/classes/com/bytedance/platform/godzilla/d/h.java new file mode 100644 index 0000000..6b4ea3d --- /dev/null +++ b/df_miniapp/classes/com/bytedance/platform/godzilla/d/h.java @@ -0,0 +1,29 @@ +package com.bytedance.platform.godzilla.d; + +public interface h { + public static final h a = new h() { + public final void a(Throwable param1Throwable) {} + }; + + public static final h b = new h() { + public final void a(Throwable param1Throwable) {} + }; + + public static final h c = new h() { + public final void a(Throwable param1Throwable) { + if (param1Throwable == null) + return; + throw new RuntimeException("Request threw uncaught throwable", param1Throwable); + } + }; + + public static final h d = b; + + void a(Throwable paramThrowable); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\platform\godzilla\d\h.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/a.java new file mode 100644 index 0000000..295e6b3 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/a.java @@ -0,0 +1,92 @@ +package com.bytedance.sandboxapp.a.a.a; + +import com.bytedance.sandboxapp.c.a.a.f; + +public final class a { + private String a; + + private Integer b; + + private String c; + + private String d; + + private String e; + + private Integer f; + + private Long g; + + private Long h; + + private String i; + + public static a a() { + return new a(); + } + + public final a a(Integer paramInteger) { + this.b = paramInteger; + return this; + } + + public final a a(Long paramLong) { + this.g = paramLong; + return this; + } + + public final a a(String paramString) { + this.a = paramString; + return this; + } + + public final a b(Integer paramInteger) { + this.f = paramInteger; + return this; + } + + public final a b(Long paramLong) { + this.h = paramLong; + return this; + } + + public final a b(String paramString) { + this.c = paramString; + return this; + } + + public final f b() { + com.bytedance.sandboxapp.b.b.a a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("state", this.a); + a1.a("downloadTaskId", this.b); + a1.a("statusCode", this.c); + a1.a("filePath", this.d); + a1.a("tempFilePath", this.e); + a1.a("progress", this.f); + a1.a("totalBytesWritten", this.g); + a1.a("totalBytesExpectedToWrite", this.h); + a1.a("errMsg", this.i); + return new f(a1); + } + + public final a c(String paramString) { + this.d = paramString; + return this; + } + + public final a d(String paramString) { + this.e = paramString; + return this; + } + + public final a e(String paramString) { + this.i = paramString; + return this; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/b.java new file mode 100644 index 0000000..65783d0 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/b.java @@ -0,0 +1,52 @@ +package com.bytedance.sandboxapp.a.a.a; + +import com.bytedance.sandboxapp.b.b.a; +import com.bytedance.sandboxapp.c.a.a.f; +import org.json.JSONObject; + +public final class b { + private JSONObject a; + + private String b; + + private Long c; + + private Long d; + + private String e; + + public static b a() { + return new b(); + } + + public final b a(String paramString) { + this.b = paramString; + return this; + } + + public final b a(JSONObject paramJSONObject) { + this.a = paramJSONObject; + return this; + } + + public final b b(String paramString) { + this.e = paramString; + return this; + } + + public final f b() { + a a = new a(); + a.a("appad", this.a); + a.a("status", this.b); + a.a("total_bytes", this.c); + a.a("current_bytes", this.d); + a.a("message", this.e); + return new f(a); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/c.java new file mode 100644 index 0000000..84e6e92 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/c.java @@ -0,0 +1,87 @@ +package com.bytedance.sandboxapp.a.a.a; + +import com.bytedance.sandboxapp.b.b.a; +import com.bytedance.sandboxapp.c.a.a.f; +import org.json.JSONArray; +import org.json.JSONObject; + +public final class c { + private String a; + + private Integer b; + + private JSONObject c; + + private String d; + + private Boolean e; + + private JSONArray f; + + private String g; + + private String h; + + public static c a() { + return new c(); + } + + public final c a(Boolean paramBoolean) { + this.e = paramBoolean; + return this; + } + + public final c a(Integer paramInteger) { + this.b = paramInteger; + return this; + } + + public final c a(String paramString) { + this.a = paramString; + return this; + } + + public final c a(JSONArray paramJSONArray) { + this.f = paramJSONArray; + return this; + } + + public final c a(JSONObject paramJSONObject) { + this.c = paramJSONObject; + return this; + } + + public final c b(String paramString) { + this.d = paramString; + return this; + } + + public final f b() { + a a = new a(); + a.a("state", this.a); + a.a("requestTaskId", this.b); + a.a("header", this.c); + a.a("statusCode", this.d); + a.a("isPrefetch", this.e); + a.a("__nativeBuffers__", this.f); + a.a("data", this.g); + a.a("errMsg", this.h); + return new f(a); + } + + public final c c(String paramString) { + this.g = paramString; + return this; + } + + public final c d(String paramString) { + this.h = paramString; + return this; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\a\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/d.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/d.java new file mode 100644 index 0000000..3d9930b --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/a/d.java @@ -0,0 +1,85 @@ +package com.bytedance.sandboxapp.a.a.a; + +import com.bytedance.sandboxapp.b.b.a; +import com.bytedance.sandboxapp.c.a.a.f; + +public final class d { + private String a; + + private Integer b; + + private String c; + + private String d; + + private Integer e; + + private Long f; + + private Long g; + + private String h; + + public static d a() { + return new d(); + } + + public final d a(Integer paramInteger) { + this.b = paramInteger; + return this; + } + + public final d a(Long paramLong) { + this.f = paramLong; + return this; + } + + public final d a(String paramString) { + this.a = paramString; + return this; + } + + public final d b(Integer paramInteger) { + this.e = paramInteger; + return this; + } + + public final d b(Long paramLong) { + this.g = paramLong; + return this; + } + + public final d b(String paramString) { + this.c = paramString; + return this; + } + + public final f b() { + a a = new a(); + a.a("state", this.a); + a.a("uploadTaskId", this.b); + a.a("statusCode", this.c); + a.a("data", this.d); + a.a("progress", this.e); + a.a("totalBytesSent", this.f); + a.a("totalBytesExpectedToSend", this.g); + a.a("errMsg", this.h); + return new f(a); + } + + public final d c(String paramString) { + this.d = paramString; + return this; + } + + public final d d(String paramString) { + this.h = paramString; + return this; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\a\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/b/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/b/a.java new file mode 100644 index 0000000..f713c63 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/b/a.java @@ -0,0 +1,242 @@ +package com.bytedance.sandboxapp.a.a.b; + +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.c.a.b.a.a.b; +import com.bytedance.sandboxapp.c.a.b.a.a.c; +import com.bytedance.sandboxapp.c.a.b.a.a.d; +import com.bytedance.sandboxapp.c.a.b.a.a.e; +import com.bytedance.sandboxapp.c.a.b.b.b; +import com.bytedance.sandboxapp.c.a.b.e.b; +import com.bytedance.sandboxapp.c.a.b.e.c; +import com.bytedance.sandboxapp.c.a.b.f.b; +import com.bytedance.sandboxapp.c.a.b.f.c; +import com.bytedance.sandboxapp.c.a.b.f.d; +import com.bytedance.sandboxapp.c.a.b.f.e; +import com.bytedance.sandboxapp.c.a.b.f.f; +import com.tt.miniapp.business.frontendapihandle.handler.SubScribeMessageApiHandler; + +public final class a { + public static com.bytedance.sandboxapp.c.a.a.a a(b paramb, com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + byte b1; + String str = parama.b; + switch (str.hashCode()) { + default: + b1 = -1; + break; + case 2050035697: + if (str.equals("cancelDxppAd")) { + b1 = 9; + break; + } + case 1907068440: + if (str.equals("createRequestTask")) { + b1 = 14; + break; + } + case 1862428397: + if (str.equals("openInnerSchema")) { + b1 = 2; + break; + } + case 1582448962: + if (str.equals("createUploadTask")) { + b1 = 22; + break; + } + case 1472294650: + if (str.equals("subscribeAppAd")) { + b1 = 7; + break; + } + case 1021781457: + if (str.equals("operateDownloadTask")) { + b1 = 19; + break; + } + case 1011742215: + if (str.equals("createInnerDownloadTask")) { + b1 = 20; + break; + } + case 725240844: + if (str.equals("requestSubscribeMessage")) { + b1 = 0; + break; + } + case 695408380: + if (str.equals("getRenderEnvSync")) { + b1 = 26; + break; + } + case 571189794: + if (str.equals("operateInnerRequestTask")) { + b1 = 17; + break; + } + case 413795712: + if (str.equals("createInnerUploadTask")) { + b1 = 24; + break; + } + case 389068739: + if (str.equals("checkFollowAwemeState")) { + b1 = 3; + break; + } + case 343518847: + if (str.equals("operateInnerDownloadTask")) { + b1 = 21; + break; + } + case 332589195: + if (str.equals("openSchema")) { + b1 = 1; + break; + } + case 285565044: + if (str.equals("getAppInfoSync")) { + b1 = 28; + break; + } + case 196312531: + if (str.equals("unsubscribeAppAd")) { + b1 = 10; + break; + } + case 180138151: + if (str.equals("getHostInfoSync")) { + b1 = 27; + break; + } + case 38556058: + if (str.equals("createInnerRequestTask")) { + b1 = 16; + break; + } + case -515309424: + if (str.equals("operateRequestTask")) { + b1 = 15; + break; + } + case -734965087: + if (str.equals("hostLogin")) { + b1 = 13; + break; + } + case -1023873614: + if (str.equals("openAdLandPageLinks")) { + b1 = 11; + break; + } + case -1093043208: + if (str.equals("operateInnerUploadTask")) { + b1 = 25; + break; + } + case -1193916087: + if (str.equals("createDownloadTask")) { + b1 = 18; + break; + } + case -1196745559: + if (str.equals("requestWXH5Payment")) { + b1 = 12; + break; + } + case -1266638902: + if (str.equals("operateUploadTask")) { + b1 = 23; + break; + } + case -1317783337: + if (str.equals("dxppAd")) { + b1 = 8; + break; + } + case -1594782195: + if (str.equals("getExtConfig")) { + b1 = 5; + break; + } + case -1650151807: + if (str.equals("openAwemeUserProfile")) { + b1 = 4; + break; + } + case -1839641016: + if (str.equals("getExtConfigSync")) { + b1 = 6; + break; + } + } + switch (b1) { + default: + return null; + case 28: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.e.a(paramb, com.bytedance.sandboxapp.a.a.d.a.C); + case 27: + return (com.bytedance.sandboxapp.c.a.a.a)new b(paramb, com.bytedance.sandboxapp.a.a.d.a.B); + case 26: + return (com.bytedance.sandboxapp.c.a.a.a)new c(paramb, com.bytedance.sandboxapp.a.a.d.a.A); + case 25: + return (com.bytedance.sandboxapp.c.a.a.a)new f(paramb, com.bytedance.sandboxapp.a.a.d.a.z); + case 24: + return (com.bytedance.sandboxapp.c.a.a.a)new c(paramb, com.bytedance.sandboxapp.a.a.d.a.y); + case 23: + return (com.bytedance.sandboxapp.c.a.a.a)new f(paramb, com.bytedance.sandboxapp.a.a.d.a.x); + case 22: + return (com.bytedance.sandboxapp.c.a.a.a)new c(paramb, com.bytedance.sandboxapp.a.a.d.a.w); + case 21: + return (com.bytedance.sandboxapp.c.a.a.a)new d(paramb, com.bytedance.sandboxapp.a.a.d.a.v); + case 20: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.f.a(paramb, com.bytedance.sandboxapp.a.a.d.a.u); + case 19: + return (com.bytedance.sandboxapp.c.a.a.a)new d(paramb, com.bytedance.sandboxapp.a.a.d.a.t); + case 18: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.f.a(paramb, com.bytedance.sandboxapp.a.a.d.a.s); + case 17: + return (com.bytedance.sandboxapp.c.a.a.a)new e(paramb, com.bytedance.sandboxapp.a.a.d.a.r); + case 16: + return (com.bytedance.sandboxapp.c.a.a.a)new b(paramb, com.bytedance.sandboxapp.a.a.d.a.q); + case 15: + return (com.bytedance.sandboxapp.c.a.a.a)new e(paramb, com.bytedance.sandboxapp.a.a.d.a.p); + case 14: + return (com.bytedance.sandboxapp.c.a.a.a)new b(paramb, com.bytedance.sandboxapp.a.a.d.a.o); + case 13: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.h.a(paramb, com.bytedance.sandboxapp.a.a.d.a.n); + case 12: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.g.a(paramb, com.bytedance.sandboxapp.a.a.d.a.m); + case 11: + return (com.bytedance.sandboxapp.c.a.a.a)new c(paramb, com.bytedance.sandboxapp.a.a.d.a.l); + case 10: + return (com.bytedance.sandboxapp.c.a.a.a)new e(paramb, com.bytedance.sandboxapp.a.a.d.a.k); + case 9: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.a.a.a(paramb, com.bytedance.sandboxapp.a.a.d.a.j); + case 8: + return (com.bytedance.sandboxapp.c.a.a.a)new b(paramb, com.bytedance.sandboxapp.a.a.d.a.i); + case 7: + return (com.bytedance.sandboxapp.c.a.a.a)new d(paramb, com.bytedance.sandboxapp.a.a.d.a.h); + case 6: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.c.a(paramb, com.bytedance.sandboxapp.a.a.d.a.g); + case 5: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.c.a(paramb, com.bytedance.sandboxapp.a.a.d.a.f); + case 4: + return (com.bytedance.sandboxapp.c.a.a.a)new b(paramb, com.bytedance.sandboxapp.a.a.d.a.e); + case 3: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.b.a(paramb, com.bytedance.sandboxapp.a.a.d.a.d); + case 2: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.d.a(paramb, com.bytedance.sandboxapp.a.a.d.a.c); + case 1: + return (com.bytedance.sandboxapp.c.a.a.a)new com.bytedance.sandboxapp.c.a.b.d.a(paramb, com.bytedance.sandboxapp.a.a.d.a.b); + case 0: + break; + } + return (com.bytedance.sandboxapp.c.a.a.a)new SubScribeMessageApiHandler(paramb, com.bytedance.sandboxapp.a.a.d.a.a); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\b\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/a.java new file mode 100644 index 0000000..6701a01 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/a.java @@ -0,0 +1,157 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import org.json.JSONObject; + +public abstract class a extends c { + public a(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("feature is not supported in app", new Object[0]), 0).a()); + } + + public abstract void a(a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1); + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + a a1 = new a(this, parama); + if (a1.a != null) { + callbackData(a1.a); + return; + } + a(a1, parama); + } + + public final class a { + public ApiCallbackData a; + + public final Number b; + + public final String c; + + public final String d; + + public final String e; + + public final String f; + + public final String g; + + public final String h; + + public final String i; + + public final String j; + + public final Integer k; + + public final Integer l; + + public final JSONObject m; + + public a(a this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + String str = param1a.b; + Object object2 = param1a.a("cid"); + if (object2 instanceof Number) { + this.b = (Number)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "cid"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "cid", "Number"); + } + this.b = null; + } + object2 = param1a.a("app_name"); + if (object2 instanceof String) { + this.c = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "app_name"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "app_name", "String"); + } + this.c = null; + } + object2 = param1a.a("package_name"); + if (object2 instanceof String) { + this.d = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "package_name"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "package_name", "String"); + } + this.d = null; + } + object2 = param1a.a("source_avatar"); + if (object2 instanceof String) { + this.e = (String)object2; + } else { + this.e = null; + } + object2 = param1a.a("download_url"); + if (object2 instanceof String) { + this.f = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "download_url"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "download_url", "String"); + } + this.f = null; + } + Object object1 = param1a.a("open_url"); + if (object1 instanceof String) { + this.g = (String)object1; + } else { + this.g = null; + } + object1 = param1a.a("quick_app_url"); + if (object1 instanceof String) { + this.h = (String)object1; + } else { + this.h = null; + } + object1 = param1a.a("web_url"); + if (object1 instanceof String) { + this.i = (String)object1; + } else { + this.i = null; + } + object1 = param1a.a("web_title"); + if (object1 instanceof String) { + this.j = (String)object1; + } else { + this.j = null; + } + object1 = param1a.a("auto_open"); + if (object1 instanceof Integer) { + this.k = (Integer)object1; + } else { + this.k = null; + } + object1 = param1a.a("download_mode"); + if (object1 instanceof Integer) { + this.l = (Integer)object1; + } else { + this.l = null; + } + object1 = param1a.a("log_extra"); + if (object1 instanceof JSONObject) { + this.m = (JSONObject)object1; + return; + } + this.m = null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/b.java new file mode 100644 index 0000000..d2abc95 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/b.java @@ -0,0 +1,51 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; + +public abstract class b extends c { + public b(com.bytedance.sandboxapp.c.a.b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("feature is not supported in app", new Object[0]), 0).a()); + } + + public final void a(String paramString) { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("checkFollowAwemeState:%s", new Object[] { paramString }), 0).a()); + } + + public final void b() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("not login", new Object[0]), 0).a()); + } + + public final void c() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("aweme uid is null", new Object[0]), 0).a()); + } + + public static final class a { + private Boolean a; + + public static a a() { + return new a(); + } + + public final a a(Boolean param1Boolean) { + this.a = param1Boolean; + return this; + } + + public final com.bytedance.sandboxapp.b.b.a b() { + com.bytedance.sandboxapp.b.b.a a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("hasFollowed", this.a); + return a1; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/c.java new file mode 100644 index 0000000..1fc4b58 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/c.java @@ -0,0 +1,100 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.d; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import org.json.JSONObject; + +public abstract class c extends d { + public c(com.bytedance.sandboxapp.c.a.b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public abstract ApiCallbackData a(b paramb, com.bytedance.sandboxapp.protocol.service.api.entity.a parama); + + public final ApiCallbackData a(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + b b = new b(this, parama); + return (b.a != null) ? b.a : a(b, parama); + } + + public final ApiCallbackData a(String paramString) { + return ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("url is not valid domain, url == %s", new Object[] { paramString }), 0).a(); + } + + public final ApiCallbackData b(String paramString) { + return ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("permission denied, open \"%s\"", new Object[] { paramString }), 0).a(); + } + + public final ApiCallbackData c(String paramString) { + return ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("no such file or directory \"%s\"", new Object[] { paramString }), 0).a(); + } + + public static final class a { + private Integer a; + + public static a a() { + return new a(); + } + + public final a a(Integer param1Integer) { + this.a = param1Integer; + return this; + } + + public final com.bytedance.sandboxapp.b.b.a b() { + com.bytedance.sandboxapp.b.b.a a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("downloadTaskId", this.a); + return a1; + } + } + + public final class b { + public ApiCallbackData a; + + public final String b; + + public final JSONObject c; + + public final String d; + + public final Boolean e; + + public b(c this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + String str = param1a.b; + Object object2 = param1a.a("url"); + if (object2 instanceof String) { + this.b = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "url"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "url", "String"); + } + this.b = null; + } + Object object1 = param1a.a("header"); + if (object1 instanceof JSONObject) { + this.c = (JSONObject)object1; + } else { + this.c = null; + } + object1 = param1a.a("filePath"); + if (object1 instanceof String) { + this.d = (String)object1; + } else { + this.d = null; + } + object1 = param1a.a("useCloud"); + if (object1 instanceof Boolean) { + this.e = (Boolean)object1; + return; + } + this.e = Boolean.valueOf(false); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/d.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/d.java new file mode 100644 index 0000000..f810131 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/d.java @@ -0,0 +1,142 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.d; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import org.json.JSONArray; +import org.json.JSONObject; + +public abstract class d extends d { + public d(com.bytedance.sandboxapp.c.a.b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public abstract ApiCallbackData a(b paramb, com.bytedance.sandboxapp.protocol.service.api.entity.a parama); + + public final ApiCallbackData a(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + b b = new b(this, parama); + return (b.a != null) ? b.a : a(b, parama); + } + + public final ApiCallbackData a(String paramString) { + return ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("url is not valid domain, url == %s", new Object[] { paramString }), 0).a(); + } + + public static final class a { + private Integer a; + + public static a a() { + return new a(); + } + + public final a a(Integer param1Integer) { + this.a = param1Integer; + return this; + } + + public final com.bytedance.sandboxapp.b.b.a b() { + com.bytedance.sandboxapp.b.b.a a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("requestTaskId", this.a); + return a1; + } + } + + public final class b { + public ApiCallbackData a; + + public final String b; + + public final Boolean c; + + public final String d; + + public final String e; + + public final JSONObject f; + + public final String g; + + public final JSONArray h; + + public final Boolean i; + + public final Boolean j; + + public b(d this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + boolean bool; + String str = param1a.b; + Object object2 = param1a.a("url"); + if (object2 instanceof String) { + this.b = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "url"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "url", "String"); + } + this.b = null; + } + object2 = param1a.a("usePrefetchCache"); + if (object2 instanceof Boolean) { + this.c = (Boolean)object2; + } else { + this.c = Boolean.valueOf(false); + } + object2 = param1a.a("method"); + if (object2 instanceof String) { + this.d = (String)object2; + } else { + this.d = "GET"; + } + object2 = this.d; + if (object2 != null && (object2.equals("") || this.d.equals("OPTIONS") || this.d.equals("GET") || this.d.equals("HEAD") || this.d.equals("POST") || this.d.equals("PUT") || this.d.equals("DELETE") || this.d.equals("TRACE") || this.d.equals("CONNECT"))) { + bool = true; + } else { + bool = false; + } + if (!bool) + this.a = com.bytedance.sandboxapp.c.a.a.a.a.b(str, "method"); + Object object1 = param1a.a("data"); + if (object1 instanceof String) { + this.e = (String)object1; + } else { + this.e = null; + } + object1 = param1a.a("header"); + if (object1 instanceof JSONObject) { + this.f = (JSONObject)object1; + } else { + this.f = null; + } + object1 = param1a.a("responseType"); + if (object1 instanceof String) { + this.g = (String)object1; + } else { + this.g = "text"; + } + object1 = param1a.a("__nativeBuffers__"); + if (object1 instanceof JSONArray) { + this.h = (JSONArray)object1; + } else { + this.h = null; + } + object1 = param1a.a("useCloud"); + if (object1 instanceof Boolean) { + this.i = (Boolean)object1; + } else { + this.i = Boolean.valueOf(false); + } + object1 = param1a.a("useTTNet"); + if (object1 instanceof Boolean) { + this.j = (Boolean)object1; + return; + } + this.j = Boolean.valueOf(false); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/e.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/e.java new file mode 100644 index 0000000..26fb9dd --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/e.java @@ -0,0 +1,127 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.d; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import org.json.JSONObject; + +public abstract class e extends d { + public e(com.bytedance.sandboxapp.c.a.b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public abstract ApiCallbackData a(b paramb, com.bytedance.sandboxapp.protocol.service.api.entity.a parama); + + public final ApiCallbackData a(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + b b = new b(this, parama); + return (b.a != null) ? b.a : a(b, parama); + } + + public final ApiCallbackData a(String paramString) { + return ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("url is not valid domain, url == %s", new Object[] { paramString }), 0).a(); + } + + public static final class a { + private Integer a; + + public static a a() { + return new a(); + } + + public final a a(Integer param1Integer) { + this.a = param1Integer; + return this; + } + + public final com.bytedance.sandboxapp.b.b.a b() { + com.bytedance.sandboxapp.b.b.a a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("uploadTaskId", this.a); + return a1; + } + } + + public final class b { + public ApiCallbackData a; + + public final String b; + + public final String c; + + public final String d; + + public final JSONObject e; + + public final JSONObject f; + + public final Boolean g; + + public b(e this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + boolean bool; + String str = param1a.b; + Object object2 = param1a.a("url"); + if (object2 instanceof String) { + this.b = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "url"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "url", "String"); + } + this.b = null; + } + object2 = param1a.a("filePath"); + if (object2 instanceof String) { + this.c = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "filePath"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "filePath", "String"); + } + this.c = null; + } + object2 = param1a.a("name"); + if (object2 instanceof String) { + this.d = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "name"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "name", "String"); + } + this.d = null; + } + object2 = this.d; + if (object2 != null && object2.equals("")) { + bool = true; + } else { + bool = false; + } + if (bool) + this.a = com.bytedance.sandboxapp.c.a.a.a.a.b(str, "name"); + Object object1 = param1a.a("header"); + if (object1 instanceof JSONObject) { + this.e = (JSONObject)object1; + } else { + this.e = null; + } + object1 = param1a.a("formData"); + if (object1 instanceof JSONObject) { + this.f = (JSONObject)object1; + } else { + this.f = null; + } + object1 = param1a.a("useCloud"); + if (object1 instanceof Boolean) { + this.g = (Boolean)object1; + return; + } + this.g = Boolean.valueOf(false); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/f.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/f.java new file mode 100644 index 0000000..9bdc3f4 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/f.java @@ -0,0 +1,161 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import org.json.JSONObject; + +public abstract class f extends c { + public f(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("feature is not supported in app", new Object[0]), 0).a()); + } + + public abstract void a(a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1); + + public final void b() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("auth deny", new Object[0]), 0).a()); + } + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + a a1 = new a(this, parama); + if (a1.a != null) { + callbackData(a1.a); + return; + } + a(a1, parama); + } + + public final class a { + public ApiCallbackData a; + + public final Number b; + + public final String c; + + public final String d; + + public final String e; + + public final String f; + + public final String g; + + public final String h; + + public final String i; + + public final String j; + + public final Integer k; + + public final Integer l; + + public final JSONObject m; + + public a(f this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + String str = param1a.b; + Object object2 = param1a.a("cid"); + if (object2 instanceof Number) { + this.b = (Number)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "cid"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "cid", "Number"); + } + this.b = null; + } + object2 = param1a.a("app_name"); + if (object2 instanceof String) { + this.c = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "app_name"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "app_name", "String"); + } + this.c = null; + } + object2 = param1a.a("package_name"); + if (object2 instanceof String) { + this.d = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "package_name"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "package_name", "String"); + } + this.d = null; + } + object2 = param1a.a("source_avatar"); + if (object2 instanceof String) { + this.e = (String)object2; + } else { + this.e = null; + } + object2 = param1a.a("download_url"); + if (object2 instanceof String) { + this.f = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "download_url"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "download_url", "String"); + } + this.f = null; + } + Object object1 = param1a.a("open_url"); + if (object1 instanceof String) { + this.g = (String)object1; + } else { + this.g = null; + } + object1 = param1a.a("quick_app_url"); + if (object1 instanceof String) { + this.h = (String)object1; + } else { + this.h = null; + } + object1 = param1a.a("web_url"); + if (object1 instanceof String) { + this.i = (String)object1; + } else { + this.i = null; + } + object1 = param1a.a("web_title"); + if (object1 instanceof String) { + this.j = (String)object1; + } else { + this.j = null; + } + object1 = param1a.a("auto_open"); + if (object1 instanceof Integer) { + this.k = (Integer)object1; + } else { + this.k = null; + } + object1 = param1a.a("download_mode"); + if (object1 instanceof Integer) { + this.l = (Integer)object1; + } else { + this.l = null; + } + object1 = param1a.a("log_extra"); + if (object1 instanceof JSONObject) { + this.m = (JSONObject)object1; + return; + } + this.m = null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\f.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/g.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/g.java new file mode 100644 index 0000000..50721b8 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/g.java @@ -0,0 +1,98 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.d; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import org.json.JSONArray; + +public abstract class g extends d { + public g(com.bytedance.sandboxapp.c.a.b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public abstract ApiCallbackData a(b paramb, com.bytedance.sandboxapp.protocol.service.api.entity.a parama); + + public final ApiCallbackData a(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + b b = new b(this, parama); + return (b.a != null) ? b.a : a(b, parama); + } + + public static final class a { + private String a; + + private String b; + + private String c; + + private JSONArray d; + + private JSONArray e; + + private Integer f; + + public static a a() { + return new a(); + } + + public final a a(Integer param1Integer) { + this.f = param1Integer; + return this; + } + + public final a a(String param1String) { + this.a = param1String; + return this; + } + + public final a a(JSONArray param1JSONArray) { + this.d = param1JSONArray; + return this; + } + + public final a b(String param1String) { + this.b = param1String; + return this; + } + + public final a b(JSONArray param1JSONArray) { + this.e = param1JSONArray; + return this; + } + + public final com.bytedance.sandboxapp.b.b.a b() { + com.bytedance.sandboxapp.b.b.a a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("schema", this.a); + a1.a("appId", this.b); + a1.a("session", this.c); + a1.a("whiteList", this.d); + a1.a("blackList", this.e); + a1.a("pkgType", this.f); + return a1; + } + + public final a c(String param1String) { + this.c = param1String; + return this; + } + } + + public final class b { + public ApiCallbackData a; + + public final Boolean b; + + public b(g this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + Object object = param1a.a("needSession"); + if (object instanceof Boolean) { + this.b = (Boolean)object; + return; + } + this.b = Boolean.valueOf(false); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\g.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/h.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/h.java new file mode 100644 index 0000000..d50812b --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/h.java @@ -0,0 +1,36 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.e; +import com.bytedance.sandboxapp.c.a.b; +import org.json.JSONObject; + +public abstract class h extends e { + public h(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public static final class a { + private JSONObject a; + + public static a a() { + return new a(); + } + + public final a a(JSONObject param1JSONObject) { + this.a = param1JSONObject; + return this; + } + + public final com.bytedance.sandboxapp.b.b.a b() { + com.bytedance.sandboxapp.b.b.a a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("extConfig", this.a); + return a1; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\h.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/i.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/i.java new file mode 100644 index 0000000..7a4df37 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/i.java @@ -0,0 +1,101 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.d; +import com.bytedance.sandboxapp.c.a.b; + +public abstract class i extends d { + public i(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public static final class a { + private String a; + + private String b; + + private String c; + + private String d; + + private String e; + + private String f; + + private String g; + + private String h; + + private Boolean i; + + public static a a() { + return new a(); + } + + public final a a(Boolean param1Boolean) { + this.i = param1Boolean; + return this; + } + + public final a a(String param1String) { + this.a = param1String; + return this; + } + + public final a b(String param1String) { + this.b = param1String; + return this; + } + + public final com.bytedance.sandboxapp.b.b.a b() { + com.bytedance.sandboxapp.b.b.a a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("aid", this.a); + a1.a("did", this.b); + a1.a("channel", this.c); + a1.a("osVersion", this.d); + a1.a("version", this.e); + a1.a("updateVersion", this.f); + a1.a("devicePlatform", this.g); + a1.a("uid", this.h); + a1.a("isLogin", this.i); + com.bytedance.sandboxapp.b.b.a a2 = new com.bytedance.sandboxapp.b.b.a(); + a2.a("data", a1.a); + return a2; + } + + public final a c(String param1String) { + this.c = param1String; + return this; + } + + public final a d(String param1String) { + this.d = param1String; + return this; + } + + public final a e(String param1String) { + this.e = param1String; + return this; + } + + public final a f(String param1String) { + this.f = param1String; + return this; + } + + public final a g(String param1String) { + this.g = param1String; + return this; + } + + public final a h(String param1String) { + this.h = param1String; + return this; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\i.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/j.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/j.java new file mode 100644 index 0000000..36083ec --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/j.java @@ -0,0 +1,51 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.d; +import com.bytedance.sandboxapp.c.a.b; + +public abstract class j extends d { + public j(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public static final class a { + private Boolean a; + + private Boolean b; + + private Boolean c; + + public static a a() { + return new a(); + } + + public final a a(Boolean param1Boolean) { + this.a = param1Boolean; + return this; + } + + public final a b(Boolean param1Boolean) { + this.b = param1Boolean; + return this; + } + + public final com.bytedance.sandboxapp.b.b.a b() { + com.bytedance.sandboxapp.b.b.a a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("useWebVideo", this.a); + a1.a("useTTWebviewRender", this.b); + a1.a("useWebLivePlayer", this.c); + return a1; + } + + public final a c(Boolean param1Boolean) { + this.c = param1Boolean; + return this; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\j.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/k.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/k.java new file mode 100644 index 0000000..18132df --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/k.java @@ -0,0 +1,24 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.a; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; + +public abstract class k extends c { + public k(b paramb, a parama) { + super(paramb, parama); + } + + public final void a(String paramString) { + callbackData(ApiCallbackData.a.a(((a)this).apiName, a.a("login fail %s", new Object[] { paramString }), 0).a()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\k.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/l.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/l.java new file mode 100644 index 0000000..4a0720f --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/l.java @@ -0,0 +1,92 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import org.json.JSONObject; + +public abstract class l extends c { + public l(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("feature is not supported in app", new Object[0]), 0).a()); + } + + public abstract void a(a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1); + + public final void a(String paramString) { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("open schema fail, schema is %s", new Object[] { paramString }), 0).a()); + } + + public final void b() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("schema is invalid", new Object[0]), 0).a()); + } + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + a a1 = new a(this, parama); + if (a1.a != null) { + callbackData(a1.a); + return; + } + a(a1, parama); + } + + public final class a { + public ApiCallbackData a; + + public final String b; + + public final String c; + + public final JSONObject d; + + public a(l this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + boolean bool; + String str = param1a.b; + Object object2 = param1a.a("type"); + if (object2 instanceof String) { + this.b = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "type"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "type", "String"); + } + this.b = null; + } + object2 = this.b; + if (object2 != null && (object2.equals("quickapp") || this.b.equals("schema") || this.b.equals("microapp") || this.b.equals("market"))) { + bool = true; + } else { + bool = false; + } + if (!bool) + this.a = com.bytedance.sandboxapp.c.a.a.a.a.b(str, "type"); + object2 = param1a.a("schema"); + if (object2 instanceof String) { + this.c = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "schema"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "schema", "String"); + } + this.c = null; + } + Object object1 = param1a.a("data"); + if (object1 instanceof JSONObject) { + this.d = (JSONObject)object1; + return; + } + this.d = null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\l.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/m.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/m.java new file mode 100644 index 0000000..a2662b3 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/m.java @@ -0,0 +1,56 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; + +public abstract class m extends c { + public m(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("feature is not supported in app", new Object[0]), 0).a()); + } + + public final void a(String paramString) { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("openAwemeUserProfile:%s", new Object[] { paramString }), 0).a()); + } + + public final void b() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("not login", new Object[0]), 0).a()); + } + + public final void c() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("activity is null", new Object[0]), 0).a()); + } + + public final void d() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("aweme uid is null", new Object[0]), 0).a()); + } + + public static final class a { + private Boolean a; + + public static a a() { + return new a(); + } + + public final a a(Boolean param1Boolean) { + this.a = param1Boolean; + return this; + } + + public final com.bytedance.sandboxapp.b.b.a b() { + com.bytedance.sandboxapp.b.b.a a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("hasFollowed", this.a); + return a1; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\m.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/n.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/n.java new file mode 100644 index 0000000..630a5ca --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/n.java @@ -0,0 +1,81 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; + +public abstract class n extends c { + public n(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public abstract void a(a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1); + + public final void a(String paramString) { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("not in valid domains, schema == %s", new Object[] { paramString }), 0).a()); + } + + public final void a(String paramString1, String paramString2) { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("host open schema fail: %s, schema == %s", new Object[] { paramString1, paramString2 }), 0).a()); + } + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + a a1 = new a(this, parama); + if (a1.a != null) { + callbackData(a1.a); + return; + } + a(a1, parama); + } + + public final class a { + public ApiCallbackData a; + + public final String b; + + public final Boolean c; + + public final Boolean d; + + public final Integer e; + + public a(n this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + String str = param1a.b; + Object object2 = param1a.a("schema"); + if (object2 instanceof String) { + this.b = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "schema"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "schema", "String"); + } + this.b = null; + } + Object object1 = param1a.a("killCurrentProcess"); + if (object1 instanceof Boolean) { + this.c = (Boolean)object1; + } else { + this.c = Boolean.valueOf(false); + } + object1 = param1a.a("forceColdBoot"); + if (object1 instanceof Boolean) { + this.d = (Boolean)object1; + } else { + this.d = Boolean.valueOf(false); + } + object1 = param1a.a("toolbarStyle"); + if (object1 instanceof Integer) { + this.e = (Integer)object1; + return; + } + this.e = Integer.valueOf(0); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\n.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/o.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/o.java new file mode 100644 index 0000000..ebca88f --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/o.java @@ -0,0 +1,62 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; + +public abstract class o extends c { + public o(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public abstract void a(a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1); + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + a a1 = new a(this, parama); + if (a1.a != null) { + callbackData(a1.a); + return; + } + a(a1, parama); + } + + public final class a { + public ApiCallbackData a; + + public final Integer b; + + public final String c; + + public a(o this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + String str = param1a.b; + Object object2 = param1a.a("downloadTaskId"); + if (object2 instanceof Integer) { + this.b = (Integer)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "downloadTaskId"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "downloadTaskId", "Integer"); + } + this.b = null; + } + Object object1 = param1a.a("operationType"); + if (object1 instanceof String) { + this.c = (String)object1; + return; + } + if (object1 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "operationType"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "operationType", "String"); + } + this.c = null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\o.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/p.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/p.java new file mode 100644 index 0000000..930ef0f --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/p.java @@ -0,0 +1,62 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; + +public abstract class p extends c { + public p(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public abstract void a(a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1); + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + a a1 = new a(this, parama); + if (a1.a != null) { + callbackData(a1.a); + return; + } + a(a1, parama); + } + + public final class a { + public ApiCallbackData a; + + public final Integer b; + + public final String c; + + public a(p this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + String str = param1a.b; + Object object2 = param1a.a("requestTaskId"); + if (object2 instanceof Integer) { + this.b = (Integer)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "requestTaskId"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "requestTaskId", "Integer"); + } + this.b = null; + } + Object object1 = param1a.a("operationType"); + if (object1 instanceof String) { + this.c = (String)object1; + return; + } + if (object1 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "operationType"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "operationType", "String"); + } + this.c = null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\p.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/q.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/q.java new file mode 100644 index 0000000..2a289e9 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/q.java @@ -0,0 +1,62 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; + +public abstract class q extends c { + public q(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public abstract void a(a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1); + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + a a1 = new a(this, parama); + if (a1.a != null) { + callbackData(a1.a); + return; + } + a(a1, parama); + } + + public final class a { + public ApiCallbackData a; + + public final Integer b; + + public final String c; + + public a(q this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + String str = param1a.b; + Object object2 = param1a.a("uploadTaskId"); + if (object2 instanceof Integer) { + this.b = (Integer)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "uploadTaskId"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "uploadTaskId", "Integer"); + } + this.b = null; + } + Object object1 = param1a.a("operationType"); + if (object1 instanceof String) { + this.c = (String)object1; + return; + } + if (object1 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "operationType"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "operationType", "String"); + } + this.c = null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\q.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/r.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/r.java new file mode 100644 index 0000000..92a9d01 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/r.java @@ -0,0 +1,102 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; + +public abstract class r extends c { + public r(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("wechat is not installed", new Object[0]), 0).a()); + } + + public abstract void a(a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1); + + public final void a(String paramString) { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("pay fail:%s", new Object[] { paramString }), 0).a()); + } + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + a a1 = new a(this, parama); + if (a1.a != null) { + callbackData(a1.a); + return; + } + a(a1, parama); + } + + public final class a { + public ApiCallbackData a; + + public final String b; + + public final String c; + + public final Integer d; + + public final Integer e; + + public final Integer f; + + public final Integer g; + + public a(r this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + String str = param1a.b; + Object object2 = param1a.a("url"); + if (object2 instanceof String) { + this.b = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "url"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "url", "String"); + } + this.b = null; + } + object2 = param1a.a("referer"); + if (object2 instanceof String) { + this.c = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "referer"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "referer", "String"); + } + this.c = null; + } + Object object1 = param1a.a("x"); + if (object1 instanceof Integer) { + this.d = (Integer)object1; + } else { + this.d = Integer.valueOf(0); + } + object1 = param1a.a("y"); + if (object1 instanceof Integer) { + this.e = (Integer)object1; + } else { + this.e = Integer.valueOf(0); + } + object1 = param1a.a("width"); + if (object1 instanceof Integer) { + this.f = (Integer)object1; + } else { + this.f = Integer.valueOf(0); + } + object1 = param1a.a("height"); + if (object1 instanceof Integer) { + this.g = (Integer)object1; + return; + } + this.g = Integer.valueOf(0); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\r.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/s.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/s.java new file mode 100644 index 0000000..783661d --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/s.java @@ -0,0 +1,157 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import org.json.JSONObject; + +public abstract class s extends c { + public s(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("feature is not supported in app", new Object[0]), 0).a()); + } + + public abstract void a(a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1); + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + a a1 = new a(this, parama); + if (a1.a != null) { + callbackData(a1.a); + return; + } + a(a1, parama); + } + + public final class a { + public ApiCallbackData a; + + public final Number b; + + public final String c; + + public final String d; + + public final String e; + + public final String f; + + public final String g; + + public final String h; + + public final String i; + + public final String j; + + public final Integer k; + + public final Integer l; + + public final JSONObject m; + + public a(s this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + String str = param1a.b; + Object object2 = param1a.a("cid"); + if (object2 instanceof Number) { + this.b = (Number)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "cid"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "cid", "Number"); + } + this.b = null; + } + object2 = param1a.a("app_name"); + if (object2 instanceof String) { + this.c = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "app_name"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "app_name", "String"); + } + this.c = null; + } + object2 = param1a.a("package_name"); + if (object2 instanceof String) { + this.d = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "package_name"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "package_name", "String"); + } + this.d = null; + } + object2 = param1a.a("source_avatar"); + if (object2 instanceof String) { + this.e = (String)object2; + } else { + this.e = null; + } + object2 = param1a.a("download_url"); + if (object2 instanceof String) { + this.f = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "download_url"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "download_url", "String"); + } + this.f = null; + } + Object object1 = param1a.a("open_url"); + if (object1 instanceof String) { + this.g = (String)object1; + } else { + this.g = null; + } + object1 = param1a.a("quick_app_url"); + if (object1 instanceof String) { + this.h = (String)object1; + } else { + this.h = null; + } + object1 = param1a.a("web_url"); + if (object1 instanceof String) { + this.i = (String)object1; + } else { + this.i = null; + } + object1 = param1a.a("web_title"); + if (object1 instanceof String) { + this.j = (String)object1; + } else { + this.j = null; + } + object1 = param1a.a("auto_open"); + if (object1 instanceof Integer) { + this.k = (Integer)object1; + } else { + this.k = null; + } + object1 = param1a.a("download_mode"); + if (object1 instanceof Integer) { + this.l = (Integer)object1; + } else { + this.l = null; + } + object1 = param1a.a("log_extra"); + if (object1 instanceof JSONObject) { + this.m = (JSONObject)object1; + return; + } + this.m = null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\s.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/t.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/t.java new file mode 100644 index 0000000..0353387 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/c/t.java @@ -0,0 +1,157 @@ +package com.bytedance.sandboxapp.a.a.c; + +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import org.json.JSONObject; + +public abstract class t extends c { + public t(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a() { + callbackData(ApiCallbackData.a.a(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, com.a.a("feature is not supported in app", new Object[0]), 0).a()); + } + + public abstract void a(a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1); + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + a a1 = new a(this, parama); + if (a1.a != null) { + callbackData(a1.a); + return; + } + a(a1, parama); + } + + public final class a { + public ApiCallbackData a; + + public final Number b; + + public final String c; + + public final String d; + + public final String e; + + public final String f; + + public final String g; + + public final String h; + + public final String i; + + public final String j; + + public final Integer k; + + public final Integer l; + + public final JSONObject m; + + public a(t this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) { + String str = param1a.b; + Object object2 = param1a.a("cid"); + if (object2 instanceof Number) { + this.b = (Number)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "cid"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "cid", "Number"); + } + this.b = null; + } + object2 = param1a.a("app_name"); + if (object2 instanceof String) { + this.c = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "app_name"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "app_name", "String"); + } + this.c = null; + } + object2 = param1a.a("package_name"); + if (object2 instanceof String) { + this.d = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "package_name"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "package_name", "String"); + } + this.d = null; + } + object2 = param1a.a("source_avatar"); + if (object2 instanceof String) { + this.e = (String)object2; + } else { + this.e = null; + } + object2 = param1a.a("download_url"); + if (object2 instanceof String) { + this.f = (String)object2; + } else { + if (object2 == null) { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "download_url"); + } else { + this.a = com.bytedance.sandboxapp.c.a.a.a.a.a(str, "download_url", "String"); + } + this.f = null; + } + Object object1 = param1a.a("open_url"); + if (object1 instanceof String) { + this.g = (String)object1; + } else { + this.g = null; + } + object1 = param1a.a("quick_app_url"); + if (object1 instanceof String) { + this.h = (String)object1; + } else { + this.h = null; + } + object1 = param1a.a("web_url"); + if (object1 instanceof String) { + this.i = (String)object1; + } else { + this.i = null; + } + object1 = param1a.a("web_title"); + if (object1 instanceof String) { + this.j = (String)object1; + } else { + this.j = null; + } + object1 = param1a.a("auto_open"); + if (object1 instanceof Integer) { + this.k = (Integer)object1; + } else { + this.k = null; + } + object1 = param1a.a("download_mode"); + if (object1 instanceof Integer) { + this.l = (Integer)object1; + } else { + this.l = null; + } + object1 = param1a.a("log_extra"); + if (object1 instanceof JSONObject) { + this.m = (JSONObject)object1; + return; + } + this.m = null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\c\t.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/d/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/d/a.java new file mode 100644 index 0000000..546998b --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/d/a.java @@ -0,0 +1,119 @@ +package com.bytedance.sandboxapp.a.a.d; + +public final class a { + public static final a A; + + public static final a B; + + public static final a C; + + public static final a a; + + public static final a b; + + public static final a c; + + public static final a d; + + public static final a e; + + public static final a f; + + public static final a g; + + public static final a h; + + public static final a i; + + public static final a j; + + public static final a k; + + public static final a l; + + public static final a m; + + public static final a n; + + public static final a o; + + public static final a p; + + public static final a q; + + public static final a r; + + public static final a s; + + public static final a t; + + public static final a u; + + public static final a v; + + public static final a w; + + public static final a x; + + public static final a y; + + public static final a z; + + public final String D; + + public final String E; + + public final Boolean F; + + public final c G; + + public final b H; + + static { + Boolean bool1 = Boolean.valueOf(false); + a = new a("requestSubscribeMessage", "frontEndEnv", bool1, c.a, b.a); + b = new a("openSchema", "frontEndEnv", bool1, c.a, b.a); + c = new a("openInnerSchema", "frontEndEnv", bool1, c.a, b.a); + d = new a("checkFollowAwemeState", "frontEndEnv", bool1, c.a, b.a); + e = new a("openAwemeUserProfile", "frontEndEnv", bool1, c.a, b.a); + f = new a("getExtConfig", "frontEndEnv", bool1, c.a, b.a); + Boolean bool2 = Boolean.valueOf(true); + g = new a("getExtConfigSync", "frontEndEnv", bool2, c.a, b.a); + h = new a("subscribeAppAd", "frontEndEnv", bool1, c.a, b.a); + i = new a("dxppAd", "frontEndEnv", bool1, c.a, b.a); + j = new a("cancelDxppAd", "frontEndEnv", bool1, c.a, b.a); + k = new a("unsubscribeAppAd", "frontEndEnv", bool1, c.a, b.a); + l = new a("openAdLandPageLinks", "frontEndEnv", bool1, c.a, b.a); + m = new a("requestWXH5Payment", "frontEndEnv", bool1, c.a, b.a); + n = new a("hostLogin", "frontEndEnv", bool1, c.a, b.a); + o = new a("createRequestTask", "frontEndEnv", bool2, c.a, new b(bool2, bool1)); + p = new a("operateRequestTask", "frontEndEnv", bool1, c.a, b.a); + q = new a("createInnerRequestTask", "frontEndEnv", bool2, c.a, new b(bool2, bool1)); + r = new a("operateInnerRequestTask", "frontEndEnv", bool1, c.a, b.a); + s = new a("createDownloadTask", "frontEndEnv", bool2, c.a, new b(bool2, bool1)); + t = new a("operateDownloadTask", "frontEndEnv", bool1, c.a, b.a); + u = new a("createInnerDownloadTask", "frontEndEnv", bool2, c.a, new b(bool2, bool1)); + v = new a("operateInnerDownloadTask", "frontEndEnv", bool1, c.a, b.a); + w = new a("createUploadTask", "frontEndEnv", bool2, c.a, new b(bool2, bool1)); + x = new a("operateUploadTask", "frontEndEnv", bool1, c.a, b.a); + y = new a("createInnerUploadTask", "frontEndEnv", bool2, c.a, new b(bool2, bool1)); + z = new a("operateInnerUploadTask", "frontEndEnv", bool1, c.a, b.a); + A = new a("getRenderEnvSync", "frontEndEnv", bool2, c.a, b.a); + B = new a("getHostInfoSync", "frontEndEnv", bool2, c.a, b.a); + C = new a("getAppInfoSync", "frontEndEnv", bool2, c.a, b.a); + } + + private a(String paramString1, String paramString2, Boolean paramBoolean, c paramc, b paramb) { + this.D = paramString1; + this.E = paramString2; + this.F = paramBoolean; + this.G = paramc; + this.H = paramb; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\d\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/d/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/d/b.java new file mode 100644 index 0000000..4cea256 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/d/b.java @@ -0,0 +1,25 @@ +package com.bytedance.sandboxapp.a.a.d; + +public final class b { + public static final b a; + + public final Boolean b; + + public final Boolean c; + + static { + Boolean bool = Boolean.valueOf(false); + a = new b(bool, bool); + } + + public b(Boolean paramBoolean1, Boolean paramBoolean2) { + this.b = paramBoolean1; + this.c = paramBoolean2; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\d\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/a/a/d/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/d/c.java new file mode 100644 index 0000000..9a0ffc5 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/a/a/d/c.java @@ -0,0 +1,29 @@ +package com.bytedance.sandboxapp.a.a.d; + +public final class c { + public static final c a = new c(Boolean.valueOf(false), null, null, null, null); + + public final Boolean b; + + public final String[] c; + + public final String[] d; + + public final String[] e; + + public final String[] f; + + private c(Boolean paramBoolean, String[] paramArrayOfString1, String[] paramArrayOfString2, String[] paramArrayOfString3, String[] paramArrayOfString4) { + this.b = paramBoolean; + this.c = null; + this.d = null; + this.e = null; + this.f = null; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\a\a\d\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/b/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/b/a.java new file mode 100644 index 0000000..8f35758 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/b/a.java @@ -0,0 +1,18 @@ +package com.bytedance.sandboxapp.b; + +import android.app.Activity; +import android.content.Context; + +public interface a { + Context getApplicationContext(); + + Activity getCurrentActivity(); + + T getService(Class paramClass); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\b\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/b/a/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/b/a/a.java new file mode 100644 index 0000000..d0eb399 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/b/a/a.java @@ -0,0 +1,16 @@ +package com.bytedance.sandboxapp.b.a; + +import com.bytedance.sandboxapp.b.a.a.a; +import com.bytedance.sandboxapp.b.a.b.a; + +public interface a { + a getDebugger(); + + a getLogger(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\b\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/b/a/a/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/b/a/a/a.java new file mode 100644 index 0000000..5ebdd1c --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/b/a/a/a.java @@ -0,0 +1,15 @@ +package com.bytedance.sandboxapp.b.a.a; + +public interface a { + boolean isDebugMode(); + + void logOrThrow(String paramString, Object... paramVarArgs); + + void logOrToast(String paramString, Object... paramVarArgs); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\b\a\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/b/a/a/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/b/a/a/b.java new file mode 100644 index 0000000..e29fa75 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/b/a/a/b.java @@ -0,0 +1,39 @@ +package com.bytedance.sandboxapp.b.a.a; + +import d.f.b.l; + +public final class b implements a { + public static a a; + + public static final b b = new b(); + + private static boolean c; + + public static void a(boolean paramBoolean) { + c = paramBoolean; + } + + public final boolean isDebugMode() { + return c; + } + + public final void logOrThrow(String paramString, Object... paramVarArgs) { + l.b(paramVarArgs, "messages"); + a a1 = a; + if (a1 != null) + a1.logOrThrow(paramString, new Object[] { com.bytedance.sandboxapp.b.a.b.b.a(paramVarArgs) }); + } + + public final void logOrToast(String paramString, Object... paramVarArgs) { + l.b(paramVarArgs, "messages"); + a a1 = a; + if (a1 != null) + a1.logOrToast(paramString, new Object[] { com.bytedance.sandboxapp.b.a.b.b.a(paramVarArgs) }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\b\a\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/b/a/b/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/b/a/b/a.java new file mode 100644 index 0000000..26a4a38 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/b/a/b/a.java @@ -0,0 +1,13 @@ +package com.bytedance.sandboxapp.b.a.b; + +public interface a { + void d(String paramString, Object... paramVarArgs); + + void e(String paramString, Object... paramVarArgs); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\b\a\b\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/b/a/b/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/b/a/b/b.java new file mode 100644 index 0000000..cf3610a --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/b/a/b/b.java @@ -0,0 +1,91 @@ +package com.bytedance.sandboxapp.b.a.b; + +import android.util.Log; +import d.f.b.l; + +public final class b implements a { + public static a a; + + public static final b b = new b(); + + public static String a(Object[] paramArrayOfObject) { + l.b(paramArrayOfObject, "messages"); + StringBuilder stringBuilder = new StringBuilder(); + if (com.bytedance.sandboxapp.b.a.a.b.b.isDebugMode()) { + byte b1; + String str1; + String str2; + StackTraceElement[] arrayOfStackTraceElement = (new Throwable()).getStackTrace(); + if (arrayOfStackTraceElement.length > 2) { + StackTraceElement stackTraceElement1 = arrayOfStackTraceElement[2]; + l.a(stackTraceElement1, "sElements[2]"); + str1 = stackTraceElement1.getFileName(); + l.a(str1, "sElements[2].fileName"); + StackTraceElement stackTraceElement2 = arrayOfStackTraceElement[2]; + l.a(stackTraceElement2, "sElements[2]"); + str2 = stackTraceElement2.getMethodName(); + l.a(str2, "sElements[2].methodName"); + StackTraceElement stackTraceElement3 = arrayOfStackTraceElement[2]; + l.a(stackTraceElement3, "sElements[2]"); + b1 = stackTraceElement3.getLineNumber(); + } else { + b1 = -1; + str1 = "unknown file"; + str2 = "unknown"; + } + stringBuilder.append(str2); + stringBuilder.append("("); + stringBuilder.append(str1); + stringBuilder.append(":"); + stringBuilder.append(b1); + stringBuilder.append(") "); + } + int i = paramArrayOfObject.length; + boolean bool = false; + if (i == 0) { + i = 1; + } else { + i = 0; + } + if ((i ^ 0x1) != 0) { + int j = paramArrayOfObject.length; + for (i = bool; i < j; i++) { + Object object1 = paramArrayOfObject[i]; + stringBuilder.append(" "); + if (object1 != null) { + stringBuilder.append(object1); + } else { + stringBuilder.append("null"); + } + } + Object object = paramArrayOfObject[paramArrayOfObject.length - 1]; + if (object instanceof Throwable) { + stringBuilder.append('\n'); + stringBuilder.append(Log.getStackTraceString((Throwable)object)); + } + } + String str = stringBuilder.toString(); + l.a(str, "buffer.toString()"); + return str; + } + + public final void d(String paramString, Object... paramVarArgs) { + l.b(paramVarArgs, "messages"); + a a1 = a; + if (a1 != null) + a1.d(paramString, new Object[] { a(paramVarArgs) }); + } + + public final void e(String paramString, Object... paramVarArgs) { + l.b(paramVarArgs, "messages"); + a a1 = a; + if (a1 != null) + a1.e(paramString, new Object[] { a(paramVarArgs) }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\b\a\b\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/b/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/b/b.java new file mode 100644 index 0000000..c030d7e --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/b/b.java @@ -0,0 +1,9 @@ +package com.bytedance.sandboxapp.b; + +public interface b {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\b\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/b/b/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/b/b/a.java new file mode 100644 index 0000000..dd7f8a8 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/b/b/a.java @@ -0,0 +1,65 @@ +package com.bytedance.sandboxapp.b.b; + +import android.text.TextUtils; +import com.bytedance.sandboxapp.b.a.b.b; +import d.f.b.l; +import org.json.JSONException; +import org.json.JSONObject; + +public final class a { + public JSONObject a; + + private final String b; + + public a() { + this.b = "SandboxJsonObject"; + this.a = new JSONObject(); + } + + public a(String paramString) { + JSONObject jSONObject; + this.b = "SandboxJsonObject"; + try { + if (TextUtils.isEmpty(paramString)) { + jSONObject = new JSONObject(); + } else { + jSONObject = new JSONObject((String)jSONObject); + } + } catch (JSONException jSONException) { + b.b.e(this.b, new Object[] { jSONException }); + jSONObject = new JSONObject(); + } + this.a = jSONObject; + } + + public a(JSONObject paramJSONObject) { + this.b = "SandboxJsonObject"; + JSONObject jSONObject = paramJSONObject; + if (paramJSONObject == null) + jSONObject = new JSONObject(); + this.a = jSONObject; + } + + public final a a(String paramString, Object paramObject) { + l.b(paramString, "key"); + try { + this.a.put(paramString, paramObject); + return this; + } catch (JSONException jSONException) { + b.b.e(this.b, new Object[] { jSONException }); + return this; + } + } + + public final String toString() { + String str = this.a.toString(); + l.a(str, "toJson().toString()"); + return str; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\b\b\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a.java new file mode 100644 index 0000000..c18d9a5 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a.java @@ -0,0 +1,60 @@ +package com.bytedance.sandboxapp.c.a; + +import com.bytedance.sandboxapp.c.a.a.b; +import com.bytedance.sandboxapp.protocol.service.api.a; +import d.f; +import d.f.b.l; +import d.f.b.m; +import d.f.b.u; +import d.f.b.v; +import d.f.b.x; +import d.g; +import d.k.d; +import d.k.h; + +public final class a implements a { + final com.bytedance.sandboxapp.b.a b; + + private final f c; + + public a(com.bytedance.sandboxapp.b.a parama) { + this.b = parama; + this.c = g.a(new a(this)); + } + + private final b b() { + return (b)this.c.getValue(); + } + + public final void a(b[] paramArrayOfb) { + l.b(paramArrayOfb, "customizeApiPreHandlers"); + b b2 = b(); + l.b(paramArrayOfb, "customizeApiPreHandlers"); + int j = paramArrayOfb.length; + b b1 = null; + for (int i = 0; i < j; i++) { + b b3 = paramArrayOfb[i]; + if (b1 == null) { + b1 = b3; + } else { + b1.addApiPreHandlerAtLast(b3); + } + } + if (b1 != null) + b1.addApiPreHandlerAtLast(b2.a()); + if (b1 != null) + b2.c = b1; + } + + static final class a extends m implements d.f.a.a { + a(a param1a) { + super(0); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/a.java new file mode 100644 index 0000000..86519f3 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/a.java @@ -0,0 +1,125 @@ +package com.bytedance.sandboxapp.c.a.a; + +import com.bytedance.sandboxapp.b.a.a.b; +import com.bytedance.sandboxapp.b.a.b.b; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.d.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import com.bytedance.sandboxapp.protocol.service.api.entity.b; +import d.f.b.g; +import d.f.b.l; + +public abstract class a { + public static final a Companion = new a(null); + + public final com.bytedance.sandboxapp.a.a.d.a apiInfoEntity; + + public final String apiName; + + public final com.bytedance.sandboxapp.b.a context; + + public final b sandboxAppApiRuntime; + + public a(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + this.sandboxAppApiRuntime = paramb; + this.apiInfoEntity = parama; + String str = this.apiInfoEntity.D; + l.a(str, "apiInfoEntity.api"); + this.apiName = str; + this.context = this.sandboxAppApiRuntime.getContext(); + } + + public static final ApiCallbackData buildParamInvalid(String paramString1, String paramString2) { + return a.b(paramString1, paramString2); + } + + public static final ApiCallbackData buildParamTypeInvalid(String paramString1, String paramString2, String paramString3) { + return a.a(paramString1, paramString2, paramString3); + } + + public static final ApiCallbackData buildParamsIsRequired(String paramString1, String paramString2) { + return a.a(paramString1, paramString2); + } + + public static final String nativeExceptionExtraInfo(Throwable paramThrowable) { + return a.a(paramThrowable); + } + + public final ApiCallbackData buildAppInBackground() { + ApiCallbackData.a.a a1 = ApiCallbackData.a.b; + String str = this.apiInfoEntity.D; + l.a(str, "apiInfoEntity.api"); + return ApiCallbackData.a.a.a(a1, str, "app in background", 0, 4, null).a(); + } + + public final ApiCallbackData buildFeatureNotSupport() { + ApiCallbackData.a.a a1 = ApiCallbackData.a.b; + String str = this.apiInfoEntity.D; + l.a(str, "apiInfoEntity.api"); + return ApiCallbackData.a.a.a(a1, str, "feature is not supported in app", 0, 4, null).a(); + } + + public final ApiCallbackData buildNativeException(Throwable paramThrowable) { + ApiCallbackData.a.a a1 = ApiCallbackData.a.b; + String str = this.apiInfoEntity.D; + l.a(str, "apiInfoEntity.api"); + return ApiCallbackData.a.a.a(a1, str, a.a(paramThrowable), 0, 4, null).a(); + } + + public abstract b handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a parama); + + public static final class a { + private a() {} + + public static ApiCallbackData a(String param1String1, String param1String2) { + l.b(param1String1, "apiName"); + l.b(param1String2, "paramName"); + ApiCallbackData.a.a a1 = ApiCallbackData.a.b; + StringBuilder stringBuilder = new StringBuilder("params "); + stringBuilder.append(param1String2); + stringBuilder.append(" is required"); + return ApiCallbackData.a.a.a(a1, param1String1, stringBuilder.toString(), 0, 4, null).a(); + } + + public static ApiCallbackData a(String param1String1, String param1String2, String param1String3) { + l.b(param1String1, "apiName"); + l.b(param1String2, "paramName"); + l.b(param1String3, "exceptedClassType"); + ApiCallbackData.a.a a1 = ApiCallbackData.a.b; + StringBuilder stringBuilder = new StringBuilder("params "); + stringBuilder.append(param1String2); + stringBuilder.append(" type is not "); + stringBuilder.append(param1String3); + stringBuilder.append(" type"); + return ApiCallbackData.a.a.a(a1, param1String1, stringBuilder.toString(), 0, 4, null).a(); + } + + public static String a(Throwable param1Throwable) { + if (param1Throwable == null) + return "null throwable"; + if (b.b.isDebugMode()) + b.b.e("AbsApiHandler", new Object[] { "throwableExtraInfo", param1Throwable }); + StringBuilder stringBuilder = new StringBuilder("native exception "); + stringBuilder.append(param1Throwable); + stringBuilder.append(" stack:"); + stringBuilder.append(b.a(param1Throwable, 1, 5)); + return stringBuilder.toString(); + } + + public static ApiCallbackData b(String param1String1, String param1String2) { + l.b(param1String1, "apiName"); + l.b(param1String2, "paramName"); + ApiCallbackData.a.a a1 = ApiCallbackData.a.b; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(param1String2); + stringBuilder.append(" is invalid"); + return ApiCallbackData.a.a.a(a1, param1String1, stringBuilder.toString(), 0, 4, null).a(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/b.java new file mode 100644 index 0000000..cdef1fa --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/b.java @@ -0,0 +1,126 @@ +package com.bytedance.sandboxapp.c.a.a; + +import d.f.b.g; +import d.f.b.l; + +public abstract class b { + public static final b Companion = new b(null); + + public final com.bytedance.sandboxapp.protocol.service.api.a.a apiRuntime; + + public final com.bytedance.sandboxapp.b.a context; + + private b mNextHandler; + + public b(com.bytedance.sandboxapp.protocol.service.api.a.a parama) { + this.apiRuntime = parama; + this.context = this.apiRuntime.getContext(); + } + + public final void addApiPreHandlerAtLast(b paramb) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mNextHandler : Lcom/bytedance/sandboxapp/c/a/a/b; + // 6: ifnonnull -> 17 + // 9: aload_0 + // 10: aload_1 + // 11: putfield mNextHandler : Lcom/bytedance/sandboxapp/c/a/a/b; + // 14: aload_0 + // 15: monitorexit + // 16: return + // 17: aload_0 + // 18: getfield mNextHandler : Lcom/bytedance/sandboxapp/c/a/a/b; + // 21: astore_2 + // 22: aload_2 + // 23: ifnull -> 72 + // 26: aload_2 + // 27: getfield mNextHandler : Lcom/bytedance/sandboxapp/c/a/a/b; + // 30: astore_3 + // 31: goto -> 34 + // 34: aload_3 + // 35: ifnull -> 46 + // 38: aload_2 + // 39: getfield mNextHandler : Lcom/bytedance/sandboxapp/c/a/a/b; + // 42: astore_2 + // 43: goto -> 22 + // 46: aload_2 + // 47: ifnull -> 58 + // 50: aload_2 + // 51: aload_1 + // 52: putfield mNextHandler : Lcom/bytedance/sandboxapp/c/a/a/b; + // 55: aload_0 + // 56: monitorexit + // 57: return + // 58: aload_0 + // 59: monitorexit + // 60: return + // 61: astore_1 + // 62: aload_0 + // 63: monitorexit + // 64: goto -> 69 + // 67: aload_1 + // 68: athrow + // 69: goto -> 67 + // 72: aconst_null + // 73: astore_3 + // 74: goto -> 34 + // Exception table: + // from to target type + // 2 14 61 finally + // 17 22 61 finally + // 26 31 61 finally + // 38 43 61 finally + // 50 55 61 finally + } + + public final com.bytedance.sandboxapp.protocol.service.api.entity.b continuePreHandleApi(a parama) { + l.b(parama, "blockHandleApiInfo"); + b b1 = this.mNextHandler; + if (b1 != null) { + com.bytedance.sandboxapp.protocol.service.api.entity.b b2 = b1.triggerPreHandleApi(parama.a, parama.b); + } else { + b1 = null; + } + return (com.bytedance.sandboxapp.protocol.service.api.entity.b)((b1 != null) ? b1 : parama.b.handleApiInvoke(parama.a)); + } + + protected abstract com.bytedance.sandboxapp.protocol.service.api.entity.b preHandleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama, a parama1); + + public final com.bytedance.sandboxapp.protocol.service.api.entity.b triggerPreHandleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama, a parama1) { + l.b(parama, "apiInvokeInfo"); + l.b(parama1, "apiHandler"); + for (b b1 = this; b1 != null; b1 = b1.mNextHandler) { + com.bytedance.sandboxapp.protocol.service.api.entity.b b2 = b1.preHandleApi(parama, parama1); + if (b2 != null) + return b2; + } + return null; + } + + public final class a { + public final com.bytedance.sandboxapp.protocol.service.api.entity.a a; + + public final a b; + + public a(b this$0, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a, a param1a1) { + this.a = param1a; + this.b = param1a1; + Boolean bool = this.b.apiInfoEntity.F; + l.a(bool, "mApiHandler.apiInfoEntity.syncCall"); + if (bool.booleanValue()) + com.bytedance.sandboxapp.b.a.a.b.b.logOrThrow("AbsApiPreHandler", new Object[] { "只有异步 Api 才可以被 Block 执行" }); + } + } + + public static final class b { + private b() {} + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/c.java new file mode 100644 index 0000000..79be6d2 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/c.java @@ -0,0 +1,88 @@ +package com.bytedance.sandboxapp.c.a.a; + +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import d.f.b.g; +import d.f.b.l; + +public abstract class c extends a { + public static final a Companion = new a(null); + + private com.bytedance.sandboxapp.protocol.service.api.entity.a mApiInvokeInfo; + + public c(com.bytedance.sandboxapp.c.a.b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void callbackAppInBackground() { + callbackData(buildAppInBackground()); + } + + public final void callbackCancel() { + String str = this.apiName; + l.b(str, "apiName"); + callbackData((new ApiCallbackData.a(str, "cancel", null)).a()); + } + + protected final void callbackData(ApiCallbackData paramApiCallbackData) { + l.b(paramApiCallbackData, "apiCallbackData"); + com.bytedance.sandboxapp.protocol.service.api.entity.a a1 = this.mApiInvokeInfo; + if (a1 == null) + l.a(); + if (!a1.a(paramApiCallbackData)) + com.bytedance.sandboxapp.b.a.a.b.b.logOrThrow("AbsAsyncApiHandler", new Object[] { "触发执行异步 Api 回调失败,apiInvokeInfo:", this.mApiInvokeInfo }); + onCallbackData(); + } + + public final void callbackFeatureNotSupport() { + callbackData(buildFeatureNotSupport()); + } + + public final void callbackNativeException(Throwable paramThrowable) { + callbackData(buildNativeException(paramThrowable)); + } + + public final void callbackOk() { + callbackData(ApiCallbackData.a.a.a(this.apiName, null).a()); + } + + public final void callbackOk(com.bytedance.sandboxapp.b.b.a parama) { + callbackData(ApiCallbackData.a.a.a(this.apiName, parama).a()); + } + + protected abstract void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama); + + public com.bytedance.sandboxapp.protocol.service.api.entity.b handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + l.b(parama, "apiInvokeInfo"); + this.mApiInvokeInfo = parama; + if (parama.a(new b(this, parama))) + return com.bytedance.sandboxapp.protocol.service.api.entity.b.d; + com.bytedance.sandboxapp.b.a.a.b.b.logOrThrow("AbsAsyncApiHandler", new Object[] { "触发执行异步 Api 处理失败,apiInvokeInfo:", parama }); + return com.bytedance.sandboxapp.protocol.service.api.entity.b.c; + } + + protected final void onCallbackData() {} + + public static final class a { + private a() {} + } + + static final class b implements Runnable { + b(c param1c, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) {} + + public final void run() { + try { + return; + } finally { + Exception exception = null; + this.a.callbackNativeException(exception); + com.bytedance.sandboxapp.b.a.a.b.b.logOrThrow("AbsAsyncApiHandler", new Object[] { "handleApi 异常 api:", this.a.apiName, exception }); + } + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\a\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/d.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/d.java new file mode 100644 index 0000000..1586ade --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/d.java @@ -0,0 +1,36 @@ +package com.bytedance.sandboxapp.c.a.a; + +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import com.bytedance.sandboxapp.protocol.service.api.entity.b; +import d.f.b.g; +import d.f.b.l; + +public abstract class d extends a { + public static final a a = new a(null); + + public d(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + protected final ApiCallbackData a(com.bytedance.sandboxapp.b.b.a parama) { + return ApiCallbackData.a.a.a(this.apiName, parama).a(); + } + + protected abstract ApiCallbackData a(com.bytedance.sandboxapp.protocol.service.api.entity.a parama); + + public b handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + ApiCallbackData apiCallbackData; + l.b(parama, "apiInvokeInfo"); + } + + public static final class a { + private a() {} + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\a\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/e.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/e.java new file mode 100644 index 0000000..1e54110 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/e.java @@ -0,0 +1,59 @@ +package com.bytedance.sandboxapp.c.a.a; + +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import d.f.b.g; +import d.f.b.l; + +public abstract class e extends d { + public static final a c = new a(null); + + com.bytedance.sandboxapp.protocol.service.api.entity.a b; + + public e(com.bytedance.sandboxapp.c.a.b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final com.bytedance.sandboxapp.protocol.service.api.entity.b b(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + return super.handleApiInvoke(parama); + } + + public com.bytedance.sandboxapp.protocol.service.api.entity.b handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + l.b(parama, "apiInvokeInfo"); + Boolean bool = this.apiInfoEntity.F; + l.a(bool, "apiInfoEntity.syncCall"); + if (bool.booleanValue()) + return b(parama); + this.b = parama; + if (parama.a(new b(this, parama))) + return com.bytedance.sandboxapp.protocol.service.api.entity.b.d; + com.bytedance.sandboxapp.b.a.a.b.b.logOrThrow("AbsTwinApiHandler", new Object[] { "触发执行异步 Api 处理失败,apiInvokeInfo:", parama }); + return com.bytedance.sandboxapp.protocol.service.api.entity.b.c; + } + + public static final class a { + private a() {} + } + + static final class b implements Runnable { + b(e param1e, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) {} + + public final void run() { + e e1 = this.a; + ApiCallbackData apiCallbackData = (e1.b(this.b)).b; + if (apiCallbackData == null) + l.a(); + l.b(apiCallbackData, "apiCallbackData"); + com.bytedance.sandboxapp.protocol.service.api.entity.a a1 = e1.b; + if (a1 == null) + l.a(); + if (!a1.a(apiCallbackData)) + com.bytedance.sandboxapp.b.a.a.b.b.logOrThrow("AbsTwinApiHandler", new Object[] { "触发执行异步 Api 回调失败,apiInvokeInfo:", e1.b }); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\a\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/f.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/f.java new file mode 100644 index 0000000..f427f7e --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/a/f.java @@ -0,0 +1,30 @@ +package com.bytedance.sandboxapp.c.a.a; + +import com.bytedance.sandboxapp.b.b.a; +import com.bytedance.sandboxapp.protocol.service.api.b.a; +import d.f.b.l; + +public final class f implements a { + public final a a; + + public f(a parama) { + this.a = parama; + } + + public final T getParam(String paramString) { + l.b(paramString, "key"); + a a1 = this.a; + l.b(paramString, "key"); + return (T)a1.a.get(paramString); + } + + public final a toJson() { + return this.a; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\a\f.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b.java new file mode 100644 index 0000000..9e21b37 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b.java @@ -0,0 +1,89 @@ +package com.bytedance.sandboxapp.c.a; + +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.a.b; +import com.bytedance.sandboxapp.c.a.c.a; +import com.bytedance.sandboxapp.protocol.service.api.a.a; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import d.f; +import d.f.b.l; +import d.f.b.m; +import d.f.b.u; +import d.f.b.v; +import d.f.b.x; +import d.g; +import d.k.d; +import d.k.h; + +public final class b implements a { + final String b; + + b c; + + final com.bytedance.sandboxapp.b.a d; + + private final f e; + + public b(com.bytedance.sandboxapp.b.a parama) { + this.d = parama; + this.b = "SandboxAppApiRuntime"; + this.e = g.a(new b(this)); + this.c = a(); + } + + final b a() { + return (b)this.e.getValue(); + } + + public final com.bytedance.sandboxapp.b.a getContext() { + return this.d; + } + + public final com.bytedance.sandboxapp.protocol.service.api.entity.b handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + l.b(parama, "apiInvokeInfo"); + a a1 = com.bytedance.sandboxapp.a.a.b.a.a(this, parama); + if (a1 == null) + return com.bytedance.sandboxapp.protocol.service.api.entity.b.c; + if (!a1.apiInfoEntity.F.booleanValue()) + parama.a = new a(this, parama); + com.bytedance.sandboxapp.b.a.b.b.b.d(this.b, new Object[] { "handleApiInvoke apiName:", parama.b }); + b b1 = this.c; + if (b1 != null) { + com.bytedance.sandboxapp.protocol.service.api.entity.b b2 = b1.triggerPreHandleApi(parama, a1); + } else { + b1 = null; + } + if (b1 != null) { + com.bytedance.sandboxapp.b.a.b.b.b.d(this.b, new Object[] { "被预处理的 apiName:", parama.b }); + return (com.bytedance.sandboxapp.protocol.service.api.entity.b)b1; + } + return a1.handleApiInvoke(parama); + } + + public static final class a implements com.bytedance.sandboxapp.protocol.service.api.entity.a.a { + a(b param1b, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a) {} + + public final void a(ApiCallbackData param1ApiCallbackData) { + l.b(param1ApiCallbackData, "apiCallbackData"); + if (param1ApiCallbackData.b) { + b b1 = this.a; + String str2 = this.b.b; + String str1 = param1ApiCallbackData.toString(); + com.bytedance.sandboxapp.b.a.b.b.b.e(b1.b, new Object[] { "monitorInvokeApiFailed eventName:", str2, "errorMsg:", str1 }); + ((com.bytedance.sandboxapp.protocol.service.n.b)b1.d.getService(com.bytedance.sandboxapp.protocol.service.n.b.class)).reportInvokeApiFail(7000, ((new com.bytedance.sandboxapp.b.b.a()).a("eventName", str2).a("errorMessage", str1)).a); + } + } + } + + static final class b extends m implements d.f.a.a { + b(b param1b) { + super(0); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/a.java new file mode 100644 index 0000000..63f4b2f --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/a.java @@ -0,0 +1,57 @@ +package com.bytedance.sandboxapp.c.a.b.a.a; + +import com.bytedance.sandboxapp.a.a.a.b; +import com.bytedance.sandboxapp.a.a.c.a; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.a.a.a.b; + +public final class a extends a { + public a(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a(a.a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1) { + com.bytedance.sandboxapp.protocol.service.a.a.a a1 = (com.bytedance.sandboxapp.protocol.service.a.a.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.a.a.a.class); + if (a1 == null || !a1.isSupportDxppManager()) { + a(); + return; + } + b b1 = new b(); + b1.a = parama.b.longValue(); + b1.b = parama.c; + b1.c = parama.d; + b1.d = parama.e; + b1.e = parama.f; + b1.f = parama.g; + b1.g = parama.h; + b1.h = parama.i; + b1.i = parama.j; + Integer integer = parama.k; + byte b = 0; + if (integer != null) { + i = parama.k.intValue(); + } else { + i = 0; + } + b1.j = i; + int i = b; + if (parama.l != null) + i = parama.l.intValue(); + b1.k = i; + if (parama.m != null) { + String str = parama.m.toString(); + } else { + parama = null; + } + b1.l = (String)parama; + a1.cancelDxppAd(b1); + callbackOk(null); + parama1.c.handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a.b.a((com.bytedance.sandboxapp.protocol.service.api.a.a)((com.bytedance.sandboxapp.c.a.a.a)this).sandboxAppApiRuntime, "onDxppAdStatusChange", (com.bytedance.sandboxapp.protocol.service.api.b.a)b.a().a((parama1.a()).a).a("cancel_download").b("success").b()).a()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\a\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/b.java new file mode 100644 index 0000000..65795b0 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/b.java @@ -0,0 +1,77 @@ +package com.bytedance.sandboxapp.c.a.b.a.a; + +import android.app.Activity; +import com.bytedance.sandboxapp.a.a.c.f; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.protocol.service.a.a.a; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import com.tt.miniapp.permission.PermissionsManager; +import com.tt.miniapp.permission.PermissionsResultAction; +import com.tt.miniapphost.AppbrandContext; +import java.util.HashSet; + +public final class b extends f { + public b(com.bytedance.sandboxapp.c.a.b paramb, a parama) { + super(paramb, parama); + } + + public final void a(f.a parama, a parama1) { + a a1 = (a)((a)this).context.getService(a.class); + if (a1 == null || !a1.isSupportDxppManager()) { + a(); + return; + } + com.bytedance.sandboxapp.protocol.service.a.a.a.b b2 = new com.bytedance.sandboxapp.protocol.service.a.a.a.b(); + b2.a = parama.b.longValue(); + b2.b = parama.c; + b2.c = parama.d; + b2.d = parama.e; + b2.e = parama.f; + b2.f = parama.g; + b2.g = parama.h; + b2.h = parama.i; + b2.i = parama.j; + Integer integer = parama.k; + byte b1 = 0; + if (integer != null) { + i = parama.k.intValue(); + } else { + i = 0; + } + b2.j = i; + int i = b1; + if (parama.l != null) + i = parama.l.intValue(); + b2.k = i; + if (parama.m != null) { + String str = parama.m.toString(); + } else { + parama = null; + } + b2.l = (String)parama; + if (PermissionsManager.getInstance().hasPermission(((a)this).context.getApplicationContext(), "android.permission.WRITE_EXTERNAL_STORAGE")) { + a1.dxppAd(b2); + callbackOk(null); + return; + } + HashSet hashSet = new HashSet(); + hashSet.add("android.permission.WRITE_EXTERNAL_STORAGE"); + PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult((Activity)AppbrandContext.getInst().getCurrentActivity(), hashSet, new PermissionsResultAction(this, a1, b2) { + public final void onDenied(String param1String) { + this.c.b(); + } + + public final void onGranted() { + this.a.dxppAd(this.b); + this.c.callbackOk(null); + } + }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\a\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/c.java new file mode 100644 index 0000000..d74b632 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/c.java @@ -0,0 +1,72 @@ +package com.bytedance.sandboxapp.c.a.b.a.a; + +import android.text.TextUtils; +import com.bytedance.sandboxapp.a.a.c.l; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.a.a.a; +import com.bytedance.sandboxapp.protocol.service.a.a.a.b; +import com.bytedance.sandboxapp.protocol.service.a.a.a.d; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import org.json.JSONObject; + +public final class c extends l { + public c(b paramb, a parama) { + super(paramb, parama); + } + + public final void a(l.a parama, a parama1) { + d d; + a a1 = (a)((a)this).context.getService(a.class); + if (a1 == null || !a1.isSupportDxppManager()) { + a(); + return; + } + JSONObject jSONObject = (parama1.a()).a; + parama1 = null; + parama = null; + if (jSONObject == null) { + a a2 = parama1; + } else { + b b; + d d1 = new d(); + d1.a = jSONObject; + d1.b = jSONObject.optString("type"); + d1.c = jSONObject.optString("schema"); + jSONObject = jSONObject.optJSONObject("data"); + if (jSONObject != null) { + b = new b(); + b.a = jSONObject.optLong("cid"); + b.b = jSONObject.optString("app_name"); + b.c = jSONObject.optString("package_name"); + b.d = jSONObject.optString("source_avatar"); + b.e = jSONObject.optString("download_url"); + b.f = jSONObject.optString("open_url"); + b.g = jSONObject.optString("quick_app_url"); + b.h = jSONObject.optString("web_url"); + b.i = jSONObject.optString("web_title"); + b.j = jSONObject.optInt("auto_open"); + b.k = jSONObject.optInt("download_mode"); + b.l = jSONObject.optString("log_extra"); + } + d1.d = b; + d = d1; + } + if (TextUtils.isEmpty(d.c)) { + b(); + return; + } + a1.openAdLandPageLinks(d, new com.bytedance.sandboxapp.protocol.service.a.a.a.c(this, d) { + public final void a() { + this.b.a(this.a.c); + } + }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\a\a\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/d.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/d.java new file mode 100644 index 0000000..e968a48 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/d.java @@ -0,0 +1,62 @@ +package com.bytedance.sandboxapp.c.a.b.a.a; + +import com.bytedance.sandboxapp.a.a.c.s; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.a.a.a; +import com.bytedance.sandboxapp.protocol.service.a.a.a.a; +import com.bytedance.sandboxapp.protocol.service.a.a.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; + +public final class d extends s { + public d(b paramb, a parama) { + super(paramb, parama); + } + + public final void a(s.a parama, a parama1) { + a a1 = (a)((a)this).context.getService(a.class); + if (a1 == null || !a1.isSupportDxppManager()) { + a(); + return; + } + b b1 = new b(); + b1.a = parama.b.longValue(); + b1.b = parama.c; + b1.c = parama.d; + b1.d = parama.e; + b1.e = parama.f; + b1.f = parama.g; + b1.g = parama.h; + b1.h = parama.i; + b1.i = parama.j; + Integer integer = parama.k; + byte b = 0; + if (integer != null) { + i = parama.k.intValue(); + } else { + i = 0; + } + b1.j = i; + int i = b; + if (parama.l != null) + i = parama.l.intValue(); + b1.k = i; + if (parama.m != null) { + String str = parama.m.toString(); + } else { + parama = null; + } + b1.l = (String)parama; + a1.subscribeAppAd(b1, new a(this, parama1) { + + }); + callbackOk(null); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\a\a\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/e.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/e.java new file mode 100644 index 0000000..ac6ee36 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/a/a/e.java @@ -0,0 +1,63 @@ +package com.bytedance.sandboxapp.c.a.b.a.a; + +import com.bytedance.sandboxapp.a.a.a.b; +import com.bytedance.sandboxapp.a.a.c.t; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.a.a.a; +import com.bytedance.sandboxapp.protocol.service.a.a.a.b; +import com.bytedance.sandboxapp.protocol.service.api.a.a; +import com.bytedance.sandboxapp.protocol.service.api.b.a; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; + +public final class e extends t { + public e(b paramb, a parama) { + super(paramb, parama); + } + + public final void a(t.a parama, a parama1) { + a a1 = (a)((a)this).context.getService(a.class); + if (a1 == null || !a1.isSupportDxppManager()) { + a(); + return; + } + b b1 = new b(); + b1.a = parama.b.longValue(); + b1.b = parama.c; + b1.c = parama.d; + b1.d = parama.e; + b1.e = parama.f; + b1.f = parama.g; + b1.g = parama.h; + b1.h = parama.i; + b1.i = parama.j; + Integer integer = parama.k; + byte b = 0; + if (integer != null) { + i = parama.k.intValue(); + } else { + i = 0; + } + b1.j = i; + int i = b; + if (parama.l != null) + i = parama.l.intValue(); + b1.k = i; + if (parama.m != null) { + String str = parama.m.toString(); + } else { + parama = null; + } + b1.l = (String)parama; + a1.unsubscribeAppAd(b1); + callbackOk(null); + parama1.c.handleApiInvoke(a.b.a((a)((a)this).sandboxAppApiRuntime, "onDxppAdStatusChange", (a)b.a().a((parama1.a()).a).a("unsubscribed").b("success").b()).a()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\a\a\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/b/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/b/a.java new file mode 100644 index 0000000..827d688 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/b/a.java @@ -0,0 +1,93 @@ +package com.bytedance.sandboxapp.c.a.b.b; + +import android.text.TextUtils; +import com.bytedance.sandboxapp.a.a.c.b; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.c.b; +import com.bytedance.sandboxapp.protocol.service.c.c; +import d.f.b.l; + +public final class a extends b { + public a(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + l.b(parama, "apiInvokeInfo"); + com.bytedance.sandboxapp.protocol.service.c.a a1 = (com.bytedance.sandboxapp.protocol.service.c.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.c.a.class); + if (a1 == null || !a1.hasAwemeDepend() || !a1.canCheckFollowAwemeState()) { + a(); + return; + } + a1.getAwemeUidFromSuffixMeta(new a(this, a1)); + } + + public static final class a implements b { + a(a param1a, com.bytedance.sandboxapp.protocol.service.c.a param1a1) {} + + public final void a(String param1String) { + l.b(param1String, "msg"); + this.a.a(param1String); + } + + public final void a(String param1String1, String param1String2) { + l.b(param1String1, "uid"); + l.b(param1String2, "secUid"); + if (TextUtils.isEmpty(param1String1) && TextUtils.isEmpty(param1String2)) { + this.a.c(); + return; + } + if (!this.b.hasLogin()) { + this.a.b(); + return; + } + this.b.checkFollowAwemeState(param1String1, param1String2, new a(this)); + } + + public static final class a implements c { + a(a.a param2a) {} + + public final void onFailure(int param2Int, String param2String) { + if (param2Int == -2) { + this.b.a.a(); + return; + } + a a1 = this.b.a; + String str = param2String; + if (param2String == null) + str = "unknown"; + a1.a(str); + } + + public final void onFollowAwemeResult(Boolean param2Boolean) { + this.b.a.callbackOk(b.a.a().a(param2Boolean).b()); + } + } + } + + public static final class a implements c { + a(a.a param1a) {} + + public final void onFailure(int param1Int, String param1String) { + if (param1Int == -2) { + this.b.a.a(); + return; + } + a a1 = this.b.a; + String str = param1String; + if (param1String == null) + str = "unknown"; + a1.a(str); + } + + public final void onFollowAwemeResult(Boolean param1Boolean) { + this.b.a.callbackOk(b.a.a().a(param1Boolean).b()); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\b\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/b/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/b/b.java new file mode 100644 index 0000000..7aebd67 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/b/b.java @@ -0,0 +1,106 @@ +package com.bytedance.sandboxapp.c.a.b.b; + +import android.app.Activity; +import android.text.TextUtils; +import com.bytedance.sandboxapp.a.a.c.m; +import com.bytedance.sandboxapp.protocol.service.c.c; +import d.f.b.l; + +public final class b extends m { + public b(com.bytedance.sandboxapp.c.a.b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + l.b(parama, "apiInvokeInfo"); + com.bytedance.sandboxapp.protocol.service.c.a a1 = (com.bytedance.sandboxapp.protocol.service.c.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.c.a.class); + if (a1 == null || !a1.hasAwemeDepend()) { + a(); + return; + } + a1.getAwemeUidFromSuffixMeta(new a(this, a1)); + } + + public static final class a implements com.bytedance.sandboxapp.protocol.service.c.b { + a(b param1b, com.bytedance.sandboxapp.protocol.service.c.a param1a) {} + + public final void a(String param1String) { + l.b(param1String, "msg"); + this.a.a(param1String); + } + + public final void a(String param1String1, String param1String2) { + l.b(param1String1, "uid"); + l.b(param1String2, "secUid"); + if (TextUtils.isEmpty(param1String1) && TextUtils.isEmpty(param1String2)) { + this.a.d(); + return; + } + if (!this.b.hasLogin()) { + this.a.b(); + return; + } + Activity activity = ((com.bytedance.sandboxapp.c.a.a.a)this.a).context.getCurrentActivity(); + if (activity == null) { + this.a.c(); + return; + } + boolean bool = this.b.canCheckFollowAwemeState(); + this.b.openAwemeUserProfile(activity, param1String1, param1String2, bool, new a(this)); + } + + public static final class a implements c { + a(b.a param2a) {} + + public final void onFailure(int param2Int, String param2String) { + if (param2Int == -2) { + this.b.a.a(); + return; + } + b b = this.b.a; + String str = param2String; + if (param2String == null) + str = "unknown"; + b.a(str); + } + + public final void onFollowAwemeResult(Boolean param2Boolean) { + if (param2Boolean != null) { + this.b.a.callbackOk(m.a.a().a(param2Boolean).b()); + return; + } + this.b.a.callbackOk(); + } + } + } + + public static final class a implements c { + a(b.a param1a) {} + + public final void onFailure(int param1Int, String param1String) { + if (param1Int == -2) { + this.b.a.a(); + return; + } + b b = this.b.a; + String str = param1String; + if (param1String == null) + str = "unknown"; + b.a(str); + } + + public final void onFollowAwemeResult(Boolean param1Boolean) { + if (param1Boolean != null) { + this.b.a.callbackOk(m.a.a().a(param1Boolean).b()); + return; + } + this.b.a.callbackOk(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\b\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/c/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/c/a.java new file mode 100644 index 0000000..49f786a --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/c/a.java @@ -0,0 +1,28 @@ +package com.bytedance.sandboxapp.c.a.b.c; + +import com.bytedance.sandboxapp.a.a.c.h; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import d.f.b.l; +import org.json.JSONObject; + +public final class a extends h { + public a(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final ApiCallbackData a(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + l.b(parama, "apiInvokeInfo"); + JSONObject jSONObject2 = ((com.bytedance.sandboxapp.protocol.service.b.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.b.a.class)).getExtConfigInfoJson(); + JSONObject jSONObject1 = jSONObject2; + if (jSONObject2 == null) + jSONObject1 = new JSONObject(); + return a(h.a.a().a(jSONObject1).b()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\c\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/d/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/d/a.java new file mode 100644 index 0000000..0d2a3bf --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/d/a.java @@ -0,0 +1,82 @@ +package com.bytedance.sandboxapp.c.a.b.d; + +import android.net.Uri; +import android.text.TextUtils; +import com.bytedance.sandboxapp.a.a.c.n; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.h.c; +import d.f.b.l; + +public final class a extends n { + public a(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a(n.a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1) { + Boolean bool; + l.b(parama, "paramParser"); + l.b(parama1, "apiInvokeInfo"); + boolean bool2 = TextUtils.equals(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, "openInnerSchema"); + String str1 = parama.b; + l.a(str1, "paramParser.schema"); + com.bytedance.sandboxapp.protocol.service.l.a a1 = (com.bytedance.sandboxapp.protocol.service.l.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.l.a.class); + if (!bool2) { + String str = parama.b; + l.a(str, "paramParser.schema"); + if (!a1.isSafeDomain("schema_host", str)) { + a(str1); + return; + } + } + c c = (c)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(c.class); + Uri uri = Uri.parse(str1); + l.a(uri, "uri"); + String str2 = uri.getHost(); + CharSequence charSequence1 = "microapp"; + CharSequence charSequence2 = str2; + boolean bool3 = TextUtils.equals(charSequence1, charSequence2); + boolean bool1 = TextUtils.equals("microgame", charSequence2); + if (bool3 || bool1) { + Integer integer; + if (bool2 || a1.isSafeDomain("appids", str1)) { + bool = parama.c; + l.a(bool, "paramParser.killCurrentProcess"); + bool2 = bool.booleanValue(); + bool = parama.d; + l.a(bool, "paramParser.forceColdBoot"); + bool3 = bool.booleanValue(); + integer = parama.e; + l.a(integer, "paramParser.toolbarStyle"); + c.openMiniApp(new c.b(str1, bool1, bool2, bool3, integer.intValue())); + callbackOk(); + return; + } + a(((n.a)integer).b); + return; + } + c.openSchema(new c.c(uri, bool.a().toString()), new a(this, str1)); + } + + public static final class a implements c.d { + a(a param1a, String param1String) {} + + public final void a() { + this.a.callbackOk(); + } + + public final void a(String param1String) { + l.b(param1String, "failReason"); + this.a.a(param1String, this.b); + } + + public final void b() { + this.a.callbackFeatureNotSupport(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\d\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/e/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/e/a.java new file mode 100644 index 0000000..1f40495 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/e/a.java @@ -0,0 +1,32 @@ +package com.bytedance.sandboxapp.c.a.b.e; + +import com.bytedance.sandboxapp.a.a.c.g; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import d.f.b.l; + +public final class a extends g { + public a(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final ApiCallbackData a(g.b paramb, com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + l.b(paramb, "paramParser"); + l.b(parama, "apiInvokeInfo"); + com.bytedance.sandboxapp.protocol.service.b.a a1 = (com.bytedance.sandboxapp.protocol.service.b.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.b.a.class); + Boolean bool = paramb.b; + l.a(bool, "paramParser.needSession"); + if (bool.booleanValue()) { + String str = a1.getPlatformSession(); + } else { + bool = null; + } + return a(g.a.a().a(a1.getSchema()).b(a1.getAppId()).c((String)bool).a(a1.getApiWhiteList()).b(a1.getApiBlackList()).a(Integer.valueOf(a1.getPkgType())).b()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\e\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/e/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/e/b.java new file mode 100644 index 0000000..cc07a23 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/e/b.java @@ -0,0 +1,33 @@ +package com.bytedance.sandboxapp.c.a.b.e; + +import com.bytedance.sandboxapp.a.a.c.i; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import com.bytedance.sandboxapp.protocol.service.e.a; +import com.bytedance.sandboxapp.protocol.service.h.a; +import com.bytedance.sandboxapp.protocol.service.h.c; +import d.f.b.l; + +public final class b extends i { + public b(com.bytedance.sandboxapp.c.a.b paramb, a parama) { + super(paramb, parama); + } + + public final ApiCallbackData a(a parama) { + l.b(parama, "apiInvokeInfo"); + c c = (c)((a)this).context.getService(c.class); + com.bytedance.sandboxapp.protocol.service.e.b b1 = (com.bytedance.sandboxapp.protocol.service.e.b)((a)this).context.getService(com.bytedance.sandboxapp.protocol.service.e.b.class); + a a1 = c.getHostAppInfo(); + com.bytedance.sandboxapp.protocol.service.h.b b2 = c.getHostAppUserInfo(); + a a2 = b1.getDeviceInfo(); + return a(i.a.a().a(a1.a).c(a1.b).e(a1.c).f(a1.d).h(b2.a).a(Boolean.valueOf(b2.c)).b(a2.a).d(a2.b).g(a2.c).b()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\e\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/e/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/e/c.java new file mode 100644 index 0000000..f997bdd --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/e/c.java @@ -0,0 +1,28 @@ +package com.bytedance.sandboxapp.c.a.b.e; + +import com.bytedance.sandboxapp.a.a.c.j; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import com.bytedance.sandboxapp.protocol.service.m.a; +import d.f.b.l; + +public final class c extends j { + public c(b paramb, a parama) { + super(paramb, parama); + } + + public final ApiCallbackData a(a parama) { + l.b(parama, "apiInvokeInfo"); + a a1 = (a)((a)this).context.getService(a.class); + return a(j.a.a().a(Boolean.valueOf(a1.useWebVideo())).c(Boolean.valueOf(a1.useWebLivePlayer())).b(Boolean.valueOf(a1.isRenderInBrowser())).b()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\e\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/a.java new file mode 100644 index 0000000..987ab4d --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/a.java @@ -0,0 +1,230 @@ +package com.bytedance.sandboxapp.c.a.b.f; + +import com.bytedance.sandboxapp.a.a.c.c; +import com.bytedance.sandboxapp.c.a.a.f; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import d.f.b.l; + +public final class a extends c { + public a(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final ApiCallbackData a(c.b paramb, com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + // Byte code: + // 0: aload_1 + // 1: ldc 'paramParser' + // 3: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 6: aload_2 + // 7: ldc 'apiInvokeInfo' + // 9: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 12: aload_0 + // 13: getfield apiName : Ljava/lang/String; + // 16: checkcast java/lang/CharSequence + // 19: ldc 'createInnerDownloadTask' + // 21: checkcast java/lang/CharSequence + // 24: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 27: istore #4 + // 29: aload_1 + // 30: getfield b : Ljava/lang/String; + // 33: astore #5 + // 35: aload #5 + // 37: ldc 'paramParser.url' + // 39: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 42: iload #4 + // 44: ifne -> 118 + // 47: aload #5 + // 49: checkcast java/lang/CharSequence + // 52: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 55: ifne -> 118 + // 58: aload_0 + // 59: getfield context : Lcom/bytedance/sandboxapp/b/a; + // 62: ldc com/bytedance/sandboxapp/protocol/service/l/a + // 64: invokeinterface getService : (Ljava/lang/Class;)Lcom/bytedance/sandboxapp/b/b; + // 69: checkcast com/bytedance/sandboxapp/protocol/service/l/a + // 72: astore #5 + // 74: aload_1 + // 75: getfield b : Ljava/lang/String; + // 78: astore #6 + // 80: aload #6 + // 82: ldc 'paramParser.url' + // 84: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 87: aload #5 + // 89: ldc 'download' + // 91: aload #6 + // 93: invokeinterface isSafeDomain : (Ljava/lang/String;Ljava/lang/String;)Z + // 98: ifne -> 118 + // 101: aload_0 + // 102: aload_1 + // 103: getfield b : Ljava/lang/String; + // 106: invokevirtual a : (Ljava/lang/String;)Lcom/bytedance/sandboxapp/protocol/service/api/entity/ApiCallbackData; + // 109: astore_1 + // 110: aload_1 + // 111: ldc 'buildInvalidDomain(paramParser.url)' + // 113: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 116: aload_1 + // 117: areturn + // 118: aload_1 + // 119: getfield d : Ljava/lang/String; + // 122: astore #6 + // 124: aload #6 + // 126: ifnull -> 244 + // 129: aload #6 + // 131: checkcast java/lang/CharSequence + // 134: astore #5 + // 136: aload #5 + // 138: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 141: ifne -> 244 + // 144: aload #5 + // 146: ldc 'null' + // 148: checkcast java/lang/CharSequence + // 151: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 154: ifne -> 244 + // 157: aload #5 + // 159: ldc 'undefined' + // 161: checkcast java/lang/CharSequence + // 164: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 167: ifne -> 244 + // 170: aload_0 + // 171: getfield context : Lcom/bytedance/sandboxapp/b/a; + // 174: ldc com/bytedance/sandboxapp/protocol/service/f/a + // 176: invokeinterface getService : (Ljava/lang/Class;)Lcom/bytedance/sandboxapp/b/b; + // 181: checkcast com/bytedance/sandboxapp/protocol/service/f/a + // 184: astore #7 + // 186: aload #7 + // 188: aload #6 + // 190: invokeinterface canWrite : (Ljava/lang/String;)Z + // 195: ifne -> 213 + // 198: aload_0 + // 199: aload #6 + // 201: invokevirtual b : (Ljava/lang/String;)Lcom/bytedance/sandboxapp/protocol/service/api/entity/ApiCallbackData; + // 204: astore_1 + // 205: aload_1 + // 206: ldc 'buildPermissionDenied(filePath)' + // 208: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 211: aload_1 + // 212: areturn + // 213: aload #6 + // 215: astore #5 + // 217: aload #7 + // 219: aload #6 + // 221: invokeinterface isParentDirExists : (Ljava/lang/String;)Z + // 226: ifne -> 247 + // 229: aload_0 + // 230: aload #6 + // 232: invokevirtual c : (Ljava/lang/String;)Lcom/bytedance/sandboxapp/protocol/service/api/entity/ApiCallbackData; + // 235: astore_1 + // 236: aload_1 + // 237: ldc 'buildNoDirectory(filePath)' + // 239: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 242: aload_1 + // 243: areturn + // 244: aconst_null + // 245: astore #5 + // 247: iload #4 + // 249: ifeq -> 259 + // 252: ldc 'onInnerDownloadTaskStateChange' + // 254: astore #6 + // 256: goto -> 263 + // 259: ldc 'onDownloadTaskStateChange' + // 261: astore #6 + // 263: aload_0 + // 264: getfield context : Lcom/bytedance/sandboxapp/b/a; + // 267: ldc com/bytedance/sandboxapp/protocol/service/i/a + // 269: invokeinterface getService : (Ljava/lang/Class;)Lcom/bytedance/sandboxapp/b/b; + // 274: checkcast com/bytedance/sandboxapp/protocol/service/i/a + // 277: invokeinterface getRequestIdentifyId : ()I + // 282: istore_3 + // 283: aload_0 + // 284: getfield context : Lcom/bytedance/sandboxapp/b/a; + // 287: ldc com/bytedance/sandboxapp/protocol/service/request/a + // 289: invokeinterface getService : (Ljava/lang/Class;)Lcom/bytedance/sandboxapp/b/b; + // 294: checkcast com/bytedance/sandboxapp/protocol/service/request/a + // 297: astore #7 + // 299: aload_1 + // 300: getfield b : Ljava/lang/String; + // 303: astore #8 + // 305: aload #8 + // 307: ldc 'paramParser.url' + // 309: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 312: aload_1 + // 313: getfield c : Lorg/json/JSONObject; + // 316: astore #9 + // 318: aload_1 + // 319: getfield e : Ljava/lang/Boolean; + // 322: astore_1 + // 323: aload_1 + // 324: ldc 'paramParser.useCloud' + // 326: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 329: aload #7 + // 331: new com/bytedance/sandboxapp/protocol/service/request/entity/a$d + // 334: dup + // 335: iload_3 + // 336: aload #8 + // 338: aload #9 + // 340: aload #5 + // 342: aload_1 + // 343: invokevirtual booleanValue : ()Z + // 346: invokespecial : (ILjava/lang/String;Lorg/json/JSONObject;Ljava/lang/String;Z)V + // 349: new com/bytedance/sandboxapp/c/a/b/f/a$a + // 352: dup + // 353: aload_0 + // 354: aload_2 + // 355: aload #6 + // 357: invokespecial : (Lcom/bytedance/sandboxapp/c/a/b/f/a;Lcom/bytedance/sandboxapp/protocol/service/api/entity/a;Ljava/lang/String;)V + // 360: checkcast com/bytedance/sandboxapp/protocol/service/request/entity/a$a + // 363: invokeinterface addDownloadRequest : (Lcom/bytedance/sandboxapp/protocol/service/request/entity/a$d;Lcom/bytedance/sandboxapp/protocol/service/request/entity/a$a;)V + // 368: aload_0 + // 369: invokestatic a : ()Lcom/bytedance/sandboxapp/a/a/c/c$a; + // 372: iload_3 + // 373: invokestatic valueOf : (I)Ljava/lang/Integer; + // 376: invokevirtual a : (Ljava/lang/Integer;)Lcom/bytedance/sandboxapp/a/a/c/c$a; + // 379: invokevirtual b : ()Lcom/bytedance/sandboxapp/b/b/a; + // 382: invokevirtual a : (Lcom/bytedance/sandboxapp/b/b/a;)Lcom/bytedance/sandboxapp/protocol/service/api/entity/ApiCallbackData; + // 385: areturn + } + + public static final class a implements com.bytedance.sandboxapp.protocol.service.request.entity.a.a { + a(a param1a, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a1, String param1String) {} + + public final void a(com.bytedance.sandboxapp.protocol.service.request.entity.a.b param1b) { + String str1; + String str2; + l.b(param1b, "requestResult"); + if (param1b.g != null) { + str1 = com.bytedance.sandboxapp.c.a.a.a.a.a(param1b.g); + } else { + str1 = param1b.f; + } + com.bytedance.sandboxapp.protocol.service.api.a.a a1 = this.b.c; + com.bytedance.sandboxapp.protocol.service.api.a.a a2 = (com.bytedance.sandboxapp.protocol.service.api.a.a)((com.bytedance.sandboxapp.c.a.a.a)this.a).sandboxAppApiRuntime; + String str3 = this.c; + com.bytedance.sandboxapp.a.a.a.a a3 = com.bytedance.sandboxapp.a.a.a.a.a().a(Integer.valueOf(param1b.b)); + if (param1b.a) { + str2 = "success"; + } else { + str2 = "fail"; + } + f f = a3.a(str2).b(String.valueOf(param1b.c)).c(param1b.d).d(param1b.e).e(str1).b(); + l.a(f, "OnDownloadTaskStateChang… .build()"); + a1.handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a.b.a.a(a2, str3, (com.bytedance.sandboxapp.protocol.service.api.b.a)f).a()); + } + + public final void a(com.bytedance.sandboxapp.protocol.service.request.entity.a.c param1c) { + l.b(param1c, "requestState"); + com.bytedance.sandboxapp.protocol.service.api.a.a a1 = this.b.c; + com.bytedance.sandboxapp.protocol.service.api.a.a a2 = (com.bytedance.sandboxapp.protocol.service.api.a.a)((com.bytedance.sandboxapp.c.a.a.a)this.a).sandboxAppApiRuntime; + String str = this.c; + f f = com.bytedance.sandboxapp.a.a.a.a.a().a("progressUpdate").a(Integer.valueOf(param1c.a)).b(Integer.valueOf(param1c.b)).a(Long.valueOf(param1c.c)).b(Long.valueOf(param1c.d)).b(); + l.a(f, "OnDownloadTaskStateChang…sExpectedToWrite).build()"); + a1.handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a.b.a.a(a2, str, (com.bytedance.sandboxapp.protocol.service.api.b.a)f).a()); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\f\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/b.java new file mode 100644 index 0000000..824a838 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/b.java @@ -0,0 +1,125 @@ +package com.bytedance.sandboxapp.c.a.b.f; + +import android.text.TextUtils; +import com.bytedance.sandboxapp.a.a.a.c; +import com.bytedance.sandboxapp.a.a.c.d; +import com.bytedance.sandboxapp.c.a.a.f; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import com.bytedance.sandboxapp.protocol.service.request.entity.HttpRequest; +import d.f.b.l; +import org.json.JSONArray; + +public final class b extends d { + private final String b = "CreateRequestTaskApiHandler"; + + public b(com.bytedance.sandboxapp.c.a.b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final ApiCallbackData a(d.b paramb, com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + ApiCallbackData apiCallbackData; + Boolean bool5; + l.b(paramb, "paramParser"); + l.b(parama, "apiInvokeInfo"); + boolean bool2 = TextUtils.equals(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, "createInnerRequestTask"); + String str2 = paramb.d; + l.a(str2, "paramParser.method"); + String str3 = paramb.b; + l.a(str3, "paramParser.url"); + String str1 = str2; + if (TextUtils.isEmpty(str2)) + str1 = "POST"; + com.bytedance.sandboxapp.b.a.b.b.b.d(this.b, new Object[] { "isInner:", Boolean.valueOf(bool2), "url:", paramb.b, "method:", str1, "header:", paramb.f, "data:", paramb.e }); + if (!bool2 && !TextUtils.isEmpty(str3)) { + com.bytedance.sandboxapp.protocol.service.l.a a3 = (com.bytedance.sandboxapp.protocol.service.l.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.l.a.class); + String str = paramb.b; + l.a(str, "paramParser.url"); + if (!a3.isSafeDomain("request", str)) { + apiCallbackData = a(paramb.b); + l.a(apiCallbackData, "buildInvalidDomain(paramParser.url)"); + return apiCallbackData; + } + } + if (bool2) { + str2 = "onInnerRequestTaskStateChange"; + } else { + str2 = "onRequestTaskStateChange"; + } + if (bool2) { + bool5 = ((d.b)apiCallbackData).j; + } else { + bool5 = Boolean.valueOf(false); + } + l.a(bool5, "if (isInner) {\n … false\n }"); + boolean bool3 = bool5.booleanValue(); + boolean bool4 = parama.d; + int i = ((com.bytedance.sandboxapp.protocol.service.i.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.i.a.class)).getRequestIdentifyId(); + com.bytedance.sandboxapp.protocol.service.request.a a2 = (com.bytedance.sandboxapp.protocol.service.request.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.request.a.class); + HttpRequest.RequestTask.a a1 = HttpRequest.RequestTask.a.a.a(str3, str1); + a1.b = i; + Boolean bool6 = ((d.b)apiCallbackData).c; + l.a(bool6, "paramParser.usePrefetchCache"); + a1.a = bool6.booleanValue(); + a1 = a1.b(((d.b)apiCallbackData).e).a(((d.b)apiCallbackData).f).a(((d.b)apiCallbackData).g).a(com.bytedance.sandboxapp.d.a.a(((d.b)apiCallbackData).h, bool4)).a(bool2); + Boolean bool1 = ((d.b)apiCallbackData).i; + l.a(bool1, "paramParser.useCloud"); + a1.d = bool1.booleanValue(); + a1.e = bool3; + a2.addHttpRequest(a1.a(), new a(this, bool4, parama, str2)); + return a(d.a.a().a(Integer.valueOf(i)).b()); + } + + public static final class a implements HttpRequest.a { + a(b param1b, boolean param1Boolean, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a, String param1String) {} + + public final void onRequestAbort(HttpRequest.RequestTask param1RequestTask) { + l.b(param1RequestTask, "requestTask"); + com.bytedance.sandboxapp.protocol.service.api.a.a a1 = this.c.c; + com.bytedance.sandboxapp.protocol.service.api.a.a a2 = (com.bytedance.sandboxapp.protocol.service.api.a.a)((com.bytedance.sandboxapp.c.a.a.a)this.a).sandboxAppApiRuntime; + String str = this.d; + f f = c.a().a(Integer.valueOf(param1RequestTask.a)).a("fail").d("abort").b(); + l.a(f, "OnRequestTaskStateChange… .build()"); + a1.handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a.b.a.a(a2, str, (com.bytedance.sandboxapp.protocol.service.api.b.a)f).a()); + } + + public final void onRequestFinish(HttpRequest.RequestResult param1RequestResult) { + JSONArray jSONArray; + String str1; + String str2; + l.b(param1RequestResult, "requestResult"); + if (TextUtils.equals(param1RequestResult.f, "arraybuffer")) { + jSONArray = com.bytedance.sandboxapp.d.a.a(param1RequestResult.g, this.b); + } else { + jSONArray = null; + } + if (param1RequestResult.i != null) { + str1 = com.bytedance.sandboxapp.c.a.a.a.a.a(param1RequestResult.i); + } else { + str1 = param1RequestResult.h; + } + com.bytedance.sandboxapp.protocol.service.api.a.a a1 = this.c.c; + com.bytedance.sandboxapp.protocol.service.api.a.a a2 = (com.bytedance.sandboxapp.protocol.service.api.a.a)((com.bytedance.sandboxapp.c.a.a.a)this.a).sandboxAppApiRuntime; + String str3 = this.d; + c c2 = c.a().a(Integer.valueOf(param1RequestResult.a)); + if (param1RequestResult.b) { + str2 = "success"; + } else { + str2 = "fail"; + } + c c1 = c2.a(str2).a(param1RequestResult.e).b(String.valueOf(param1RequestResult.c)); + int i = param1RequestResult.j; + boolean bool = true; + if (i != 1) + bool = false; + f f = c1.a(Boolean.valueOf(bool)).c(param1RequestResult.d).a(jSONArray).d(str1).b(); + l.a(f, "OnRequestTaskStateChange… .build()"); + a1.handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a.b.a.a(a2, str3, (com.bytedance.sandboxapp.protocol.service.api.b.a)f).a()); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\f\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/c.java new file mode 100644 index 0000000..796a4ca --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/c.java @@ -0,0 +1,96 @@ +package com.bytedance.sandboxapp.c.a.b.f; + +import android.text.TextUtils; +import com.bytedance.sandboxapp.a.a.a.d; +import com.bytedance.sandboxapp.a.a.c.e; +import com.bytedance.sandboxapp.c.a.a.f; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import com.bytedance.sandboxapp.protocol.service.request.entity.b; +import d.f.b.l; +import org.json.JSONObject; + +public final class c extends e { + public c(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final ApiCallbackData a(e.b paramb, com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + ApiCallbackData apiCallbackData; + String str1; + l.b(paramb, "paramParser"); + l.b(parama, "apiInvokeInfo"); + boolean bool1 = TextUtils.equals(((com.bytedance.sandboxapp.c.a.a.a)this).apiName, "createInnerUploadTask"); + String str2 = paramb.b; + l.a(str2, "paramParser.url"); + if (!bool1 && !TextUtils.isEmpty(str2)) { + com.bytedance.sandboxapp.protocol.service.l.a a2 = (com.bytedance.sandboxapp.protocol.service.l.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.l.a.class); + String str = paramb.b; + l.a(str, "paramParser.url"); + if (!a2.isSafeDomain("upload", str)) { + apiCallbackData = a(paramb.b); + l.a(apiCallbackData, "buildInvalidDomain(paramParser.url)"); + return apiCallbackData; + } + } + if (bool1) { + str1 = "onInnerUploadTaskStateChange"; + } else { + str1 = "onUploadTaskStateChange"; + } + int i = ((com.bytedance.sandboxapp.protocol.service.i.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.i.a.class)).getRequestIdentifyId(); + com.bytedance.sandboxapp.protocol.service.request.a a1 = (com.bytedance.sandboxapp.protocol.service.request.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.request.a.class); + JSONObject jSONObject1 = ((e.b)apiCallbackData).e; + String str3 = ((e.b)apiCallbackData).c; + String str4 = ((e.b)apiCallbackData).d; + l.a(str4, "paramParser.name"); + JSONObject jSONObject2 = ((e.b)apiCallbackData).f; + Boolean bool = ((e.b)apiCallbackData).g; + l.a(bool, "paramParser.useCloud"); + a1.addUploadRequest(new b.d(i, str2, jSONObject1, str3, str4, jSONObject2, bool.booleanValue()), new a(this, parama, str1)); + return a(e.a.a().a(Integer.valueOf(i)).b()); + } + + public static final class a implements b.a { + a(c param1c, com.bytedance.sandboxapp.protocol.service.api.entity.a param1a, String param1String) {} + + public final void a(b.b param1b) { + String str1; + String str2; + l.b(param1b, "requestResult"); + if (param1b.f != null) { + str1 = com.bytedance.sandboxapp.c.a.a.a.a.a(param1b.f); + } else { + str1 = param1b.e; + } + com.bytedance.sandboxapp.protocol.service.api.a.a a1 = this.b.c; + com.bytedance.sandboxapp.protocol.service.api.a.a a2 = (com.bytedance.sandboxapp.protocol.service.api.a.a)((com.bytedance.sandboxapp.c.a.a.a)this.a).sandboxAppApiRuntime; + String str3 = this.c; + d d = d.a().a(Integer.valueOf(param1b.b)); + if (param1b.a) { + str2 = "success"; + } else { + str2 = "fail"; + } + f f = d.a(str2).b(String.valueOf(param1b.c)).c(param1b.d).d(str1).b(); + l.a(f, "OnUploadTaskStateChangeA… .build()"); + a1.handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a.b.a.a(a2, str3, (com.bytedance.sandboxapp.protocol.service.api.b.a)f).a()); + } + + public final void a(b.c param1c) { + l.b(param1c, "requestState"); + com.bytedance.sandboxapp.protocol.service.api.a.a a1 = this.b.c; + com.bytedance.sandboxapp.protocol.service.api.a.a a2 = (com.bytedance.sandboxapp.protocol.service.api.a.a)((com.bytedance.sandboxapp.c.a.a.a)this.a).sandboxAppApiRuntime; + String str = this.c; + f f = d.a().a(Integer.valueOf(param1c.a)).a("progressUpdate").b(Integer.valueOf(param1c.b)).a(Long.valueOf(param1c.c)).b(Long.valueOf(param1c.d)).b(); + l.a(f, "OnUploadTaskStateChangeA…esExpectedToSend).build()"); + a1.handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a.b.a.a(a2, str, (com.bytedance.sandboxapp.protocol.service.api.b.a)f).a()); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\f\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/d.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/d.java new file mode 100644 index 0000000..dfffa3e --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/d.java @@ -0,0 +1,34 @@ +package com.bytedance.sandboxapp.c.a.b.f; + +import com.bytedance.sandboxapp.a.a.c.o; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import com.bytedance.sandboxapp.protocol.service.request.a; +import d.f.b.l; + +public final class d extends o { + public d(b paramb, a parama) { + super(paramb, parama); + } + + public final void a(o.a parama, a parama1) { + l.b(parama, "paramParser"); + l.b(parama1, "apiInvokeInfo"); + a a1 = (a)((a)this).context.getService(a.class); + Integer integer = parama.b; + l.a(integer, "paramParser.downloadTaskId"); + int i = integer.intValue(); + String str = parama.c; + l.a(str, "paramParser.operationType"); + a1.operateDownloadRequest(i, str); + callbackOk(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\f\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/e.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/e.java new file mode 100644 index 0000000..2b5d4ab --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/e.java @@ -0,0 +1,34 @@ +package com.bytedance.sandboxapp.c.a.b.f; + +import com.bytedance.sandboxapp.a.a.c.p; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import com.bytedance.sandboxapp.protocol.service.request.a; +import d.f.b.l; + +public final class e extends p { + public e(b paramb, a parama) { + super(paramb, parama); + } + + public final void a(p.a parama, a parama1) { + l.b(parama, "paramParser"); + l.b(parama1, "apiInvokeInfo"); + a a1 = (a)((a)this).context.getService(a.class); + Integer integer = parama.b; + l.a(integer, "paramParser.requestTaskId"); + int i = integer.intValue(); + String str = parama.c; + l.a(str, "paramParser.operationType"); + a1.operateHttpRequest(i, str); + callbackOk(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\f\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/f.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/f.java new file mode 100644 index 0000000..9870e39 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/f/f.java @@ -0,0 +1,34 @@ +package com.bytedance.sandboxapp.c.a.b.f; + +import com.bytedance.sandboxapp.a.a.c.q; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import com.bytedance.sandboxapp.protocol.service.request.a; +import d.f.b.l; + +public final class f extends q { + public f(b paramb, a parama) { + super(paramb, parama); + } + + public final void a(q.a parama, a parama1) { + l.b(parama, "paramParser"); + l.b(parama1, "apiInvokeInfo"); + a a1 = (a)((a)this).context.getService(a.class); + Integer integer = parama.b; + l.a(integer, "paramParser.uploadTaskId"); + int i = integer.intValue(); + String str = parama.c; + l.a(str, "paramParser.operationType"); + a1.operateUploadRequest(i, str); + callbackOk(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\f\f.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/g/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/g/a.java new file mode 100644 index 0000000..1c91454 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/g/a.java @@ -0,0 +1,72 @@ +package com.bytedance.sandboxapp.c.a.b.g; + +import com.bytedance.sandboxapp.a.a.c.r; +import com.bytedance.sandboxapp.c.a.b; +import d.f.b.l; + +public final class a extends r { + public com.bytedance.sandboxapp.protocol.service.k.a a = (com.bytedance.sandboxapp.protocol.service.k.a)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(com.bytedance.sandboxapp.protocol.service.k.a.class); + + public com.bytedance.sandboxapp.protocol.service.k.a.c b; + + public a(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void a(r.a parama, com.bytedance.sandboxapp.protocol.service.api.entity.a parama1) { + l.b(parama, "paramParser"); + l.b(parama1, "apiInvokeInfo"); + Integer integer = parama.d; + l.a(integer, "paramParser.x"); + int i = integer.intValue(); + integer = parama.e; + l.a(integer, "paramParser.y"); + int j = integer.intValue(); + integer = parama.f; + l.a(integer, "paramParser.width"); + int k = integer.intValue(); + integer = parama.g; + l.a(integer, "paramParser.height"); + com.bytedance.sandboxapp.protocol.service.k.a.b b = new com.bytedance.sandboxapp.protocol.service.k.a.b(i, j, k, integer.intValue()); + com.bytedance.sandboxapp.protocol.service.k.a a1 = this.a; + String str2 = parama.b; + l.a(str2, "paramParser.url"); + String str1 = parama.c; + l.a(str1, "paramParser.referer"); + a1.payOnH5(str2, str1, b, new a(this)); + } + + public static final class a implements com.bytedance.sandboxapp.protocol.service.k.a.a { + a(a param1a) {} + + public final void a() { + this.a.a(); + } + + public final void a(String param1String) { + l.b(param1String, "failMessage"); + com.bytedance.sandboxapp.protocol.service.k.a.c c = this.a.b; + if (c != null) + c.a(); + this.a.a(param1String); + } + + public final void b() { + a a1 = this.a; + a1.b = a1.a.createPayNotification(); + } + + public final void c() { + com.bytedance.sandboxapp.protocol.service.k.a.c c = this.a.b; + if (c != null) + c.a(); + this.a.callbackOk(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\g\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/h/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/h/a.java new file mode 100644 index 0000000..fc1822f --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/b/h/a.java @@ -0,0 +1,44 @@ +package com.bytedance.sandboxapp.c.a.b.h; + +import com.bytedance.sandboxapp.a.a.c.k; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.h.c; +import d.f.b.l; + +public final class a extends k { + public a(b paramb, com.bytedance.sandboxapp.a.a.d.a parama) { + super(paramb, parama); + } + + public final void handleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama) { + l.b(parama, "apiInvokeInfo"); + ((c)((com.bytedance.sandboxapp.c.a.a.a)this).context.getService(c.class)).loginHostApp(new a(this)); + } + + public static final class a implements c.a { + a(a param1a) {} + + public final void a() { + this.a.callbackOk(); + } + + public final void a(String param1String) { + l.b(param1String, "failReason"); + this.a.a(param1String); + } + + public final void b() { + this.a.callbackAppInBackground(); + } + + public final void c() { + this.a.callbackFeatureNotSupport(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\b\h\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/c/a/c/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/c/a.java new file mode 100644 index 0000000..547a6ae --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/c/a/c/a.java @@ -0,0 +1,187 @@ +package com.bytedance.sandboxapp.c.a.c; + +import com.bytedance.sandboxapp.c.a.a.b; +import d.f; +import d.f.b.g; +import d.f.b.m; +import d.f.b.u; +import d.f.b.v; +import d.f.b.x; +import d.g; +import d.k.d; +import d.k.h; +import java.util.ArrayList; +import java.util.List; + +public final class a extends b { + public static final a d = new a(null); + + public volatile boolean b; + + public final List c = new ArrayList(); + + private final f e = g.a(new b(this)); + + public a(com.bytedance.sandboxapp.c.a.b paramb) { + super((com.bytedance.sandboxapp.protocol.service.api.a.a)paramb); + } + + public final com.bytedance.sandboxapp.protocol.service.api.entity.b preHandleApi(com.bytedance.sandboxapp.protocol.service.api.entity.a parama, com.bytedance.sandboxapp.c.a.a.a parama1) { + // Byte code: + // 0: aload_1 + // 1: ldc 'apiInvokeInfo' + // 3: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 6: aload_2 + // 7: ldc 'apiHandler' + // 9: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 12: aload_2 + // 13: getfield apiInfoEntity : Lcom/bytedance/sandboxapp/a/a/d/a; + // 16: astore_3 + // 17: aload_3 + // 18: getfield F : Ljava/lang/Boolean; + // 21: astore #4 + // 23: aload #4 + // 25: ldc 'apiInfoEntity.syncCall' + // 27: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 30: aload #4 + // 32: invokevirtual booleanValue : ()Z + // 35: ifeq -> 92 + // 38: aload_3 + // 39: getfield H : Lcom/bytedance/sandboxapp/a/a/d/b; + // 42: getfield b : Ljava/lang/Boolean; + // 45: astore_1 + // 46: aload_1 + // 47: ldc 'apiInfoEntity.foreBackSt…enBackgroundOverLimitTime' + // 49: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 52: aload_1 + // 53: invokevirtual booleanValue : ()Z + // 56: ifeq -> 159 + // 59: aload_0 + // 60: getfield e : Ld/f; + // 63: invokeinterface getValue : ()Ljava/lang/Object; + // 68: checkcast com/bytedance/sandboxapp/protocol/service/g/a + // 71: invokeinterface isStayBackgroundOverLimitTime : ()Z + // 76: ifeq -> 159 + // 79: new com/bytedance/sandboxapp/protocol/service/api/entity/b + // 82: dup + // 83: iconst_1 + // 84: aload_2 + // 85: invokevirtual buildAppInBackground : ()Lcom/bytedance/sandboxapp/protocol/service/api/entity/ApiCallbackData; + // 88: invokespecial : (ZLcom/bytedance/sandboxapp/protocol/service/api/entity/ApiCallbackData;)V + // 91: areturn + // 92: aload_0 + // 93: getfield b : Z + // 96: ifeq -> 159 + // 99: aload_3 + // 100: getfield H : Lcom/bytedance/sandboxapp/a/a/d/b; + // 103: getfield c : Ljava/lang/Boolean; + // 106: invokevirtual booleanValue : ()Z + // 109: ifne -> 159 + // 112: aload_0 + // 113: monitorenter + // 114: aload_0 + // 115: getfield b : Z + // 118: ifeq -> 149 + // 121: aload_0 + // 122: getfield c : Ljava/util/List; + // 125: new com/bytedance/sandboxapp/c/a/a/b$a + // 128: dup + // 129: aload_0 + // 130: aload_1 + // 131: aload_2 + // 132: invokespecial : (Lcom/bytedance/sandboxapp/c/a/a/b;Lcom/bytedance/sandboxapp/protocol/service/api/entity/a;Lcom/bytedance/sandboxapp/c/a/a/a;)V + // 135: invokeinterface add : (Ljava/lang/Object;)Z + // 140: pop + // 141: getstatic com/bytedance/sandboxapp/protocol/service/api/entity/b.d : Lcom/bytedance/sandboxapp/protocol/service/api/entity/b; + // 144: astore_1 + // 145: aload_0 + // 146: monitorexit + // 147: aload_1 + // 148: areturn + // 149: aload_0 + // 150: monitorexit + // 151: goto -> 159 + // 154: astore_1 + // 155: aload_0 + // 156: monitorexit + // 157: aload_1 + // 158: athrow + // 159: aconst_null + // 160: areturn + // Exception table: + // from to target type + // 114 145 154 finally + } + + public static final class a { + private a() {} + } + + static final class b extends m implements d.f.a.a { + b(a param1a) { + super(0); + } + + private com.bytedance.sandboxapp.protocol.service.g.a a() { + com.bytedance.sandboxapp.b.a.b.b.b.d("ForeBackgroundPreHandler", new Object[] { "init mForeBackgroundService" }); + null = (com.bytedance.sandboxapp.protocol.service.g.a)this.a.context.getService(com.bytedance.sandboxapp.protocol.service.g.a.class); + null.registerForeBackgroundListener((com.bytedance.sandboxapp.protocol.service.g.a.b)new com.bytedance.sandboxapp.protocol.service.g.a.a(this) { + public final void a() { + com.bytedance.sandboxapp.b.a.b.b.b.d("ForeBackgroundPreHandler", new Object[] { "onForeground" }); + if (this.a.a.b) + synchronized (this.a.a) { + this.a.a.b = false; + for (b.a a1 : this.a.a.c) + this.a.a.continuePreHandleApi(a1); + this.a.a.c.clear(); + } + com.bytedance.sandboxapp.b.a.b.b.b.d("ForeBackgroundPreHandler", new Object[] { "mIsInBackground", Boolean.valueOf(this.a.a.b) }); + } + + public final void b() { + com.bytedance.sandboxapp.b.a.b.b.b.d("ForeBackgroundPreHandler", new Object[] { "onBackground" }); + if (!this.a.a.b) + synchronized (this.a.a) { + this.a.a.b = true; + } + com.bytedance.sandboxapp.b.a.b.b.b.d("ForeBackgroundPreHandler", new Object[] { "mIsInBackground", Boolean.valueOf(this.a.a.b) }); + } + }); + synchronized (this.a) { + this.a.b = null.isBackground(); + return null; + } + } + } + + public static final class null extends com.bytedance.sandboxapp.protocol.service.g.a.a { + null(a.b param1b) {} + + public final void a() { + com.bytedance.sandboxapp.b.a.b.b.b.d("ForeBackgroundPreHandler", new Object[] { "onForeground" }); + if (this.a.a.b) + synchronized (this.a.a) { + this.a.a.b = false; + for (b.a a1 : this.a.a.c) + this.a.a.continuePreHandleApi(a1); + this.a.a.c.clear(); + } + com.bytedance.sandboxapp.b.a.b.b.b.d("ForeBackgroundPreHandler", new Object[] { "mIsInBackground", Boolean.valueOf(this.a.a.b) }); + } + + public final void b() { + com.bytedance.sandboxapp.b.a.b.b.b.d("ForeBackgroundPreHandler", new Object[] { "onBackground" }); + if (!this.a.a.b) + synchronized (this.a.a) { + this.a.a.b = true; + } + com.bytedance.sandboxapp.b.a.b.b.b.d("ForeBackgroundPreHandler", new Object[] { "mIsInBackground", Boolean.valueOf(this.a.a.b) }); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\c\a\c\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/d/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/d/a.java new file mode 100644 index 0000000..4bee898 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/d/a.java @@ -0,0 +1,67 @@ +package com.bytedance.sandboxapp.d; + +import android.text.TextUtils; +import android.util.Base64; +import d.f.b.l; +import d.m.d; +import d.u; +import g.i; +import java.nio.charset.Charset; +import java.util.Arrays; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public final class a { + public static final a a = new a(); + + public static final JSONArray a(byte[] paramArrayOfbyte, boolean paramBoolean) { + if (paramArrayOfbyte == null) + return null; + try { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("key", "data"); + if (paramBoolean) { + jSONObject.put("value", paramArrayOfbyte); + } else { + jSONObject.put("base64", i.of(Arrays.copyOf(paramArrayOfbyte, paramArrayOfbyte.length)).base64()); + } + JSONArray jSONArray = new JSONArray(); + jSONArray.put(jSONObject); + return jSONArray; + } catch (JSONException jSONException) { + return null; + } + } + + public static final byte[] a(JSONArray paramJSONArray, boolean paramBoolean) { + if (paramJSONArray != null) { + JSONObject jSONObject = paramJSONArray.optJSONObject(0); + } else { + paramJSONArray = null; + } + if (paramJSONArray != null) { + if (paramBoolean) + return (byte[])paramJSONArray.opt("value"); + String str2 = paramJSONArray.optString("key"); + String str1 = paramJSONArray.optString("base64"); + if (!TextUtils.isEmpty(str2) && !TextUtils.isEmpty(str1)) { + l.a(str1, "base64Data"); + Charset charset = d.a; + if (str1 != null) { + byte[] arrayOfByte = str1.getBytes(charset); + l.a(arrayOfByte, "(this as java.lang.String).getBytes(charset)"); + return Base64.decode(arrayOfByte, 0); + } + throw new u("null cannot be cast to non-null type java.lang.String"); + } + } + return null; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\d\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/d/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/d/b.java new file mode 100644 index 0000000..afc5b2f --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/d/b.java @@ -0,0 +1,33 @@ +package com.bytedance.sandboxapp.d; + +import d.f.b.l; + +public final class b { + public static final b a = new b(); + + public static final String a(Throwable paramThrowable, int paramInt1, int paramInt2) { + l.b(paramThrowable, "throwable"); + StackTraceElement[] arrayOfStackTraceElement = paramThrowable.getStackTrace(); + StringBuilder stringBuilder = new StringBuilder(); + paramInt2 = arrayOfStackTraceElement.length; + paramInt1 = 6; + if (6 > paramInt2) + paramInt1 = arrayOfStackTraceElement.length; + if (1 < paramInt1) { + stringBuilder.append(arrayOfStackTraceElement[1]); + for (paramInt2 = 2; paramInt2 < paramInt1; paramInt2++) { + stringBuilder.append(" "); + stringBuilder.append(arrayOfStackTraceElement[paramInt2]); + } + } + String str = stringBuilder.toString(); + l.a(str, "stackInfoBuilder.toString()"); + return str; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\d\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a.java new file mode 100644 index 0000000..246d1b3 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a.java @@ -0,0 +1,27 @@ +package com.bytedance.sandboxapp.protocol.service.a.a; + +import com.bytedance.sandboxapp.b.b; +import com.bytedance.sandboxapp.protocol.service.a.a.a.a; +import com.bytedance.sandboxapp.protocol.service.a.a.a.b; +import com.bytedance.sandboxapp.protocol.service.a.a.a.c; +import com.bytedance.sandboxapp.protocol.service.a.a.a.d; + +public interface a extends b { + void cancelDxppAd(b paramb); + + void dxppAd(b paramb); + + boolean isSupportDxppManager(); + + void openAdLandPageLinks(d paramd, c paramc); + + void subscribeAppAd(b paramb, a parama); + + void unsubscribeAppAd(b paramb); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\a\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/a.java new file mode 100644 index 0000000..fd1c0fd --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/a.java @@ -0,0 +1,9 @@ +package com.bytedance.sandboxapp.protocol.service.a.a.a; + +public interface a {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\a\a\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/b.java new file mode 100644 index 0000000..4acb91f --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/b.java @@ -0,0 +1,33 @@ +package com.bytedance.sandboxapp.protocol.service.a.a.a; + +public final class b { + public long a; + + public String b; + + public String c; + + public String d; + + public String e; + + public String f; + + public String g; + + public String h; + + public String i; + + public int j; + + public int k; + + public String l; +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\a\a\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/c.java new file mode 100644 index 0000000..1cc9fae --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/c.java @@ -0,0 +1,11 @@ +package com.bytedance.sandboxapp.protocol.service.a.a.a; + +public interface c { + void a(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\a\a\a\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/d.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/d.java new file mode 100644 index 0000000..8374b2d --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/a/a/a/d.java @@ -0,0 +1,19 @@ +package com.bytedance.sandboxapp.protocol.service.a.a.a; + +import org.json.JSONObject; + +public final class d { + public JSONObject a; + + public String b; + + public String c; + + public b d; +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\a\a\a\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/a.java new file mode 100644 index 0000000..8f5e917 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/a.java @@ -0,0 +1,17 @@ +package com.bytedance.sandboxapp.protocol.service.api; + +import com.bytedance.sandboxapp.b.b; +import com.bytedance.sandboxapp.c.a.a.b; +import com.bytedance.sandboxapp.protocol.service.api.a.a; + +public interface a extends b { + a a(); + + void a(b[] paramArrayOfb); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\api\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/a/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/a/a.java new file mode 100644 index 0000000..8e7b0ff --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/a/a.java @@ -0,0 +1,15 @@ +package com.bytedance.sandboxapp.protocol.service.api.a; + +import com.bytedance.sandboxapp.protocol.service.api.entity.b; + +public interface a { + com.bytedance.sandboxapp.b.a getContext(); + + b handleApiInvoke(com.bytedance.sandboxapp.protocol.service.api.entity.a parama); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\api\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/b/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/b/a.java new file mode 100644 index 0000000..2511237 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/b/a.java @@ -0,0 +1,13 @@ +package com.bytedance.sandboxapp.protocol.service.api.b; + +public interface a { + T getParam(String paramString); + + com.bytedance.sandboxapp.b.b.a toJson(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\api\b\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/b/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/b/b.java new file mode 100644 index 0000000..8575041 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/b/b.java @@ -0,0 +1,13 @@ +package com.bytedance.sandboxapp.protocol.service.api.b; + +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; + +public interface b { + void executeCallback(ApiCallbackData paramApiCallbackData); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\api\b\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/b/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/b/c.java new file mode 100644 index 0000000..5aa08c6 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/b/c.java @@ -0,0 +1,11 @@ +package com.bytedance.sandboxapp.protocol.service.api.b; + +public interface c { + void scheduleHandle(Runnable paramRunnable); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\api\b\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/entity/ApiCallbackData.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/entity/ApiCallbackData.java new file mode 100644 index 0000000..7d8e08b --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/entity/ApiCallbackData.java @@ -0,0 +1,229 @@ +package com.bytedance.sandboxapp.protocol.service.api.entity; + +import android.os.Parcel; +import android.os.Parcelable; +import android.text.TextUtils; +import d.f.b.g; +import d.f.b.l; +import org.json.JSONException; +import org.json.JSONObject; + +public final class ApiCallbackData implements Parcelable { + public static final Parcelable.Creator CREATOR; + + public static final b c = new b(null); + + public final JSONObject a; + + public final boolean b; + + private final String d; + + static { + CREATOR = new c(); + } + + protected ApiCallbackData(Parcel paramParcel) { + boolean bool; + JSONObject jSONObject; + String str2 = paramParcel.readString(); + if (paramParcel.readByte() != 0) { + bool = true; + } else { + bool = false; + } + this.b = bool; + String str1 = str2; + if (str2 == null) { + com.bytedance.sandboxapp.b.a.a.b.b.logOrToast("ApiCallbackData", new Object[] { "读取到空的 Api 执行结果" }); + str1 = ""; + } + try { + jSONObject = new JSONObject(str1); + } catch (JSONException jSONException) { + jSONObject = new JSONObject(); + com.bytedance.sandboxapp.b.a.a.b.b.logOrToast("ApiCallbackData", new Object[] { "从执行结果解析为 JsonObject 时异常 result:", str1, jSONException }); + } + this.d = str1; + this.a = jSONObject; + } + + private ApiCallbackData(JSONObject paramJSONObject, boolean paramBoolean) { + this.a = paramJSONObject; + String str = this.a.toString(); + l.a(str, "callbackDataJson.toString()"); + this.d = str; + this.b = paramBoolean; + } + + public final int describeContents() { + return 0; + } + + public final String toString() { + return this.d; + } + + public final void writeToParcel(Parcel paramParcel, int paramInt) { + l.b(paramParcel, "dest"); + paramParcel.writeString(this.d); + paramParcel.writeByte((byte)this.b); + } + + public static final class a { + public static final a b = new a(null); + + com.bytedance.sandboxapp.b.b.a a; + + private final boolean c; + + private String d; + + private int e; + + private final String f; + + private final String g; + + private a(String param1String1, String param1String2) { + boolean bool; + this.f = param1String1; + this.g = param1String2; + if (this.g == "fail") { + bool = true; + } else { + bool = false; + } + this.c = bool; + } + + public static final a a(String param1String1, String param1String2, int param1Int) { + return a.a(param1String1, param1String2, 0); + } + + public final a a(int param1Int) { + this.e = param1Int; + return this; + } + + public final a a(String param1String) { + this.d = param1String; + return this; + } + + public final a a(String param1String, Object param1Object) { + l.b(param1String, "key"); + if (this.a == null) + this.a = new com.bytedance.sandboxapp.b.b.a(); + try { + com.bytedance.sandboxapp.b.b.a a1 = this.a; + if (a1 == null) + l.a(); + a1.a(param1String, param1Object); + return this; + } catch (Exception exception) { + com.bytedance.sandboxapp.b.a.b.b.b.e("ApiCallbackData", new Object[] { "append", exception }); + return this; + } + } + + public final ApiCallbackData a() { + com.bytedance.sandboxapp.b.b.a a2 = this.a; + com.bytedance.sandboxapp.b.b.a a1 = a2; + if (a2 == null) + a1 = new com.bytedance.sandboxapp.b.b.a(); + a1.a("errMsg", a.a(this.f, this.g, this.d)); + int i = this.e; + if (i != 0) + a1.a("errCode", Integer.valueOf(i)); + return new ApiCallbackData(a1.a, this.c, null); + } + + public final String toString() { + com.bytedance.sandboxapp.b.a.b.b.b.e("ApiCallbackData", new Object[] { "请避免使用 Builder 的 toString" }); + return a().toString(); + } + + public static final class a { + private a() {} + + public static ApiCallbackData.a a(String param2String, com.bytedance.sandboxapp.b.b.a param2a) { + l.b(param2String, "apiName"); + ApiCallbackData.a a1 = new ApiCallbackData.a(param2String, "ok", null); + a1.a = param2a; + return a1; + } + + public static ApiCallbackData.a a(String param2String1, String param2String2, int param2Int) { + l.b(param2String1, "apiName"); + l.b(param2String2, "extraInfo"); + return (new ApiCallbackData.a(param2String1, "fail", null)).a(param2String2).a(param2Int); + } + + public static String a(String param2String1, String param2String2, String param2String3) { + StringBuilder stringBuilder1; + if (TextUtils.isEmpty(param2String3)) { + stringBuilder1 = new StringBuilder(); + stringBuilder1.append(param2String1); + stringBuilder1.append(':'); + stringBuilder1.append(param2String2); + return stringBuilder1.toString(); + } + StringBuilder stringBuilder2 = new StringBuilder(); + stringBuilder2.append(param2String1); + stringBuilder2.append(':'); + stringBuilder2.append(param2String2); + stringBuilder2.append(' '); + stringBuilder2.append((String)stringBuilder1); + return stringBuilder2.toString(); + } + } + } + + public static final class a { + private a() {} + + public static ApiCallbackData.a a(String param1String, com.bytedance.sandboxapp.b.b.a param1a) { + l.b(param1String, "apiName"); + ApiCallbackData.a a1 = new ApiCallbackData.a(param1String, "ok", null); + a1.a = param1a; + return a1; + } + + public static ApiCallbackData.a a(String param1String1, String param1String2, int param1Int) { + l.b(param1String1, "apiName"); + l.b(param1String2, "extraInfo"); + return (new ApiCallbackData.a(param1String1, "fail", null)).a(param1String2).a(param1Int); + } + + public static String a(String param1String1, String param1String2, String param1String3) { + StringBuilder stringBuilder1; + if (TextUtils.isEmpty(param1String3)) { + stringBuilder1 = new StringBuilder(); + stringBuilder1.append(param1String1); + stringBuilder1.append(':'); + stringBuilder1.append(param1String2); + return stringBuilder1.toString(); + } + StringBuilder stringBuilder2 = new StringBuilder(); + stringBuilder2.append(param1String1); + stringBuilder2.append(':'); + stringBuilder2.append(param1String2); + stringBuilder2.append(' '); + stringBuilder2.append((String)stringBuilder1); + return stringBuilder2.toString(); + } + } + + public static final class b { + private b() {} + } + + public static final class c implements Parcelable.Creator {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\api\entity\ApiCallbackData.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/entity/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/entity/a.java new file mode 100644 index 0000000..a25bb25 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/entity/a.java @@ -0,0 +1,129 @@ +package com.bytedance.sandboxapp.protocol.service.api.entity; + +import com.bytedance.sandboxapp.protocol.service.api.b.c; +import d.f.b.g; +import d.f.b.l; + +public final class a { + public a a; + + public final String b; + + public final com.bytedance.sandboxapp.protocol.service.api.a.a c; + + public final boolean d; + + private final com.bytedance.sandboxapp.protocol.service.api.b.a e; + + private final c f; + + private final com.bytedance.sandboxapp.protocol.service.api.b.b g; + + private a(String paramString, com.bytedance.sandboxapp.protocol.service.api.a.a parama, com.bytedance.sandboxapp.protocol.service.api.b.a parama1, boolean paramBoolean, c paramc, com.bytedance.sandboxapp.protocol.service.api.b.b paramb) { + this.b = paramString; + this.c = parama; + this.e = parama1; + this.d = paramBoolean; + this.f = paramc; + this.g = paramb; + } + + public final com.bytedance.sandboxapp.b.b.a a() { + return this.e.toJson(); + } + + public final T a(String paramString) { + l.b(paramString, "key"); + return (T)this.e.getParam(paramString); + } + + public final boolean a(ApiCallbackData paramApiCallbackData) { + l.b(paramApiCallbackData, "apiCallbackData"); + com.bytedance.sandboxapp.protocol.service.api.b.b b1 = this.g; + if (b1 == null) + return false; + b1.executeCallback(paramApiCallbackData); + a a1 = this.a; + if (a1 != null) + a1.a(paramApiCallbackData); + return true; + } + + public final boolean a(Runnable paramRunnable) { + c c1 = this.f; + if (c1 == null) + return false; + c1.scheduleHandle(paramRunnable); + return true; + } + + public static interface a { + void a(ApiCallbackData param1ApiCallbackData); + } + + public static final class b { + public static final a b = new a(null); + + public boolean a; + + private c c; + + private com.bytedance.sandboxapp.protocol.service.api.b.b d; + + private final com.bytedance.sandboxapp.protocol.service.api.a.a e; + + private final String f; + + private final com.bytedance.sandboxapp.protocol.service.api.b.a g; + + private b(com.bytedance.sandboxapp.protocol.service.api.a.a param1a, String param1String, com.bytedance.sandboxapp.protocol.service.api.b.a param1a1) { + this.e = param1a; + this.f = param1String; + this.g = param1a1; + } + + public static final b a(com.bytedance.sandboxapp.protocol.service.api.a.a param1a, String param1String, com.bytedance.sandboxapp.protocol.service.api.b.a param1a1) { + return a.a(param1a, param1String, param1a1); + } + + public final b a(c param1c, com.bytedance.sandboxapp.protocol.service.api.b.b param1b) { + l.b(param1c, "asyncApiHandleScheduler"); + l.b(param1b, "asyncApiCallbackExecutor"); + this.c = param1c; + this.d = param1b; + return this; + } + + public final a a() { + return new a(this.f, this.e, this.g, this.a, this.c, this.d, null); + } + + public static final class a { + private a() {} + + public static a.b a(com.bytedance.sandboxapp.protocol.service.api.a.a param2a, String param2String, com.bytedance.sandboxapp.protocol.service.api.b.a param2a1) { + l.b(param2a, "apiRuntime"); + l.b(param2String, "apiName"); + l.b(param2a1, "param"); + return new a.b(param2a, param2String, param2a1, null); + } + } + } + + public static final class a { + private a() {} + + public static a.b a(com.bytedance.sandboxapp.protocol.service.api.a.a param1a, String param1String, com.bytedance.sandboxapp.protocol.service.api.b.a param1a1) { + l.b(param1a, "apiRuntime"); + l.b(param1String, "apiName"); + l.b(param1a1, "param"); + return new a.b(param1a, param1String, param1a1, null); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\api\entity\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/entity/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/entity/b.java new file mode 100644 index 0000000..4e6fff3 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/api/entity/b.java @@ -0,0 +1,35 @@ +package com.bytedance.sandboxapp.protocol.service.api.entity; + +import d.f.b.g; + +public final class b { + public static final b c; + + public static final b d; + + public static final a e = new a(null); + + public final boolean a; + + public final ApiCallbackData b; + + static { + c = new b(false, null); + d = new b(true, null); + } + + public b(boolean paramBoolean, ApiCallbackData paramApiCallbackData) { + this.a = paramBoolean; + this.b = paramApiCallbackData; + } + + public static final class a { + private a() {} + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\api\entity\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/b/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/b/a.java new file mode 100644 index 0000000..65e4ba3 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/b/a.java @@ -0,0 +1,27 @@ +package com.bytedance.sandboxapp.protocol.service.b; + +import com.bytedance.sandboxapp.b.b; +import org.json.JSONArray; +import org.json.JSONObject; + +public interface a extends b { + JSONArray getApiBlackList(); + + JSONArray getApiWhiteList(); + + String getAppId(); + + JSONObject getExtConfigInfoJson(); + + int getPkgType(); + + String getPlatformSession(); + + String getSchema(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\b\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/c/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/c/a.java new file mode 100644 index 0000000..df4693a --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/c/a.java @@ -0,0 +1,24 @@ +package com.bytedance.sandboxapp.protocol.service.c; + +import android.app.Activity; +import com.bytedance.sandboxapp.b.b; + +public interface a extends b { + boolean canCheckFollowAwemeState(); + + void checkFollowAwemeState(String paramString1, String paramString2, c paramc); + + void getAwemeUidFromSuffixMeta(b paramb); + + boolean hasAwemeDepend(); + + boolean hasLogin(); + + void openAwemeUserProfile(Activity paramActivity, String paramString1, String paramString2, boolean paramBoolean, c paramc); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\c\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/c/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/c/b.java new file mode 100644 index 0000000..5764daf --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/c/b.java @@ -0,0 +1,13 @@ +package com.bytedance.sandboxapp.protocol.service.c; + +public interface b { + void a(String paramString); + + void a(String paramString1, String paramString2); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\c\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/c/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/c/c.java new file mode 100644 index 0000000..80b32e9 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/c/c.java @@ -0,0 +1,17 @@ +package com.bytedance.sandboxapp.protocol.service.c; + +public interface c { + public static final a a = a.a; + + void onFailure(int paramInt, String paramString); + + void onFollowAwemeResult(Boolean paramBoolean); + + public static final class a {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\c\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/d/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/d/a.java new file mode 100644 index 0000000..8df6675 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/d/a.java @@ -0,0 +1,14 @@ +package com.bytedance.sandboxapp.protocol.service.d; + +import com.bytedance.sandboxapp.b.b; +import java.util.Map; + +public interface a extends b { + Map getRequestHeader(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\d\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/e/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/e/a.java new file mode 100644 index 0000000..f1b2937 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/e/a.java @@ -0,0 +1,21 @@ +package com.bytedance.sandboxapp.protocol.service.e; + +public final class a { + public final String a; + + public final String b; + + public final String c; + + public a(String paramString1, String paramString2, String paramString3) { + this.a = paramString1; + this.b = paramString2; + this.c = paramString3; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\e\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/e/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/e/b.java new file mode 100644 index 0000000..6fb62cc --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/e/b.java @@ -0,0 +1,13 @@ +package com.bytedance.sandboxapp.protocol.service.e; + +import com.bytedance.sandboxapp.b.b; + +public interface b extends b { + a getDeviceInfo(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\e\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/f/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/f/a.java new file mode 100644 index 0000000..39ae421 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/f/a.java @@ -0,0 +1,15 @@ +package com.bytedance.sandboxapp.protocol.service.f; + +import com.bytedance.sandboxapp.b.b; + +public interface a extends b { + boolean canWrite(String paramString); + + boolean isParentDirExists(String paramString); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\f\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/g/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/g/a.java new file mode 100644 index 0000000..03aca5d --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/g/a.java @@ -0,0 +1,29 @@ +package com.bytedance.sandboxapp.protocol.service.g; + +import com.bytedance.sandboxapp.b.b; + +public interface a extends b { + boolean isBackground(); + + boolean isStayBackgroundOverLimitTime(); + + void registerForeBackgroundListener(b paramb); + + public static class a implements b { + public void a() {} + + public void b() {} + } + + public static interface b { + void a(); + + void b(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\g\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/h/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/h/a.java new file mode 100644 index 0000000..befd6cb --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/h/a.java @@ -0,0 +1,24 @@ +package com.bytedance.sandboxapp.protocol.service.h; + +public final class a { + public final String a; + + public final String b; + + public final String c; + + public final String d; + + public a(String paramString1, String paramString2, String paramString3, String paramString4) { + this.a = paramString1; + this.b = paramString2; + this.c = paramString3; + this.d = paramString4; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\h\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/h/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/h/b.java new file mode 100644 index 0000000..4cf31ac --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/h/b.java @@ -0,0 +1,21 @@ +package com.bytedance.sandboxapp.protocol.service.h; + +public final class b { + public final String a; + + public final String b; + + public final boolean c; + + public b(String paramString1, String paramString2, boolean paramBoolean) { + this.a = paramString1; + this.b = paramString2; + this.c = paramBoolean; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\h\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/h/c.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/h/c.java new file mode 100644 index 0000000..7cbcda1 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/h/c.java @@ -0,0 +1,71 @@ +package com.bytedance.sandboxapp.protocol.service.h; + +import android.net.Uri; +import com.bytedance.sandboxapp.b.b; + +public interface c extends b { + a getHostAppInfo(); + + b getHostAppUserInfo(); + + void loginHostApp(a parama); + + void openMiniApp(b paramb); + + void openSchema(c paramc, d paramd); + + public static interface a { + void a(); + + void a(String param1String); + + void b(); + + void c(); + } + + public static final class b { + public final String a; + + public final boolean b; + + public final boolean c; + + public final boolean d; + + public final int e; + + public b(String param1String, boolean param1Boolean1, boolean param1Boolean2, boolean param1Boolean3, int param1Int) { + this.a = param1String; + this.b = param1Boolean1; + this.c = param1Boolean2; + this.d = param1Boolean3; + this.e = param1Int; + } + } + + public static final class c { + public final Uri a; + + public final String b; + + public c(Uri param1Uri, String param1String) { + this.a = param1Uri; + this.b = param1String; + } + } + + public static interface d { + void a(); + + void a(String param1String); + + void b(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\h\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/i/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/i/a.java new file mode 100644 index 0000000..aa595a4 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/i/a.java @@ -0,0 +1,13 @@ +package com.bytedance.sandboxapp.protocol.service.i; + +import com.bytedance.sandboxapp.b.b; + +public interface a extends b { + int getRequestIdentifyId(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\i\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/j/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/j/a.java new file mode 100644 index 0000000..55e9ad9 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/j/a.java @@ -0,0 +1,29 @@ +package com.bytedance.sandboxapp.protocol.service.j; + +import android.view.View; +import com.bytedance.sandboxapp.b.b; +import com.bytedance.sandboxapp.protocol.service.j.a.a; + +public interface a extends b { + void abandonAudioFocus(a parama); + + a.d acquireAudioFocus(a parama); + + void enterFullScreen(View paramView, a parama); + + void exitFullScreen(View paramView); + + public enum a { + LANDSCAPE, PORTRAIT, REVERSE_LANDSCAPE, REVERSE_PORTRAIT, SENSOR_LANDSCAPE, SENSOR_PORTRAIT; + + static { + + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\j\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/j/a/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/j/a/a.java new file mode 100644 index 0000000..a3920e1 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/j/a/a.java @@ -0,0 +1,98 @@ +package com.bytedance.sandboxapp.protocol.service.j.a; + +import d.f.b.g; + +public final class a { + public static final a e = new a(null); + + public final b a; + + public final f b; + + public final e c; + + public final c d; + + public a(b paramb, f paramf, e parame, c paramc) { + this.a = paramb; + this.b = paramf; + this.c = parame; + this.d = paramc; + } + + public static final class a { + private a() {} + } + + public enum b { + FOCUS_LOSS_TRANSIENT_CAN_DUCK, FOCUS_NONE, GAIN, GAIN_TRANSIENT, GAIN_TRANSIENT_EXCLUSIVE, GAIN_TRANSIENT_MAY_DUCK, LOSS, LOSS_TRANSIENT; + + static { + b b1 = new b("GAIN", 0); + GAIN = b1; + b b2 = new b("GAIN_TRANSIENT", 1); + GAIN_TRANSIENT = b2; + b b3 = new b("GAIN_TRANSIENT_MAY_DUCK", 2); + GAIN_TRANSIENT_MAY_DUCK = b3; + b b4 = new b("GAIN_TRANSIENT_EXCLUSIVE", 3); + GAIN_TRANSIENT_EXCLUSIVE = b4; + b b5 = new b("LOSS", 4); + LOSS = b5; + b b6 = new b("LOSS_TRANSIENT", 5); + LOSS_TRANSIENT = b6; + b b7 = new b("FOCUS_LOSS_TRANSIENT_CAN_DUCK", 6); + FOCUS_LOSS_TRANSIENT_CAN_DUCK = b7; + b b8 = new b("FOCUS_NONE", 7); + FOCUS_NONE = b8; + a = new b[] { b1, b2, b3, b4, b5, b6, b7, b8 }; + } + } + + public static interface c { + void onAudioFocusChanged(a.b param1b); + } + + public enum d { + FOCUS_REQUEST_DELAYED, FOCUS_REQUEST_FAILED, FOCUS_REQUEST_GRANTED; + + static { + d d1 = new d("FOCUS_REQUEST_FAILED", 0); + FOCUS_REQUEST_FAILED = d1; + d d2 = new d("FOCUS_REQUEST_GRANTED", 1); + FOCUS_REQUEST_GRANTED = d2; + d d3 = new d("FOCUS_REQUEST_DELAYED", 2); + FOCUS_REQUEST_DELAYED = d3; + a = new d[] { d1, d2, d3 }; + } + } + + public enum e { + SELF_ONLY, SHARE; + + static { + e e1 = new e("SHARE", 0); + SHARE = e1; + e e2 = new e("SELF_ONLY", 1); + SELF_ONLY = e2; + a = new e[] { e1, e2 }; + } + } + + public enum f { + USAGE_ALARM, USAGE_MEDIA; + + static { + f f1 = new f("USAGE_MEDIA", 0); + USAGE_MEDIA = f1; + f f2 = new f("USAGE_ALARM", 1); + USAGE_ALARM = f2; + a = new f[] { f1, f2 }; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\j\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/j/a/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/j/a/b.java new file mode 100644 index 0000000..ca502ed --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/j/a/b.java @@ -0,0 +1,7 @@ +package com.bytedance.sandboxapp.protocol.service.j.a; + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\j\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/k/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/k/a.java new file mode 100644 index 0000000..3e2601d --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/k/a.java @@ -0,0 +1,57 @@ +package com.bytedance.sandboxapp.protocol.service.k; + +import com.bytedance.sandboxapp.b.b; +import com.tt.miniapp.notification.MiniAppNotificationManager; + +public interface a extends b { + c createPayNotification(); + + void payOnH5(String paramString1, String paramString2, b paramb, a parama); + + void reportPayInformation(); + + public static interface a { + void a(); + + void a(String param1String); + + void b(); + + void c(); + } + + public static final class b { + public final int a; + + public final int b; + + public final int c; + + public final int d; + + public b(int param1Int1, int param1Int2, int param1Int3, int param1Int4) { + this.a = param1Int1; + this.b = param1Int2; + this.c = param1Int3; + this.d = param1Int4; + } + } + + public static final class c { + private final MiniAppNotificationManager.NotificationEntity a; + + public c(MiniAppNotificationManager.NotificationEntity param1NotificationEntity) { + this.a = param1NotificationEntity; + } + + public final void a() { + MiniAppNotificationManager.cancelPayNotification(this.a); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\k\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/l/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/l/a.java new file mode 100644 index 0000000..3292e24 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/l/a.java @@ -0,0 +1,13 @@ +package com.bytedance.sandboxapp.protocol.service.l; + +import com.bytedance.sandboxapp.b.b; + +public interface a extends b { + boolean isSafeDomain(String paramString1, String paramString2); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\l\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/m/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/m/a.java new file mode 100644 index 0000000..7b17262 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/m/a.java @@ -0,0 +1,17 @@ +package com.bytedance.sandboxapp.protocol.service.m; + +import com.bytedance.sandboxapp.b.b; + +public interface a extends b { + boolean isRenderInBrowser(); + + boolean useWebLivePlayer(); + + boolean useWebVideo(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\m\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/n/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/n/a.java new file mode 100644 index 0000000..910390c --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/n/a.java @@ -0,0 +1,11 @@ +package com.bytedance.sandboxapp.protocol.service.n; + +import com.bytedance.sandboxapp.b.b; + +public interface a extends b {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\n\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/n/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/n/b.java new file mode 100644 index 0000000..17025be --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/n/b.java @@ -0,0 +1,14 @@ +package com.bytedance.sandboxapp.protocol.service.n; + +import com.bytedance.sandboxapp.b.b; +import org.json.JSONObject; + +public interface b extends b { + void reportInvokeApiFail(int paramInt, JSONObject paramJSONObject); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\n\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/a.java new file mode 100644 index 0000000..2b858a3 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/a.java @@ -0,0 +1,28 @@ +package com.bytedance.sandboxapp.protocol.service.request; + +import com.bytedance.sandboxapp.b.b; +import com.bytedance.sandboxapp.protocol.service.request.entity.HttpRequest; +import com.bytedance.sandboxapp.protocol.service.request.entity.a; +import com.bytedance.sandboxapp.protocol.service.request.entity.b; + +public interface a extends b { + void addDownloadRequest(a.d paramd, a.a parama); + + void addHttpRequest(HttpRequest.RequestTask paramRequestTask, HttpRequest.a parama); + + void addUploadRequest(b.d paramd, b.a parama); + + void operateDownloadRequest(int paramInt, String paramString); + + void operateHttpRequest(int paramInt, String paramString); + + void operateUploadRequest(int paramInt, String paramString); + + HttpRequest.RequestResult syncHttpRequest(HttpRequest.RequestTask paramRequestTask); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\request\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest.java new file mode 100644 index 0000000..0a1630e --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest.java @@ -0,0 +1,377 @@ +package com.bytedance.sandboxapp.protocol.service.request.entity; + +import android.os.Parcel; +import android.os.Parcelable; +import d.f.b.g; +import d.f.b.l; +import java.util.Map; +import org.json.JSONObject; + +public final class HttpRequest { + public static final class RequestResult implements Parcelable { + public static final a CREATOR = new a(null); + + public int a; + + public boolean b; + + public int c; + + public String d; + + public JSONObject e; + + public String f; + + public byte[] g; + + public String h = ""; + + public Throwable i; + + public int j = -1; + + public RequestResult() {} + + public RequestResult(int param1Int) { + this(param1Int, false, 0, null, null, null, 62, null); + } + + public RequestResult(int param1Int1, boolean param1Boolean, int param1Int2, String param1String1, JSONObject param1JSONObject, String param1String2) { + this(); + this.a = param1Int1; + this.b = param1Boolean; + this.c = param1Int2; + this.d = param1String1; + this.e = param1JSONObject; + this.f = param1String2; + } + + public RequestResult(int param1Int1, boolean param1Boolean, int param1Int2, byte[] param1ArrayOfbyte, JSONObject param1JSONObject, String param1String) { + this(); + this.a = param1Int1; + this.b = param1Boolean; + this.c = param1Int2; + this.g = param1ArrayOfbyte; + this.e = param1JSONObject; + this.f = param1String; + } + + public RequestResult(Parcel param1Parcel) { + this(); + boolean bool; + this.a = param1Parcel.readInt(); + if (param1Parcel.readByte() != 0) { + bool = true; + } else { + bool = false; + } + this.b = bool; + this.c = param1Parcel.readInt(); + this.d = param1Parcel.readString(); + this.f = param1Parcel.readString(); + this.g = param1Parcel.createByteArray(); + this.h = param1Parcel.readString(); + this.j = param1Parcel.readInt(); + } + + public final int describeContents() { + return 0; + } + + public final String toString() { + StringBuilder stringBuilder = new StringBuilder("{success: "); + stringBuilder.append(this.b); + stringBuilder.append(", requestId: "); + stringBuilder.append(this.a); + stringBuilder.append(", statusCode: "); + stringBuilder.append(this.c); + stringBuilder.append(", data: "); + stringBuilder.append(this.d); + stringBuilder.append(", header: "); + stringBuilder.append(this.e); + stringBuilder.append(", responseType: "); + stringBuilder.append(this.f); + stringBuilder.append(", message: "); + stringBuilder.append(this.h); + stringBuilder.append(", failThrowable: "); + stringBuilder.append(this.i); + stringBuilder.append(", prefetchStatus: "); + stringBuilder.append(this.j); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + + public final void writeToParcel(Parcel param1Parcel, int param1Int) { + throw new RuntimeException("d2j fail translate: java.lang.RuntimeException: can not merge I and Z\r\n\tat com.googlecode.dex2jar.ir.TypeClass.merge(TypeClass.java:100)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeRef.updateTypeClass(TypeTransformer.java:174)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.provideAs(TypeTransformer.java:780)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.e1expr(TypeTransformer.java:496)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:713)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.s1stmt(TypeTransformer.java:810)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.sxStmt(TypeTransformer.java:840)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.analyze(TypeTransformer.java:206)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer.transform(TypeTransformer.java:44)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:162)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:414)\r\n\tat com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:42)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:128)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:509)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:406)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:422)\r\n\tat com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:172)\r\n\tat com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:272)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:108)\r\n\tat com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)\r\n"); + } + + public static final class a implements Parcelable.Creator { + private a() {} + } + } + + public static final class a implements Parcelable.Creator { + private a() {} + } + + public static final class RequestTask implements Parcelable { + public static final b CREATOR = new b(null); + + public final int a; + + public final String b; + + public final String c; + + public final boolean d; + + public final String e; + + public final byte[] f; + + public final JSONObject g; + + public final String h; + + public final boolean i; + + public final Map j; + + public final boolean k; + + public final boolean l; + + public RequestTask(int param1Int, String param1String1, String param1String2, boolean param1Boolean1, String param1String3, byte[] param1ArrayOfbyte, JSONObject param1JSONObject, String param1String4, boolean param1Boolean2, Map param1Map, boolean param1Boolean3, boolean param1Boolean4) { + this.a = param1Int; + this.b = param1String1; + this.c = param1String2; + this.d = param1Boolean1; + this.e = param1String3; + this.f = param1ArrayOfbyte; + this.g = param1JSONObject; + this.h = param1String4; + this.i = param1Boolean2; + this.j = (Map)param1Map; + this.k = param1Boolean3; + this.l = param1Boolean4; + } + + public RequestTask(Parcel param1Parcel) { + this(i, str1, str2, bool1, str3, arrayOfByte, jSONObject, str4, bool2, null, bool3, bool4); + } + + public final int describeContents() { + return 0; + } + + public final String toString() { + StringBuilder stringBuilder = new StringBuilder("{requestId: "); + stringBuilder.append(this.a); + stringBuilder.append(", url: "); + stringBuilder.append(this.b); + stringBuilder.append(", method: "); + stringBuilder.append(this.c); + stringBuilder.append(", usePrefetchCache: "); + stringBuilder.append(this.d); + stringBuilder.append(", data: "); + stringBuilder.append(this.e); + stringBuilder.append(", header: "); + stringBuilder.append(this.g); + stringBuilder.append(", responseType: "); + stringBuilder.append(this.h); + stringBuilder.append(", isSDKRequest: "); + stringBuilder.append(this.i); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + + public final void writeToParcel(Parcel param1Parcel, int param1Int) { + throw new RuntimeException("d2j fail translate: java.lang.RuntimeException: can not merge I and Z\r\n\tat com.googlecode.dex2jar.ir.TypeClass.merge(TypeClass.java:100)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeRef.updateTypeClass(TypeTransformer.java:174)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.provideAs(TypeTransformer.java:780)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.e1expr(TypeTransformer.java:496)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:713)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.s1stmt(TypeTransformer.java:810)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.sxStmt(TypeTransformer.java:840)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.analyze(TypeTransformer.java:206)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer.transform(TypeTransformer.java:44)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:162)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:414)\r\n\tat com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:42)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:128)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:509)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:406)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:422)\r\n\tat com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:172)\r\n\tat com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:272)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:108)\r\n\tat com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)\r\n"); + } + + public static final class a { + public static final a h = new a(null); + + public boolean a; + + public int b; + + public Map c; + + public boolean d; + + public boolean e; + + public final String f; + + public final String g; + + private boolean i; + + private String j; + + private String k; + + private byte[] l; + + private JSONObject m; + + public a(String param2String1, String param2String2) { + this.f = param2String1; + this.g = param2String2; + } + + public final a a(String param2String) { + this.j = param2String; + return this; + } + + public final a a(JSONObject param2JSONObject) { + this.m = param2JSONObject; + return this; + } + + public final a a(boolean param2Boolean) { + this.i = param2Boolean; + return this; + } + + public final a a(byte[] param2ArrayOfbyte) { + this.l = param2ArrayOfbyte; + return this; + } + + public final HttpRequest.RequestTask a() { + return new HttpRequest.RequestTask(this.b, this.f, this.g, this.a, this.k, this.l, this.m, this.j, this.i, this.c, this.d, this.e); + } + + public final a b(String param2String) { + this.k = param2String; + return this; + } + + public static final class a { + private a() {} + + public static HttpRequest.RequestTask.a a(String param3String1, String param3String2) { + l.b(param3String1, "url"); + l.b(param3String2, "method"); + return new HttpRequest.RequestTask.a(param3String1, param3String2); + } + } + } + + public static final class a { + private a() {} + + public static HttpRequest.RequestTask.a a(String param2String1, String param2String2) { + l.b(param2String1, "url"); + l.b(param2String2, "method"); + return new HttpRequest.RequestTask.a(param2String1, param2String2); + } + } + + public static final class b implements Parcelable.Creator { + private b() {} + } + } + + public static final class a { + public static final a h = new a(null); + + public boolean a; + + public int b; + + public Map c; + + public boolean d; + + public boolean e; + + public final String f; + + public final String g; + + private boolean i; + + private String j; + + private String k; + + private byte[] l; + + private JSONObject m; + + public a(String param1String1, String param1String2) { + this.f = param1String1; + this.g = param1String2; + } + + public final a a(String param1String) { + this.j = param1String; + return this; + } + + public final a a(JSONObject param1JSONObject) { + this.m = param1JSONObject; + return this; + } + + public final a a(boolean param1Boolean) { + this.i = param1Boolean; + return this; + } + + public final a a(byte[] param1ArrayOfbyte) { + this.l = param1ArrayOfbyte; + return this; + } + + public final HttpRequest.RequestTask a() { + return new HttpRequest.RequestTask(this.b, this.f, this.g, this.a, this.k, this.l, this.m, this.j, this.i, this.c, this.d, this.e); + } + + public final a b(String param1String) { + this.k = param1String; + return this; + } + + public static final class a { + private a() {} + + public static HttpRequest.RequestTask.a a(String param3String1, String param3String2) { + l.b(param3String1, "url"); + l.b(param3String2, "method"); + return new HttpRequest.RequestTask.a(param3String1, param3String2); + } + } + } + + public static final class a { + private a() {} + + public static HttpRequest.RequestTask.a a(String param1String1, String param1String2) { + l.b(param1String1, "url"); + l.b(param1String2, "method"); + return new HttpRequest.RequestTask.a(param1String1, param1String2); + } + } + + public static final class b implements Parcelable.Creator { + private b() {} + } + + public static interface a { + void onRequestAbort(HttpRequest.RequestTask param1RequestTask); + + void onRequestFinish(HttpRequest.RequestResult param1RequestResult); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\request\entity\HttpRequest.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/entity/a.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/entity/a.java new file mode 100644 index 0000000..c4e1035 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/entity/a.java @@ -0,0 +1,108 @@ +package com.bytedance.sandboxapp.protocol.service.request.entity; + +import org.json.JSONObject; + +public final class a { + public static interface a { + void a(a.b param1b); + + void a(a.c param1c); + } + + public static final class b { + public boolean a; + + public int b; + + public int c; + + public String d; + + public String e; + + public String f; + + public Throwable g; + + public final String toString() { + StringBuilder stringBuilder = new StringBuilder("{success: "); + stringBuilder.append(this.a); + stringBuilder.append(", downloadTaskId: "); + stringBuilder.append(this.b); + stringBuilder.append(", statusCode: "); + stringBuilder.append(this.c); + stringBuilder.append(", filePath: "); + stringBuilder.append(this.d); + stringBuilder.append(", tempFilePath: "); + stringBuilder.append(this.e); + stringBuilder.append(", message: "); + stringBuilder.append(this.f); + stringBuilder.append(", failThrowable: "); + stringBuilder.append(this.g); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + } + + public static final class c { + public int a; + + public int b; + + public long c; + + public long d; + + public final String toString() { + StringBuilder stringBuilder = new StringBuilder("{downloadTaskId: "); + stringBuilder.append(this.a); + stringBuilder.append(", progress: "); + stringBuilder.append(this.b); + stringBuilder.append(", totalBytesWritten: "); + stringBuilder.append(this.c); + stringBuilder.append(", totalBytesExpectedToWrite: "); + stringBuilder.append(this.d); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + } + + public static final class d { + public final int a; + + public final String b; + + public final JSONObject c; + + public final String d; + + public final boolean e; + + public d(int param1Int, String param1String1, JSONObject param1JSONObject, String param1String2, boolean param1Boolean) { + this.a = param1Int; + this.b = param1String1; + this.c = param1JSONObject; + this.d = param1String2; + this.e = param1Boolean; + } + + public final String toString() { + StringBuilder stringBuilder = new StringBuilder("{downloadTaskId: "); + stringBuilder.append(this.a); + stringBuilder.append(", url: "); + stringBuilder.append(this.b); + stringBuilder.append(", header: "); + stringBuilder.append(this.c); + stringBuilder.append(", filePath: "); + stringBuilder.append(this.d); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\request\entity\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/entity/b.java b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/entity/b.java new file mode 100644 index 0000000..66530c2 --- /dev/null +++ b/df_miniapp/classes/com/bytedance/sandboxapp/protocol/service/request/entity/b.java @@ -0,0 +1,114 @@ +package com.bytedance.sandboxapp.protocol.service.request.entity; + +import org.json.JSONObject; + +public final class b { + public static interface a { + void a(b.b param1b); + + void a(b.c param1c); + } + + public static final class b { + public boolean a; + + public int b; + + public int c; + + public String d; + + public String e; + + public Throwable f; + + public final String toString() { + StringBuilder stringBuilder = new StringBuilder("{success: "); + stringBuilder.append(this.a); + stringBuilder.append(", uploadTaskId: "); + stringBuilder.append(this.b); + stringBuilder.append(", statusCode: "); + stringBuilder.append(this.c); + stringBuilder.append(", data: "); + stringBuilder.append(this.d); + stringBuilder.append(", message: "); + stringBuilder.append(this.e); + stringBuilder.append(", failThrowable: "); + stringBuilder.append(this.f); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + } + + public static final class c { + public int a; + + public int b; + + public long c; + + public long d; + + public final String toString() { + StringBuilder stringBuilder = new StringBuilder("{uploadTaskId: "); + stringBuilder.append(this.a); + stringBuilder.append(", progress: "); + stringBuilder.append(this.b); + stringBuilder.append(", totalBytesSent: "); + stringBuilder.append(this.c); + stringBuilder.append(", totalBytesExpectedToSend: "); + stringBuilder.append(this.d); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + } + + public static final class d { + public int a; + + public String b; + + public JSONObject c; + + public final String d; + + public final String e; + + public final JSONObject f; + + public final boolean g; + + public d(int param1Int, String param1String1, JSONObject param1JSONObject1, String param1String2, String param1String3, JSONObject param1JSONObject2, boolean param1Boolean) { + this.a = param1Int; + this.b = param1String1; + this.c = param1JSONObject1; + this.d = param1String2; + this.e = param1String3; + this.f = param1JSONObject2; + this.g = param1Boolean; + } + + public final String toString() { + StringBuilder stringBuilder = new StringBuilder("{uploadTaskId: "); + stringBuilder.append(this.a); + stringBuilder.append(", url: "); + stringBuilder.append(this.b); + stringBuilder.append(", header: "); + stringBuilder.append(this.c); + stringBuilder.append(", filePath: "); + stringBuilder.append(this.d); + stringBuilder.append(", name: "); + stringBuilder.append(this.e); + stringBuilder.append(", formData: "); + stringBuilder.append(this.f); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\bytedance\sandboxapp\protocol\service\request\entity\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/JsRunLoop.java b/df_miniapp/classes/com/he/JsRunLoop.java new file mode 100644 index 0000000..7f36d41 --- /dev/null +++ b/df_miniapp/classes/com/he/JsRunLoop.java @@ -0,0 +1,231 @@ +package com.he; + +import android.os.Handler; +import android.os.Looper; +import android.os.Message; +import com.he.jsbinding.JsContext; +import com.he.jsbinding.JsScopedContext; +import java.util.concurrent.atomic.AtomicInteger; + +public final class JsRunLoop extends Thread { + private static final Delegate delegate = new Delegate(); + + private static final AtomicInteger thread_id = new AtomicInteger(0); + + private Handler handler; + + private JsContext mJsContext; + + private Runnable posted_task; + + private SetupCallback setupCallback; + + private RuntimeException thrown; + + public JsRunLoop() { + super(stringBuilder.toString()); + } + + public final Handler getHandler() { + // Byte code: + // 0: aload_0 + // 1: getfield handler : Landroid/os/Handler; + // 4: astore_1 + // 5: aload_1 + // 6: ifnull -> 11 + // 9: aload_1 + // 10: areturn + // 11: aload_0 + // 12: monitorenter + // 13: aload_0 + // 14: getfield handler : Landroid/os/Handler; + // 17: ifnonnull -> 41 + // 20: aload_0 + // 21: getfield thrown : Ljava/lang/RuntimeException; + // 24: astore_1 + // 25: aload_1 + // 26: ifnonnull -> 36 + // 29: aload_0 + // 30: invokevirtual wait : ()V + // 33: goto -> 13 + // 36: aload_0 + // 37: getfield thrown : Ljava/lang/RuntimeException; + // 40: athrow + // 41: aload_0 + // 42: monitorexit + // 43: aload_0 + // 44: getfield handler : Landroid/os/Handler; + // 47: areturn + // 48: astore_1 + // 49: aload_0 + // 50: monitorexit + // 51: goto -> 56 + // 54: aload_1 + // 55: athrow + // 56: goto -> 54 + // 59: astore_1 + // 60: goto -> 13 + // Exception table: + // from to target type + // 13 25 48 finally + // 29 33 59 java/lang/InterruptedException + // 29 33 48 finally + // 36 41 48 finally + // 41 43 48 finally + // 49 51 48 finally + } + + public final JsContext getJsContext() { + return this.mJsContext; + } + + public final void post(Runnable paramRunnable) { + synchronized (delegate) { + if (this.setupCallback == null) { + this.posted_task = paramRunnable; + delegate.notify(); + return; + } + getHandler().post(paramRunnable); + return; + } + } + + public final void quit() { + this.handler.getLooper().quitSafely(); + } + + public final void run() { + // Byte code: + // 0: new com/he/jsbinding/JsContext + // 3: dup + // 4: new com/he/jsbinding/JsEngine + // 7: dup + // 8: invokespecial : ()V + // 11: invokespecial : (Lcom/he/jsbinding/JsEngine;)V + // 14: astore_2 + // 15: aload_0 + // 16: aload_2 + // 17: putfield mJsContext : Lcom/he/jsbinding/JsContext; + // 20: invokestatic prepare : ()V + // 23: aload_0 + // 24: new android/os/Handler + // 27: dup + // 28: getstatic com/he/JsRunLoop.delegate : Lcom/he/JsRunLoop$Delegate; + // 31: invokespecial : (Landroid/os/Handler$Callback;)V + // 34: putfield handler : Landroid/os/Handler; + // 37: aload_0 + // 38: monitorenter + // 39: aload_0 + // 40: invokevirtual notifyAll : ()V + // 43: aload_0 + // 44: monitorexit + // 45: getstatic com/he/JsRunLoop.delegate : Lcom/he/JsRunLoop$Delegate; + // 48: astore_1 + // 49: aload_1 + // 50: monitorenter + // 51: aload_0 + // 52: getfield setupCallback : Lcom/he/JsRunLoop$SetupCallback; + // 55: ifnonnull -> 88 + // 58: aload_0 + // 59: getfield posted_task : Ljava/lang/Runnable; + // 62: ifnull -> 79 + // 65: aload_0 + // 66: getfield posted_task : Ljava/lang/Runnable; + // 69: invokeinterface run : ()V + // 74: aload_0 + // 75: aconst_null + // 76: putfield posted_task : Ljava/lang/Runnable; + // 79: getstatic com/he/JsRunLoop.delegate : Lcom/he/JsRunLoop$Delegate; + // 82: invokevirtual wait : ()V + // 85: goto -> 51 + // 88: aload_1 + // 89: monitorexit + // 90: aload_2 + // 91: aload_0 + // 92: getfield setupCallback : Lcom/he/JsRunLoop$SetupCallback; + // 95: invokevirtual run : (Lcom/he/jsbinding/JsContext$ScopeCallback;)V + // 98: aload_2 + // 99: getstatic com/he/JsRunLoop.delegate : Lcom/he/JsRunLoop$Delegate; + // 102: invokevirtual run : (Lcom/he/jsbinding/JsContext$ScopeCallback;)V + // 105: aload_0 + // 106: getfield setupCallback : Lcom/he/JsRunLoop$SetupCallback; + // 109: invokeinterface cleanup : ()V + // 114: aload_2 + // 115: invokevirtual getEngine : ()Lcom/he/jsbinding/JsEngine; + // 118: invokevirtual dispose : ()V + // 121: return + // 122: astore_2 + // 123: aload_1 + // 124: monitorexit + // 125: aload_2 + // 126: athrow + // 127: astore_1 + // 128: aload_0 + // 129: monitorexit + // 130: aload_1 + // 131: athrow + // 132: astore_1 + // 133: aload_0 + // 134: aload_1 + // 135: putfield thrown : Ljava/lang/RuntimeException; + // 138: aload_0 + // 139: monitorenter + // 140: aload_0 + // 141: invokevirtual notifyAll : ()V + // 144: aload_0 + // 145: monitorexit + // 146: return + // 147: astore_1 + // 148: aload_0 + // 149: monitorexit + // 150: goto -> 155 + // 153: aload_1 + // 154: athrow + // 155: goto -> 153 + // 158: astore_3 + // 159: goto -> 51 + // Exception table: + // from to target type + // 0 20 132 java/lang/RuntimeException + // 39 45 127 finally + // 51 79 122 finally + // 79 85 158 java/lang/InterruptedException + // 79 85 122 finally + // 88 90 122 finally + // 123 125 122 finally + // 128 130 127 finally + // 140 146 147 finally + // 148 150 147 finally + } + + public final void setup(SetupCallback paramSetupCallback) { + this.setupCallback = paramSetupCallback; + synchronized (delegate) { + delegate.notify(); + return; + } + } + + static class Delegate implements Handler.Callback, JsContext.ScopeCallback { + private Delegate() {} + + public boolean handleMessage(Message param1Message) { + return false; + } + + public void run(JsScopedContext param1JsScopedContext) { + Looper.loop(); + } + } + + public static interface SetupCallback extends JsContext.ScopeCallback { + void cleanup(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\JsRunLoop.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/Monitor.java b/df_miniapp/classes/com/he/Monitor.java new file mode 100644 index 0000000..12f1d78 --- /dev/null +++ b/df_miniapp/classes/com/he/Monitor.java @@ -0,0 +1,104 @@ +package com.he; + +import com.he.loader.Log; + +public final class Monitor { + public static Impl impl = new Impl() { + public final void onAsyncCompile(int param1Int1, int param1Int2, int param1Int3) { + StringBuilder stringBuilder = new StringBuilder("onAsyncCompile:"); + stringBuilder.append(param1Int1); + stringBuilder.append(", duration:"); + stringBuilder.append(param1Int2); + stringBuilder.append(" cache_size:"); + stringBuilder.append(param1Int3); + Log.d("helium-monitor", new Object[] { stringBuilder.toString() }); + } + + public final void onAurumInitFail(int param1Int1, int param1Int2) { + StringBuilder stringBuilder = new StringBuilder("onAurumInitFail:"); + stringBuilder.append(param1Int1); + stringBuilder.append(", result:"); + stringBuilder.append(param1Int2); + Log.e("helium-monitor", new Object[] { stringBuilder.toString() }); + } + + public final void onCameraOpenFail(int param1Int1, int param1Int2, Throwable param1Throwable) { + StringBuilder stringBuilder = new StringBuilder("onCameraOpenFail:"); + stringBuilder.append(param1Int1); + stringBuilder.append(", retries:"); + stringBuilder.append(param1Int2); + Log.eWithThrowable("helium-monitor", stringBuilder.toString(), param1Throwable); + } + + public final void onHeliumAddViewFail() { + Log.e("helium-monitor", new Object[] { "onHeliumAddViewFail" }); + } + + public final void onHeliumSetupFail() { + Log.e("helium-monitor", new Object[] { "onHeliumSetupFail" }); + } + + public final void onLoadEffectFail(Throwable param1Throwable) { + Log.eWithThrowable("helium-monitor", "onLoadEffectFail", param1Throwable); + } + + public final void onRTCLogReport(String param1String1, String param1String2) { + StringBuilder stringBuilder = new StringBuilder("onRTCLogReport"); + stringBuilder.append(param1String1); + stringBuilder.append(param1String2); + Log.d("helium-monitor", new Object[] { stringBuilder.toString() }); + } + + public final void onSmashModelDownloadFail(String param1String, int param1Int, long param1Long, Throwable param1Throwable) { + StringBuilder stringBuilder = new StringBuilder("onSmashModelDownload:"); + stringBuilder.append(param1String); + stringBuilder.append(", status:"); + stringBuilder.append(param1Int); + stringBuilder.append(", duration:"); + stringBuilder.append(param1Long); + Log.eWithThrowable("helium-monitor", stringBuilder.toString(), param1Throwable); + } + + public final void onSmashModelDownloadSuccess(String param1String, long param1Long) { + StringBuilder stringBuilder = new StringBuilder("onSmashModelDownload:"); + stringBuilder.append(param1String); + stringBuilder.append(", duration:"); + stringBuilder.append(param1Long); + Log.d("helium-monitor", new Object[] { stringBuilder.toString() }); + } + + public final void onSmashModelMapFail(String param1String, Throwable param1Throwable) { + StringBuilder stringBuilder = new StringBuilder("onSmashModelMap:"); + stringBuilder.append(param1String); + Log.eWithThrowable("helium-monitor", stringBuilder.toString(), param1Throwable); + } + }; + + public static interface Impl { + void onAsyncCompile(int param1Int1, int param1Int2, int param1Int3); + + void onAurumInitFail(int param1Int1, int param1Int2); + + void onCameraOpenFail(int param1Int1, int param1Int2, Throwable param1Throwable); + + void onHeliumAddViewFail(); + + void onHeliumSetupFail(); + + void onLoadEffectFail(Throwable param1Throwable); + + void onRTCLogReport(String param1String1, String param1String2); + + void onSmashModelDownloadFail(String param1String, int param1Int, long param1Long, Throwable param1Throwable); + + void onSmashModelDownloadSuccess(String param1String, long param1Long); + + void onSmashModelMapFail(String param1String, Throwable param1Throwable); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\Monitor.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/SettingsProvider.java b/df_miniapp/classes/com/he/SettingsProvider.java new file mode 100644 index 0000000..a1dd05f --- /dev/null +++ b/df_miniapp/classes/com/he/SettingsProvider.java @@ -0,0 +1,17 @@ +package com.he; + +import android.content.Context; + +public interface SettingsProvider { + int getSetting(Context paramContext, Enum paramEnum, int paramInt); + + String getSetting(Context paramContext, Enum paramEnum, String paramString); + + boolean getSetting(Context paramContext, Enum paramEnum, boolean paramBoolean); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\SettingsProvider.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/jsbinding/BuildConfig.java b/df_miniapp/classes/com/he/jsbinding/BuildConfig.java new file mode 100644 index 0000000..543db2a --- /dev/null +++ b/df_miniapp/classes/com/he/jsbinding/BuildConfig.java @@ -0,0 +1,16 @@ +package com.he.jsbinding; + +public final class BuildConfig { + @Deprecated + public static final String APPLICATION_ID = "com.he.jsbinding"; + + public static final int VERSION_CODE = 3040090; + + public static final String VERSION_NAME = "3.4.0"; +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\jsbinding\BuildConfig.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/jsbinding/JsContext.java b/df_miniapp/classes/com/he/jsbinding/JsContext.java new file mode 100644 index 0000000..60747ca --- /dev/null +++ b/df_miniapp/classes/com/he/jsbinding/JsContext.java @@ -0,0 +1,203 @@ +package com.he.jsbinding; + +import java.lang.reflect.Method; +import java.nio.ByteBuffer; + +public class JsContext { + protected final int id; + + protected final boolean scoped; + + protected final long vm; + + JsContext(long paramLong, int paramInt) { + boolean bool; + if (getClass() == JsScopedContext.class) { + bool = true; + } else { + bool = false; + } + this.scoped = bool; + this.vm = paramLong; + this.id = paramInt; + } + + public JsContext(JsEngine paramJsEngine) { + boolean bool; + if (getClass() == JsScopedContext.class) { + bool = true; + } else { + bool = false; + } + this.scoped = bool; + this.vm = paramJsEngine.vm; + this.id = JsEngine.createContext(this.vm); + } + + private static byte getTypeCode(Class paramClass) { + if (paramClass == void.class) + return 118; + if (paramClass == boolean.class) + return 122; + if (paramClass == byte.class) + return 98; + if (paramClass == char.class) + return 99; + if (paramClass == short.class) + return 115; + if (paramClass == int.class) + return 105; + if (paramClass == float.class) + return 102; + if (paramClass == double.class) + return 100; + if (paramClass == long.class) + return 106; + if (paramClass == String.class) + return 36; + if (paramClass == ByteBuffer.class) + return 66; + if (paramClass == JsObject.class) + return 79; + if (paramClass == JsScopedContext.class) + return 64; + StringBuilder stringBuilder = new StringBuilder("unsupported type "); + stringBuilder.append(paramClass.getCanonicalName()); + throw new RuntimeException(stringBuilder.toString()); + } + + public int compile(byte[] paramArrayOfbyte, String paramString, boolean paramBoolean) { + return JsEngine.compileBytes(this.vm, this.id, paramArrayOfbyte, paramString, paramBoolean); + } + + public JsObject createArray(int paramInt) { + long l = this.vm; + int i = this.id; + return new JsObject(l, i, JsEngine.createArray(l, i, paramInt)); + } + + public JsObject createArrayBuffer(int paramInt) { + long l = this.vm; + int i = this.id; + return new JsObject(l, i, JsEngine.createArrayBuffer(l, i, paramInt)); + } + + public JsObject createFunction(JsFunctionCallback paramJsFunctionCallback) { + long l = this.vm; + int i = this.id; + return new JsObject(l, i, JsEngine.createFunction(l, i, paramJsFunctionCallback)); + } + + public JsObject createFunction(Object paramObject, String paramString, Class... paramVarArgs) throws NoSuchMethodException { + if (paramVarArgs.length <= 8) { + Method method = paramObject.getClass().getMethod(paramString, paramVarArgs); + int i = 0; + long l1 = 0L; + while (i < paramVarArgs.length) { + l1 |= getTypeCode(paramVarArgs[i]) << i << 3; + i++; + } + long l2 = this.vm; + i = this.id; + return new JsObject(l2, i, JsEngine.newMethodWrap(l2, i, paramObject, method, l1, getTypeCode(method.getReturnType()))); + } + paramObject = new RuntimeException("we only support methods with no more than 8 arguments"); + throw paramObject; + } + + public JsObject createFunction(Object paramObject, Method paramMethod) { + Class[] arrayOfClass = paramMethod.getParameterTypes(); + if (arrayOfClass.length <= 8) { + int i = 0; + long l1 = 0L; + while (i < arrayOfClass.length) { + l1 |= getTypeCode(arrayOfClass[i]) << i << 3; + i++; + } + long l2 = this.vm; + i = this.id; + return new JsObject(l2, i, JsEngine.newMethodWrap(l2, i, paramObject, paramMethod, l1, getTypeCode(paramMethod.getReturnType()))); + } + paramObject = new RuntimeException("we only support methods with no more than 8 arguments"); + throw paramObject; + } + + public JsObject createObject() { + long l = this.vm; + int i = this.id; + return new JsObject(l, i, JsEngine.createObject(l, i)); + } + + public JsObject deserialize(ByteBuffer paramByteBuffer) { + int i = JsEngine.deserialize(this.vm, this.id, paramByteBuffer); + if (i != -1) + return new JsObject(this.vm, this.id, i); + throw new RuntimeException("wrong buffer format"); + } + + public void eval(String paramString1, String paramString2) { + if (paramString1 != null) { + JsEngine.eval(this.vm, this.id, paramString1, paramString2, this.scoped); + return; + } + throw new NullPointerException("code is null"); + } + + public void eval(ByteBuffer paramByteBuffer, String paramString) { + if (paramByteBuffer != null) { + JsEngine.evalByteBuffer(this.vm, this.id, paramByteBuffer, paramString, this.scoped); + return; + } + throw new NullPointerException("code is null"); + } + + public void eval(byte[] paramArrayOfbyte, String paramString) { + if (paramArrayOfbyte != null) { + JsEngine.evalBytes(this.vm, this.id, paramArrayOfbyte, paramString, this.scoped); + return; + } + throw new NullPointerException("code is null"); + } + + public void execute(int paramInt, boolean paramBoolean) { + JsEngine.executeScript(this.vm, this.id, paramInt, this.scoped, paramBoolean); + } + + public final JsEngine getEngine() { + return new JsEngine(this.vm); + } + + public final JsObject global() { + long l = this.vm; + int i = this.id; + return new JsObject(l, i, JsEngine.getGlobal(l, i)); + } + + public void release() { + JsEngine.releaseContext(this.vm, this.id); + } + + public void releaseCompiledScript(int paramInt) { + JsEngine.releaseScript(this.vm, this.id, paramInt); + } + + public JsObject retain(JsObject paramJsObject) { + long l = this.vm; + int i = this.id; + return new JsObject(l, i, JsEngine.retain(l, i, paramJsObject.ctx_id, paramJsObject.id)); + } + + public void run(ScopeCallback paramScopeCallback) { + JsEngine.run(this.vm, this.id, paramScopeCallback); + } + + public static interface ScopeCallback { + void run(JsScopedContext param1JsScopedContext); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\jsbinding\JsContext.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/jsbinding/JsEngine.java b/df_miniapp/classes/com/he/jsbinding/JsEngine.java new file mode 100644 index 0000000..1186a61 --- /dev/null +++ b/df_miniapp/classes/com/he/jsbinding/JsEngine.java @@ -0,0 +1,310 @@ +package com.he.jsbinding; + +import com.google.c.a.a.a.a.a; +import java.lang.reflect.Method; +import java.nio.ByteBuffer; + +public class JsEngine { + private static RuntimeException pending_exception; + + public static volatile Type type = Type.Unknown; + + final long vm; + + public JsEngine() { + loadLibs(); + if (type != Type.Unknown) { + this.vm = createVM(); + return; + } + throw pending_exception; + } + + JsEngine(long paramLong) { + this.vm = paramLong; + } + + private static void addPendingException(Throwable paramThrowable) { + if (pending_exception == null) + pending_exception = new RuntimeException("failed to create js engine"); + a.a(pending_exception, paramThrowable); + } + + static native void callObject(int paramInt1, int paramInt2, int paramInt3); + + static native void callObjectMethod(int paramInt1, int paramInt2, String paramString, int paramInt3); + + static native int compileBytes(long paramLong, int paramInt, byte[] paramArrayOfbyte, String paramString, boolean paramBoolean); + + static native int createArray(long paramLong, int paramInt1, int paramInt2); + + static native int createArrayBuffer(long paramLong, int paramInt1, int paramInt2); + + static native int createContext(long paramLong); + + static native int createFunction(long paramLong, int paramInt, JsFunctionCallback paramJsFunctionCallback); + + static native int createObject(long paramLong, int paramInt); + + private static native long createVM(); + + static native int deserialize(long paramLong, int paramInt, ByteBuffer paramByteBuffer); + + static native void disposeVM(long paramLong); + + static native void eval(long paramLong, int paramInt, String paramString1, String paramString2, boolean paramBoolean); + + static native void evalByteBuffer(long paramLong, int paramInt, ByteBuffer paramByteBuffer, String paramString, boolean paramBoolean); + + static native void evalBytes(long paramLong, int paramInt, byte[] paramArrayOfbyte, String paramString, boolean paramBoolean); + + static native void executeScript(long paramLong, int paramInt1, int paramInt2, boolean paramBoolean1, boolean paramBoolean2); + + static native void getArrayField(int paramInt1, int paramInt2, int paramInt3); + + static native int getArrayLength(long paramLong, int paramInt1, int paramInt2); + + static native boolean getBooleanParam(long paramLong, int paramInt); + + static native boolean getBooleanResult(); + + static native int getGlobal(long paramLong, int paramInt); + + static native int getIntParam(long paramLong, int paramInt); + + static native int getIntResult(int paramInt); + + static native double getNumberParam(long paramLong, int paramInt); + + static native double getNumberResult(int paramInt); + + static native int getObjectParam(long paramLong, int paramInt1, int paramInt2); + + static native void getObjectProp(int paramInt1, int paramInt2, String paramString); + + static native int getObjectResult(int paramInt); + + static native String getStringParam(long paramLong, int paramInt); + + static native String getStringResult(int paramInt); + + private static void loadLibs() { + // Byte code: + // 0: ldc com/he/jsbinding/JsEngine + // 2: monitorenter + // 3: getstatic com/he/jsbinding/JsEngine.type : Lcom/he/jsbinding/JsEngine$Type; + // 6: astore_0 + // 7: getstatic com/he/jsbinding/JsEngine$Type.Unknown : Lcom/he/jsbinding/JsEngine$Type; + // 10: astore_1 + // 11: aload_0 + // 12: aload_1 + // 13: if_acmpeq -> 20 + // 16: ldc com/he/jsbinding/JsEngine + // 18: monitorexit + // 19: return + // 20: aconst_null + // 21: putstatic com/he/jsbinding/JsEngine.pending_exception : Ljava/lang/RuntimeException; + // 24: ldc 'c++_shared' + // 26: invokestatic load : (Ljava/lang/String;)V + // 29: goto -> 45 + // 32: astore_0 + // 33: ldc 'jsbinding' + // 35: ldc 'library for c++_shared not loaded' + // 37: aload_0 + // 38: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 41: aload_0 + // 42: invokestatic addPendingException : (Ljava/lang/Throwable;)V + // 45: ldc 'v8_libbase.cr' + // 47: invokestatic load : (Ljava/lang/String;)V + // 50: ldc 'v8_libplatform.cr' + // 52: invokestatic load : (Ljava/lang/String;)V + // 55: ldc 'v8.cr' + // 57: invokestatic load : (Ljava/lang/String;)V + // 60: ldc 'skialite' + // 62: invokestatic load : (Ljava/lang/String;)V + // 65: goto -> 81 + // 68: astore_0 + // 69: ldc 'jsbinding' + // 71: ldc 'load skialite failed' + // 73: aload_0 + // 74: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 77: aload_0 + // 78: invokestatic addPendingException : (Ljava/lang/Throwable;)V + // 81: ldc 'helium' + // 83: invokestatic load : (Ljava/lang/String;)V + // 86: getstatic com/he/jsbinding/JsEngine$Type.V8 : Lcom/he/jsbinding/JsEngine$Type; + // 89: putstatic com/he/jsbinding/JsEngine.type : Lcom/he/jsbinding/JsEngine$Type; + // 92: ldc 'jsbinding' + // 94: iconst_1 + // 95: anewarray java/lang/Object + // 98: dup + // 99: iconst_0 + // 100: ldc 'using V8' + // 102: aastore + // 103: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 106: ldc com/he/jsbinding/JsEngine + // 108: monitorexit + // 109: return + // 110: astore_0 + // 111: ldc 'jsbinding' + // 113: ldc 'load V8 failed' + // 115: aload_0 + // 116: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 119: aload_0 + // 120: invokestatic addPendingException : (Ljava/lang/Throwable;)V + // 123: ldc 'gnustl_shared' + // 125: invokestatic load : (Ljava/lang/String;)V + // 128: goto -> 144 + // 131: astore_0 + // 132: ldc 'jsbinding' + // 134: ldc 'library gnustl_shared not loaded' + // 136: aload_0 + // 137: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 140: aload_0 + // 141: invokestatic addPendingException : (Ljava/lang/Throwable;)V + // 144: ldc 'jsc' + // 146: invokestatic load : (Ljava/lang/String;)V + // 149: ldc 'jsbinding-jsc' + // 151: invokestatic load : (Ljava/lang/String;)V + // 154: getstatic com/he/jsbinding/JsEngine$Type.JSC : Lcom/he/jsbinding/JsEngine$Type; + // 157: putstatic com/he/jsbinding/JsEngine.type : Lcom/he/jsbinding/JsEngine$Type; + // 160: ldc 'jsbinding' + // 162: iconst_1 + // 163: anewarray java/lang/Object + // 166: dup + // 167: iconst_0 + // 168: ldc 'using JSC' + // 170: aastore + // 171: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 174: ldc com/he/jsbinding/JsEngine + // 176: monitorexit + // 177: return + // 178: astore_0 + // 179: ldc 'jsbinding' + // 181: ldc 'load JSC failed' + // 183: aload_0 + // 184: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 187: aload_0 + // 188: invokestatic addPendingException : (Ljava/lang/Throwable;)V + // 191: ldc 'jsbinding' + // 193: invokestatic load : (Ljava/lang/String;)V + // 196: getstatic com/he/jsbinding/JsEngine$Type.QuickJS : Lcom/he/jsbinding/JsEngine$Type; + // 199: putstatic com/he/jsbinding/JsEngine.type : Lcom/he/jsbinding/JsEngine$Type; + // 202: ldc 'jsbinding' + // 204: iconst_1 + // 205: anewarray java/lang/Object + // 208: dup + // 209: iconst_0 + // 210: ldc 'using QuickJS' + // 212: aastore + // 213: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 216: ldc com/he/jsbinding/JsEngine + // 218: monitorexit + // 219: return + // 220: astore_0 + // 221: ldc 'jsbinding' + // 223: ldc 'load QuickJS failed' + // 225: aload_0 + // 226: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 229: ldc com/he/jsbinding/JsEngine + // 231: monitorexit + // 232: return + // 233: astore_0 + // 234: ldc com/he/jsbinding/JsEngine + // 236: monitorexit + // 237: aload_0 + // 238: athrow + // Exception table: + // from to target type + // 3 11 233 finally + // 20 24 233 finally + // 24 29 32 finally + // 33 45 233 finally + // 45 60 110 finally + // 60 65 68 finally + // 69 81 110 finally + // 81 106 110 finally + // 111 123 233 finally + // 123 128 131 finally + // 132 144 233 finally + // 144 174 178 finally + // 179 191 233 finally + // 191 216 220 finally + // 221 229 233 finally + } + + static native int makeArray(int paramInt1, int paramInt2); + + static native ByteBuffer makeDirectBuffer(long paramLong, int paramInt1, int paramInt2); + + private static void nativeOnInvoke(JsFunctionCallback paramJsFunctionCallback, long paramLong1, int paramInt1, long paramLong2, int paramInt2) { + paramJsFunctionCallback.onCall(new JsFunctionContext(paramLong1, paramInt1, paramLong2, paramInt2)); + } + + private static void nativeOnRun(JsContext.ScopeCallback paramScopeCallback, long paramLong, int paramInt) { + paramScopeCallback.run(new JsScopedContext(paramLong, paramInt)); + } + + static native int newMethodWrap(long paramLong1, int paramInt, Object paramObject, Method paramMethod, long paramLong2, byte paramByte); + + static native void objectToString(int paramInt1, int paramInt2); + + static native void parseJSON(String paramString); + + public static native void popResult(); + + static native void pushBoolean(boolean paramBoolean); + + static native void pushDouble(double paramDouble); + + static native void pushInt(int paramInt); + + static native void pushNull(); + + static native void pushObject(int paramInt1, int paramInt2); + + static native void pushString(String paramString); + + static native void pushUndefined(); + + static native void releaseContext(long paramLong, int paramInt); + + public static native void releaseDeserializable(ByteBuffer paramByteBuffer); + + static native void releaseObject(long paramLong, int paramInt1, int paramInt2); + + static native void releaseScript(long paramLong, int paramInt1, int paramInt2); + + static native int retain(long paramLong, int paramInt1, int paramInt2, int paramInt3); + + static native void returns(long paramLong); + + static native void run(long paramLong, int paramInt, JsContext.ScopeCallback paramScopeCallback); + + public static native void runInCurrentContext(JsContext.ScopeCallback paramScopeCallback); + + static native ByteBuffer serialize(long paramLong, int paramInt1, int paramInt2); + + static native void setObjectProp(int paramInt1, int paramInt2, String paramString); + + static native String toJSON(long paramLong, int paramInt1, int paramInt2); + + public void dispose() { + disposeVM(this.vm); + } + + public enum Type { + JSC, QuickJS, Unknown, V8; + + static { + QuickJS = new Type("QuickJS", 3); + $VALUES = new Type[] { Unknown, JSC, V8, QuickJS }; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\jsbinding\JsEngine.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/jsbinding/JsFunctionCallback.java b/df_miniapp/classes/com/he/jsbinding/JsFunctionCallback.java new file mode 100644 index 0000000..06d3a3b --- /dev/null +++ b/df_miniapp/classes/com/he/jsbinding/JsFunctionCallback.java @@ -0,0 +1,11 @@ +package com.he.jsbinding; + +public interface JsFunctionCallback { + void onCall(JsFunctionContext paramJsFunctionContext); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\jsbinding\JsFunctionCallback.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/jsbinding/JsFunctionContext.java b/df_miniapp/classes/com/he/jsbinding/JsFunctionContext.java new file mode 100644 index 0000000..6fdab88 --- /dev/null +++ b/df_miniapp/classes/com/he/jsbinding/JsFunctionContext.java @@ -0,0 +1,73 @@ +package com.he.jsbinding; + +public class JsFunctionContext extends JsScopedContext { + final long info; + + public final int length; + + JsFunctionContext(long paramLong1, int paramInt1, long paramLong2, int paramInt2) { + super(paramLong1, paramInt1); + this.info = paramLong2; + this.length = paramInt2; + } + + public final boolean getBoolean(int paramInt) { + return JsEngine.getBooleanParam(this.info, paramInt); + } + + public final int getInt(int paramInt) { + return JsEngine.getIntParam(this.info, paramInt); + } + + public final double getNumber(int paramInt) { + return JsEngine.getNumberParam(this.info, paramInt); + } + + public final JsObject getObject(int paramInt) { + paramInt = JsEngine.getObjectParam(this.info, this.id, paramInt); + return (paramInt == -1) ? null : new JsObject(this.vm, this.id, paramInt); + } + + public final String getString(int paramInt) { + return JsEngine.getStringParam(this.info, paramInt); + } + + public final void returns(double paramDouble) { + JsEngine.pushDouble(paramDouble); + JsEngine.returns(this.info); + } + + public final void returns(int paramInt) { + JsEngine.pushInt(paramInt); + JsEngine.returns(this.info); + } + + public final void returns(JsObject paramJsObject) { + if (paramJsObject == null) { + JsEngine.pushNull(); + } else { + JsEngine.pushObject(paramJsObject.ctx_id, paramJsObject.id); + } + JsEngine.returns(this.info); + } + + public final void returns(String paramString) { + if (paramString == null) { + JsEngine.pushNull(); + } else { + JsEngine.pushString(paramString); + } + JsEngine.returns(this.info); + } + + public final void returns(boolean paramBoolean) { + JsEngine.pushBoolean(paramBoolean); + JsEngine.returns(this.info); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\jsbinding\JsFunctionContext.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/jsbinding/JsObject.java b/df_miniapp/classes/com/he/jsbinding/JsObject.java new file mode 100644 index 0000000..248fe35 --- /dev/null +++ b/df_miniapp/classes/com/he/jsbinding/JsObject.java @@ -0,0 +1,153 @@ +package com.he.jsbinding; + +import java.nio.ByteBuffer; + +public class JsObject { + final int ctx_id; + + final int id; + + private final long vm; + + JsObject(long paramLong, int paramInt1, int paramInt2) { + this.vm = paramLong; + this.ctx_id = paramInt1; + this.id = paramInt2; + } + + public int arrayGetLength() { + return JsEngine.getArrayLength(this.vm, this.ctx_id, this.id); + } + + public final ByteBuffer asArrayBuffer() { + return JsEngine.makeDirectBuffer(this.vm, this.ctx_id, this.id); + } + + public final void call(int paramInt) { + JsEngine.callObject(this.ctx_id, this.id, paramInt); + } + + public final void callMethod(String paramString, int paramInt) { + JsEngine.callObjectMethod(this.ctx_id, this.id, paramString, paramInt); + } + + public final boolean getBoolean(int paramInt) { + JsEngine.getArrayField(this.ctx_id, this.id, paramInt); + return JsEngine.getBooleanResult(); + } + + public final boolean getBoolean(String paramString) { + JsEngine.getObjectProp(this.ctx_id, this.id, paramString); + return JsEngine.getBooleanResult(); + } + + public final JsEngine getEngine() { + return new JsEngine(this.vm); + } + + public final int getInt(int paramInt) { + JsEngine.getArrayField(this.ctx_id, this.id, paramInt); + return JsEngine.getIntResult(this.ctx_id); + } + + public final int getInt(String paramString) { + JsEngine.getObjectProp(this.ctx_id, this.id, paramString); + return JsEngine.getIntResult(this.ctx_id); + } + + public final double getNumber(int paramInt) { + JsEngine.getArrayField(this.ctx_id, this.id, paramInt); + return JsEngine.getNumberResult(this.ctx_id); + } + + public final double getNumber(String paramString) { + JsEngine.getObjectProp(this.ctx_id, this.id, paramString); + return JsEngine.getNumberResult(this.ctx_id); + } + + public final JsObject getObject(int paramInt) { + JsEngine.getArrayField(this.ctx_id, this.id, paramInt); + return (new JsScopedContext(this.vm, this.ctx_id)).popObject(); + } + + public final JsObject getObject(String paramString) { + JsEngine.getObjectProp(this.ctx_id, this.id, paramString); + return (new JsScopedContext(this.vm, this.ctx_id)).popObject(); + } + + public JsScopedContext getScopedContext() { + return new JsScopedContext(this.vm, this.ctx_id); + } + + public final String getString(int paramInt) { + JsEngine.getArrayField(this.ctx_id, this.id, paramInt); + return JsEngine.getStringResult(this.ctx_id); + } + + public final String getString(String paramString) { + JsEngine.getObjectProp(this.ctx_id, this.id, paramString); + return JsEngine.getStringResult(this.ctx_id); + } + + public final void release() { + JsEngine.releaseObject(this.vm, this.ctx_id, this.id); + } + + public final ByteBuffer serialize() { + return JsEngine.serialize(this.vm, this.ctx_id, this.id); + } + + public final void set(String paramString) { + JsEngine.setObjectProp(this.ctx_id, this.id, paramString); + } + + public final void set(String paramString, double paramDouble) { + JsEngine.pushDouble(paramDouble); + JsEngine.setObjectProp(this.ctx_id, this.id, paramString); + } + + public final void set(String paramString, int paramInt) { + JsEngine.pushInt(paramInt); + JsEngine.setObjectProp(this.ctx_id, this.id, paramString); + } + + public final void set(String paramString, JsObject paramJsObject) { + JsEngine.pushObject(paramJsObject.ctx_id, paramJsObject.id); + JsEngine.setObjectProp(this.ctx_id, this.id, paramString); + } + + public final void set(String paramString1, String paramString2) { + JsEngine.pushString(paramString2); + JsEngine.setObjectProp(this.ctx_id, this.id, paramString1); + } + + public final void set(String paramString, boolean paramBoolean) { + JsEngine.pushBoolean(paramBoolean); + JsEngine.setObjectProp(this.ctx_id, this.id, paramString); + } + + public final void setNull(String paramString) { + JsEngine.pushNull(); + JsEngine.setObjectProp(this.ctx_id, this.id, paramString); + } + + public final void setUndefined(String paramString) { + JsEngine.pushUndefined(); + JsEngine.setObjectProp(this.ctx_id, this.id, paramString); + } + + public final String toJSON() { + return JsEngine.toJSON(this.vm, this.ctx_id, this.id); + } + + public String toString() { + JsEngine.objectToString(this.ctx_id, this.id); + return JsEngine.getStringResult(this.ctx_id); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\jsbinding\JsObject.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/jsbinding/JsScopedContext.java b/df_miniapp/classes/com/he/jsbinding/JsScopedContext.java new file mode 100644 index 0000000..35c37de --- /dev/null +++ b/df_miniapp/classes/com/he/jsbinding/JsScopedContext.java @@ -0,0 +1,80 @@ +package com.he.jsbinding; + +public class JsScopedContext extends JsContext { + JsScopedContext(long paramLong, int paramInt) { + super(paramLong, paramInt); + } + + public JsObject makeArray(int paramInt) { + return new JsObject(this.vm, this.id, JsEngine.makeArray(this.id, paramInt)); + } + + public final void pop() { + JsEngine.popResult(); + } + + public final boolean popBoolean() { + return JsEngine.getBooleanResult(); + } + + public final int popInt() { + return JsEngine.getIntResult(this.id); + } + + public final double popNumber() { + return JsEngine.getNumberResult(this.id); + } + + public final JsObject popObject() { + int i = JsEngine.getObjectResult(this.id); + if (i >= 0) + return new JsObject(this.vm, this.id, i); + throw new RuntimeException("not an object"); + } + + public final String popString() { + return JsEngine.getStringResult(this.id); + } + + public final void push(double paramDouble) { + JsEngine.pushDouble(paramDouble); + } + + public final void push(int paramInt) { + JsEngine.pushInt(paramInt); + } + + public final void push(JsObject paramJsObject) { + JsEngine.pushObject(paramJsObject.ctx_id, paramJsObject.id); + } + + public final void push(String paramString) { + JsEngine.pushString(paramString); + } + + public final void push(boolean paramBoolean) { + JsEngine.pushBoolean(paramBoolean); + } + + public final void pushJSON(String paramString) { + JsEngine.parseJSON(paramString); + } + + public final void pushNull() { + JsEngine.pushNull(); + } + + public final void pushUndefined() { + JsEngine.pushUndefined(); + } + + public void release() { + throw new RuntimeException("JsScopedContext should not be disposed"); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\jsbinding\JsScopedContext.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/loader/Library.java b/df_miniapp/classes/com/he/loader/Library.java new file mode 100644 index 0000000..0b15b54 --- /dev/null +++ b/df_miniapp/classes/com/he/loader/Library.java @@ -0,0 +1,37 @@ +package com.he.loader; + +public class Library { + private static Loader _loader; + + public static String getSoPluginDir() { + Loader loader = _loader; + return (loader == null) ? null : loader.getSoPluginDir(); + } + + public static void load(String paramString) throws Exception { + Loader loader = _loader; + if (loader != null) { + loader.load(paramString); + return; + } + _lancet.com_ss_android_ugc_aweme_lancet_launch_LoadSoLancet_loadLibrary(paramString); + } + + public static void setLoader(Loader paramLoader) { + _loader = paramLoader; + } + + public static interface Loader { + String getSoPluginDir(); + + void load(String param1String) throws Exception; + } + + class Library {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\loader\Library.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/loader/LoadScriptSample.java b/df_miniapp/classes/com/he/loader/LoadScriptSample.java new file mode 100644 index 0000000..f5f9c98 --- /dev/null +++ b/df_miniapp/classes/com/he/loader/LoadScriptSample.java @@ -0,0 +1,141 @@ +package com.he.loader; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.CharBuffer; + +public final class LoadScriptSample { + private static final long epoch_start = System.currentTimeMillis() * 1000L - System.nanoTime() / 1000L; + + public final boolean cacheAccepted; + + public final boolean cacheHit; + + public final int cacheSize; + + public final int codeSize; + + public final long compileStart; + + public final long decodeStringStart; + + public final boolean eagerCompiled; + + public final long end; + + public final long executeStart; + + public final long loadCacheStart; + + public final long loadCodeStart; + + public final String path; + + public final long start; + + public LoadScriptSample(ByteBuffer paramByteBuffer, int paramInt) { + paramByteBuffer.order(ByteOrder.LITTLE_ENDIAN); + char[] arrayOfChar = new char[paramByteBuffer.getInt(paramInt)]; + CharBuffer charBuffer = paramByteBuffer.asCharBuffer(); + charBuffer.position((paramInt >> 1) + 2); + charBuffer.get(arrayOfChar); + this.path = new String(arrayOfChar); + this.start = paramByteBuffer.getLong(paramInt + 256); + this.loadCodeStart = paramByteBuffer.getLong(paramInt + 264); + this.decodeStringStart = paramByteBuffer.getLong(paramInt + 272); + this.loadCacheStart = paramByteBuffer.getLong(paramInt + 280); + this.compileStart = paramByteBuffer.getLong(paramInt + 288); + this.executeStart = paramByteBuffer.getLong(paramInt + 296); + this.end = paramByteBuffer.getLong(paramInt + 304); + this.codeSize = paramByteBuffer.getInt(paramInt + 312); + paramInt = paramByteBuffer.getInt(paramInt + 316); + this.cacheSize = 0xFFFFFFF & paramInt; + boolean bool2 = false; + if (paramInt != 0) { + bool1 = true; + } else { + bool1 = false; + } + this.cacheHit = bool1; + if ((Integer.MIN_VALUE & paramInt) == 0) { + bool1 = true; + } else { + bool1 = false; + } + this.cacheAccepted = bool1; + boolean bool1 = bool2; + if ((paramInt & 0x40000000) != 0) + bool1 = true; + this.eagerCompiled = bool1; + } + + public static long toEpochTime(long paramLong) { + return (epoch_start + paramLong) / 1000L; + } + + public final String toString() { + String str; + StringBuilder stringBuilder = new StringBuilder("LoadScriptSample {\n path : \""); + stringBuilder.append(this.path); + stringBuilder.append("\"\n start : "); + stringBuilder.append(toEpochTime(this.start)); + stringBuilder.append('\n'); + stringBuilder.append(" load code : +"); + stringBuilder.append(this.decodeStringStart - this.loadCodeStart); + stringBuilder.append('\n'); + stringBuilder.append(" decode string : +"); + stringBuilder.append(this.loadCacheStart - this.decodeStringStart); + stringBuilder.append('\n'); + stringBuilder.append(" load cache: +"); + stringBuilder.append(this.compileStart - this.loadCacheStart); + stringBuilder.append('\n'); + stringBuilder.append(" compile : +"); + stringBuilder.append(this.executeStart - this.compileStart); + stringBuilder.append('\n'); + stringBuilder.append(" execute : +"); + stringBuilder.append(this.end - this.executeStart); + stringBuilder.append('\n'); + stringBuilder.append(" total : +"); + stringBuilder.append(this.end - this.start); + stringBuilder.append('\n'); + stringBuilder.append(" code size : "); + stringBuilder.append(this.codeSize); + stringBuilder.append('\n'); + stringBuilder.append(" cache : "); + if (this.cacheHit) { + StringBuilder stringBuilder1 = new StringBuilder(); + if (this.cacheAccepted) { + str = "accepted"; + } else { + str = "rejected"; + } + stringBuilder1.append(str); + stringBuilder1.append(", size "); + stringBuilder1.append(this.cacheSize); + stringBuilder1.append(", "); + if (this.eagerCompiled) { + str = "eager"; + } else { + str = "lazy"; + } + stringBuilder1.append(str); + stringBuilder1.append(" compiled\n"); + str = stringBuilder1.toString(); + } else { + str = "miss\n"; + } + stringBuilder.append(str); + stringBuilder.append("}"); + return stringBuilder.toString(); + } + + public static interface Callback { + void onSample(LoadScriptSample param1LoadScriptSample); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\loader\LoadScriptSample.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/loader/Loader.java b/df_miniapp/classes/com/he/loader/Loader.java new file mode 100644 index 0000000..48a4481 --- /dev/null +++ b/df_miniapp/classes/com/he/loader/Loader.java @@ -0,0 +1,19 @@ +package com.he.loader; + +import android.net.Uri; + +public interface Loader { + void load(String paramString, Resolver paramResolver); + + Uri loadMedia(String paramString); + + byte[] loadSync(String paramString); + + void loadUrl(String paramString, Resolver paramResolver); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\loader\Loader.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/loader/Log.java b/df_miniapp/classes/com/he/loader/Log.java new file mode 100644 index 0000000..16b9459 --- /dev/null +++ b/df_miniapp/classes/com/he/loader/Log.java @@ -0,0 +1,164 @@ +package com.he.loader; + +public class Log { + private static ILogger sLogger; + + private static boolean sLoggerDisable = true; + + private static boolean sShowMoreLogInfo; + + private static String createLog(Object[] paramArrayOfObject) { + if (paramArrayOfObject == null) + return "emptyLog"; + StringBuilder stringBuilder = new StringBuilder(); + if (sShowMoreLogInfo) { + byte b; + String str1; + String str2; + StackTraceElement[] arrayOfStackTraceElement = (new Throwable()).getStackTrace(); + if (arrayOfStackTraceElement.length > 2) { + str1 = arrayOfStackTraceElement[2].getFileName(); + str2 = arrayOfStackTraceElement[2].getMethodName(); + b = arrayOfStackTraceElement[2].getLineNumber(); + } else { + str2 = "unknown"; + str1 = "unknown file"; + b = -1; + } + stringBuilder.append(str2); + stringBuilder.append("("); + stringBuilder.append(str1); + stringBuilder.append(":"); + stringBuilder.append(b); + stringBuilder.append(") "); + } + int j = paramArrayOfObject.length; + for (int i = 0; i < j; i++) { + Object object = paramArrayOfObject[i]; + stringBuilder.append(" "); + if (object != null) { + stringBuilder.append(object); + } else { + stringBuilder.append("null"); + } + } + return stringBuilder.toString(); + } + + public static void d(String paramString, Object... paramVarArgs) { + if (sLoggerDisable) + return; + if (sShowMoreLogInfo) { + paramString = formatTag(paramString); + String str = createLog(paramVarArgs); + ILogger iLogger = sLogger; + if (iLogger != null) + iLogger.logD(paramString, str); + } + } + + public static void e(String paramString, Object... paramVarArgs) { + boolean bool; + if (paramVarArgs != null && paramVarArgs.length > 0 && paramVarArgs[paramVarArgs.length - 1] instanceof Throwable) { + bool = true; + } else { + bool = false; + } + if (sLoggerDisable) { + if (sShowMoreLogInfo) + createLog(paramVarArgs); + return; + } + paramString = formatTag(paramString); + String str = createLog(paramVarArgs); + if (bool) { + eWithThrowable(paramString, str, (Throwable)paramVarArgs[paramVarArgs.length - 1]); + return; + } + ILogger iLogger = sLogger; + if (iLogger != null) + iLogger.logE(paramString, str); + } + + public static void eWithThrowable(String paramString1, String paramString2, Throwable paramThrowable) { + if (sLoggerDisable) + return; + paramString1 = formatTag(paramString1); + ILogger iLogger = sLogger; + if (iLogger != null) + iLogger.logE(paramString1, paramString2, paramThrowable); + } + + public static void flush() { + ILogger iLogger = sLogger; + if (iLogger != null) + iLogger.flush(); + } + + private static String formatTag(String paramString) { + if (paramString.isEmpty()) + return "helium"; + String str = paramString; + if (!paramString.startsWith("helium_")) { + StringBuilder stringBuilder = new StringBuilder("helium_"); + stringBuilder.append(paramString); + str = stringBuilder.toString(); + } + return str; + } + + public static void i(String paramString, Object... paramVarArgs) { + if (sLoggerDisable) + return; + paramString = formatTag(paramString); + String str = createLog(paramVarArgs); + ILogger iLogger = sLogger; + if (iLogger != null) + iLogger.logI(paramString, str); + } + + public static void registerLogger(ILogger paramILogger) { + sLogger = paramILogger; + updateLoggerEnableState(); + } + + private static void updateLoggerEnableState() { + boolean bool; + if (sLogger == null) { + bool = true; + } else { + bool = false; + } + sLoggerDisable = bool; + } + + public static void w(String paramString, Object... paramVarArgs) { + if (sLoggerDisable) + return; + paramString = formatTag(paramString); + String str = createLog(paramVarArgs); + ILogger iLogger = sLogger; + if (iLogger != null) + iLogger.logW(paramString, str); + } + + public static interface ILogger { + void flush(); + + void logD(String param1String1, String param1String2); + + void logE(String param1String1, String param1String2); + + void logE(String param1String1, String param1String2, Throwable param1Throwable); + + void logI(String param1String1, String param1String2); + + void logW(String param1String1, String param1String2); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\loader\Log.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/loader/Resolver.java b/df_miniapp/classes/com/he/loader/Resolver.java new file mode 100644 index 0000000..31dd186 --- /dev/null +++ b/df_miniapp/classes/com/he/loader/Resolver.java @@ -0,0 +1,21 @@ +package com.he.loader; + +import java.io.File; +import java.io.IOException; +import java.nio.ByteBuffer; + +public interface Resolver { + void reject(IOException paramIOException); + + void resolve(File paramFile); + + void resolve(ByteBuffer paramByteBuffer); + + void resolve(byte[] paramArrayOfbyte, int paramInt1, int paramInt2); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\loader\Resolver.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/loader/Stats.java b/df_miniapp/classes/com/he/loader/Stats.java new file mode 100644 index 0000000..165264a --- /dev/null +++ b/df_miniapp/classes/com/he/loader/Stats.java @@ -0,0 +1,13 @@ +package com.he.loader; + +import java.nio.ByteBuffer; + +public class Stats { + public static native boolean getFileStatsInfo(String paramString, ByteBuffer paramByteBuffer); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\loader\Stats.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/loader/TTAppCompiler.java b/df_miniapp/classes/com/he/loader/TTAppCompiler.java new file mode 100644 index 0000000..1744060 --- /dev/null +++ b/df_miniapp/classes/com/he/loader/TTAppCompiler.java @@ -0,0 +1,213 @@ +package com.he.loader; + +import android.content.Context; +import android.content.ContextWrapper; +import com.he.SettingsProvider; + +public class TTAppCompiler implements Runnable { + private static volatile boolean libs_loaded; + + private long _ptr; + + private int cacheMinSize = 32768; + + private Callback callback; + + public TTAppCompiler() { + if (!libs_loaded) + loadLibs(); + } + + public TTAppCompiler(Callback paramCallback) { + if (!libs_loaded) + loadLibs(); + this.callback = paramCallback; + } + + private static native void cleanupCompiler(long paramLong); + + private static native void clearTasks(long paramLong); + + private static void loadLibs() { + // Byte code: + // 0: ldc com/he/loader/TTAppCompiler + // 2: monitorenter + // 3: getstatic com/he/loader/TTAppCompiler.libs_loaded : Z + // 6: istore_0 + // 7: iload_0 + // 8: ifeq -> 15 + // 11: ldc com/he/loader/TTAppCompiler + // 13: monitorexit + // 14: return + // 15: ldc 'c++_shared' + // 17: invokestatic load : (Ljava/lang/String;)V + // 20: goto -> 32 + // 23: astore_1 + // 24: ldc 'TTAppCompiler' + // 26: ldc 'library for c++_shared not loaded' + // 28: aload_1 + // 29: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 32: ldc 'v8_libbase.cr' + // 34: invokestatic load : (Ljava/lang/String;)V + // 37: ldc 'v8_libplatform.cr' + // 39: invokestatic load : (Ljava/lang/String;)V + // 42: ldc 'v8.cr' + // 44: invokestatic load : (Ljava/lang/String;)V + // 47: ldc 'skialite' + // 49: invokestatic load : (Ljava/lang/String;)V + // 52: goto -> 64 + // 55: astore_1 + // 56: ldc 'TTAppCompiler' + // 58: ldc 'load skialite failed' + // 60: aload_1 + // 61: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 64: ldc 'helium' + // 66: invokestatic load : (Ljava/lang/String;)V + // 69: goto -> 81 + // 72: astore_1 + // 73: ldc 'TTAppCompiler' + // 75: ldc 'library for v8xxx not loaded' + // 77: aload_1 + // 78: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 81: iconst_1 + // 82: putstatic com/he/loader/TTAppCompiler.libs_loaded : Z + // 85: ldc com/he/loader/TTAppCompiler + // 87: monitorexit + // 88: return + // 89: astore_1 + // 90: ldc com/he/loader/TTAppCompiler + // 92: monitorexit + // 93: aload_1 + // 94: athrow + // Exception table: + // from to target type + // 3 7 89 finally + // 15 20 23 finally + // 24 32 89 finally + // 32 47 72 finally + // 47 52 55 finally + // 56 64 72 finally + // 64 69 72 finally + // 73 81 89 finally + // 81 85 89 finally + } + + private static native void pauseCompiler(long paramLong); + + private static native int queueTask(long paramLong, byte[] paramArrayOfbyte, String paramString, boolean paramBoolean, int paramInt); + + private void reflectedOnAsyncCompile(int paramInt1, int paramInt2, int paramInt3) { + StringBuilder stringBuilder = new StringBuilder("compiled, id: "); + stringBuilder.append(paramInt1); + stringBuilder.append(", duration: "); + stringBuilder.append(paramInt2); + stringBuilder.append(", cache_size: "); + stringBuilder.append(paramInt3); + Log.i("TTAppCompiler", new Object[] { stringBuilder.toString() }); + Callback callback = this.callback; + if (callback != null) + callback.onCompiled(paramInt1, paramInt2, paramInt3); + } + + private static native boolean removeTask(long paramLong, int paramInt); + + private static native void resumeCompiler(long paramLong); + + private native long setupCompiler(String paramString); + + private static native void startCompiler(long paramLong); + + private static native void stopCompiler(long paramLong); + + public void cleanup() { + cleanupCompiler(this._ptr); + this._ptr = 0L; + } + + public void clearTasks() { + long l = this._ptr; + if (l != 0L) { + clearTasks(l); + return; + } + throw new RuntimeException("TTAppCompilerPtr is null"); + } + + public void pause() { + long l = this._ptr; + if (l != 0L) { + pauseCompiler(l); + return; + } + throw new RuntimeException("TTAppCompilerPtr is null"); + } + + public int queueTask(byte[] paramArrayOfbyte, String paramString, boolean paramBoolean, int paramInt) { + long l = this._ptr; + if (l != 0L) + return queueTask(l, paramArrayOfbyte, paramString, paramBoolean, paramInt); + throw new RuntimeException("TTAppCompilerPtr is null"); + } + + public boolean removeTask(int paramInt) { + long l = this._ptr; + if (l != 0L) + return removeTask(l, paramInt); + throw new RuntimeException("TTAppCompilerPtr is null"); + } + + public void resume() { + long l = this._ptr; + if (l != 0L) { + resumeCompiler(l); + return; + } + throw new RuntimeException("TTAppCompilerPtr is null"); + } + + public void run() { + long l = this._ptr; + if (l != 0L) { + startCompiler(l); + return; + } + throw new RuntimeException("TTAppCompilerPtr is null"); + } + + public void setup(ContextWrapper paramContextWrapper, SettingsProvider paramSettingsProvider) { + String str = "com.he.loader.js_cache"; + if (paramSettingsProvider != null) { + str = paramSettingsProvider.getSetting((Context)paramContextWrapper, TTAppLoader.Settings.CODECACHE_DIR, "com.he.loader.js_cache"); + this.cacheMinSize = paramSettingsProvider.getSetting((Context)paramContextWrapper, TTAppLoader.Settings.CODECACHE_MINSIZE, this.cacheMinSize); + } + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramContextWrapper.getCacheDir()); + stringBuilder.append("/"); + stringBuilder.append(str); + stringBuilder.append("/"); + this._ptr = setupCompiler(stringBuilder.toString()); + } + + public boolean shouldCache(int paramInt) { + return (paramInt >= this.cacheMinSize); + } + + public void stop() { + long l = this._ptr; + if (l != 0L) { + stopCompiler(l); + return; + } + throw new RuntimeException("TTAppCompilerPtr is null"); + } + + public static interface Callback { + void onCompiled(int param1Int1, int param1Int2, int param1Int3); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\loader\TTAppCompiler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/loader/TTAppLoader.java b/df_miniapp/classes/com/he/loader/TTAppLoader.java new file mode 100644 index 0000000..08c0bf3 --- /dev/null +++ b/df_miniapp/classes/com/he/loader/TTAppLoader.java @@ -0,0 +1,263 @@ +package com.he.loader; + +import android.content.Context; +import android.content.ContextWrapper; +import android.net.Uri; +import com.he.Monitor; +import com.he.SettingsProvider; +import java.io.File; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.Iterator; +import java.util.LinkedList; + +public final class TTAppLoader { + private long _ptr; + + public final Loader impl; + + private LoadScriptSample.Callback loadScriptSampleCallback = null; + + private final LinkedList pending_files = new LinkedList(); + + public TTAppLoader(Loader paramLoader) { + this.impl = paramLoader; + } + + public static native void loadScript(String paramString); + + private static native void nativeCleanup(); + + public static native void nativeReject(long paramLong, String paramString); + + public static native void nativeResolve(long paramLong, ByteBuffer paramByteBuffer); + + public static native void nativeResolveBytes(long paramLong, byte[] paramArrayOfbyte, int paramInt1, int paramInt2); + + public static native void nativeResolveFile(long paramLong, String paramString); + + private void reflectedLoad(String paramString, long paramLong) { + synchronized (this.pending_files) { + ResolverImpl resolverImpl = new ResolverImpl(paramString, paramLong); + this.impl.load(paramString, resolverImpl); + if (resolverImpl.resolved) + return; + this.pending_files.push(resolverImpl); + return; + } + } + + private String reflectedLoadMedia(String paramString) { + Uri uri = this.impl.loadMedia(paramString); + return (uri == null) ? null : uri.toString(); + } + + private byte[] reflectedLoadSync(String paramString) { + return this.impl.loadSync(paramString); + } + + private void reflectedLoadUrl(String paramString, long paramLong) { + this.impl.loadUrl(paramString, new ResolverImpl(paramString, paramLong)); + } + + private void reflectedOnAsyncCompile(int paramInt1, int paramInt2, int paramInt3) { + Monitor.impl.onAsyncCompile(paramInt1, paramInt2, paramInt3); + } + + private void reflectedOnLoadScriptSample(ByteBuffer paramByteBuffer) { + LoadScriptSample.Callback callback = this.loadScriptSampleCallback; + if (callback != null) { + int i = 0; + int j = paramByteBuffer.capacity(); + while (i < j) { + callback.onSample(new LoadScriptSample(paramByteBuffer, i)); + i += 320; + } + } + } + + private void reflectedPostUrl(String paramString1, byte[] paramArrayOfbyte, String paramString2, long paramLong) { + try { + this.impl.getClass().getDeclaredMethod("post", new Class[] { String.class, byte[].class, String.class, Resolver.class }).invoke(this.impl, new Object[] { paramString1, paramArrayOfbyte, paramString2, new ResolverImpl(paramString1, paramLong) }); + return; + } catch (ReflectiveOperationException reflectiveOperationException) { + return; + } + } + + private native void toggleLoadScriptSample(boolean paramBoolean); + + public final void cleanup() { + this._ptr = 0L; + nativeCleanup(); + } + + public final native void loadPackage(String paramString); + + public final void reject(String paramString, IOException paramIOException) { + synchronized (this.pending_files) { + Iterator iterator = this.pending_files.iterator(); + while (iterator.hasNext()) { + ResolverImpl resolverImpl = iterator.next(); + if (resolverImpl.path.equals(paramString)) { + resolverImpl.reject(paramIOException); + iterator.remove(); + } + } + return; + } + } + + public final void resolve(String paramString, ByteBuffer paramByteBuffer) { + synchronized (this.pending_files) { + Iterator iterator = this.pending_files.iterator(); + while (iterator.hasNext()) { + ResolverImpl resolverImpl = iterator.next(); + if (resolverImpl.path.equals(paramString)) { + resolverImpl.resolve(paramByteBuffer); + iterator.remove(); + } + } + return; + } + } + + public final void resolve(String paramString, byte[] paramArrayOfbyte, int paramInt1, int paramInt2) { + synchronized (this.pending_files) { + Iterator iterator = this.pending_files.iterator(); + while (iterator.hasNext()) { + ResolverImpl resolverImpl = iterator.next(); + if (resolverImpl.path.equals(paramString)) { + resolverImpl.resolve(paramArrayOfbyte, paramInt1, paramInt2); + iterator.remove(); + } + } + return; + } + } + + public final void setLoadScriptSampleCallback(LoadScriptSample.Callback paramCallback) { + boolean bool1; + boolean bool2; + LoadScriptSample.Callback callback = this.loadScriptSampleCallback; + if (callback == paramCallback) + return; + boolean bool3 = true; + if (callback == null) { + bool1 = true; + } else { + bool1 = false; + } + if (paramCallback == null) { + bool2 = true; + } else { + bool2 = false; + } + if (bool1 != bool2) { + if (paramCallback == null) + bool3 = false; + toggleLoadScriptSample(bool3); + } + this.loadScriptSampleCallback = paramCallback; + } + + public final void setup(ContextWrapper paramContextWrapper, SettingsProvider paramSettingsProvider) { + int i = 32768; + boolean bool = false; + String str = "com.he.loader.js_cache"; + if (paramSettingsProvider != null) { + str = paramSettingsProvider.getSetting((Context)paramContextWrapper, Settings.CODECACHE_DIR, "com.he.loader.js_cache"); + i = paramSettingsProvider.getSetting((Context)paramContextWrapper, Settings.CODECACHE_MINSIZE, 32768); + bool = paramSettingsProvider.getSetting((Context)paramContextWrapper, Settings.CODECACHE_BACKGROUND_CREATE, false); + } + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramContextWrapper.getCacheDir()); + stringBuilder.append("/"); + stringBuilder.append(str); + stringBuilder.append("/"); + setup(stringBuilder.toString(), i, bool); + } + + public final native void setup(String paramString, int paramInt, boolean paramBoolean); + + static final class ResolverImpl implements Resolver { + final long id; + + final String path; + + boolean resolved; + + ResolverImpl(String param1String, long param1Long) { + this.path = param1String; + this.id = param1Long; + } + + public final void reject(IOException param1IOException) { + if (!this.resolved) { + this.resolved = true; + TTAppLoader.nativeReject(this.id, param1IOException.getMessage()); + return; + } + throw new RuntimeException("request has been resolved"); + } + + public final void resolve(File param1File) { + if (!this.resolved) { + this.resolved = true; + TTAppLoader.nativeResolveFile(this.id, param1File.getPath()); + return; + } + throw new RuntimeException("request has been resolved"); + } + + public final void resolve(ByteBuffer param1ByteBuffer) { + if (!this.resolved) { + this.resolved = true; + if (param1ByteBuffer.isDirect()) { + TTAppLoader.nativeResolve(this.id, param1ByteBuffer); + return; + } + byte[] arrayOfByte = param1ByteBuffer.array(); + TTAppLoader.nativeResolveBytes(this.id, arrayOfByte, 0, arrayOfByte.length); + return; + } + throw new RuntimeException("request has been resolved"); + } + + public final void resolve(byte[] param1ArrayOfbyte, int param1Int1, int param1Int2) { + if (!this.resolved) { + this.resolved = true; + TTAppLoader.nativeResolveBytes(this.id, param1ArrayOfbyte, param1Int1, param1Int2); + return; + } + throw new RuntimeException("request has been resolved"); + } + } + + public enum Settings { + CODECACHE_BACKGROUND_CREATE, + CODECACHE_DIR, + CODECACHE_MINSIZE("codecache_minsize"); + + private final String name; + + static { + CODECACHE_BACKGROUND_CREATE = new Settings("CODECACHE_BACKGROUND_CREATE", 2, "codecache_bg_create"); + $VALUES = new Settings[] { CODECACHE_MINSIZE, CODECACHE_DIR, CODECACHE_BACKGROUND_CREATE }; + } + + Settings(String param1String1) { + this.name = param1String1; + } + + public final String toString() { + return this.name; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\loader\TTAppLoader.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/he/v8_inspect/Inspect.java b/df_miniapp/classes/com/he/v8_inspect/Inspect.java new file mode 100644 index 0000000..62644bd --- /dev/null +++ b/df_miniapp/classes/com/he/v8_inspect/Inspect.java @@ -0,0 +1,77 @@ +package com.he.v8_inspect; + +public class Inspect { + private static String debugURL; + + private static Runnable devToolConnectCallback; + + private static boolean started; + + private static void callDevToolConnectCallback() { + Runnable runnable = devToolConnectCallback; + if (runnable != null) { + runnable.run(); + devToolConnectCallback = null; + } + } + + private static native void nativeConnect(String paramString); + + private static native void nativeListen(int paramInt); + + public static native void onDispose(String paramString); + + public static native void onNewIsolate(String paramString1, String paramString2); + + public static void setDevToolConnectCallback(Runnable paramRunnable) { + devToolConnectCallback = paramRunnable; + } + + public static void setRemoteDebugURL(String paramString) { + debugURL = paramString; + } + + public static void start() { + // Byte code: + // 0: getstatic com/he/v8_inspect/Inspect.started : Z + // 3: ifeq -> 7 + // 6: return + // 7: ldc com/he/v8_inspect/Inspect + // 9: monitorenter + // 10: getstatic com/he/v8_inspect/Inspect.started : Z + // 13: ifeq -> 20 + // 16: ldc com/he/v8_inspect/Inspect + // 18: monitorexit + // 19: return + // 20: getstatic com/he/v8_inspect/Inspect.debugURL : Ljava/lang/String; + // 23: ifnull -> 35 + // 26: getstatic com/he/v8_inspect/Inspect.debugURL : Ljava/lang/String; + // 29: invokestatic nativeConnect : (Ljava/lang/String;)V + // 32: goto -> 41 + // 35: sipush #9229 + // 38: invokestatic nativeListen : (I)V + // 41: iconst_1 + // 42: putstatic com/he/v8_inspect/Inspect.started : Z + // 45: ldc com/he/v8_inspect/Inspect + // 47: monitorexit + // 48: return + // 49: astore_0 + // 50: ldc com/he/v8_inspect/Inspect + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 10 19 49 finally + // 20 32 49 finally + // 35 41 49 finally + // 41 48 49 finally + // 50 53 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\he\v8_inspect\Inspect.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/BaseActivity.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/BaseActivity.java new file mode 100644 index 0000000..ad71d62 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/BaseActivity.java @@ -0,0 +1,18 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.app.Activity; +import android.content.Context; +import com.ss.android.ugc.aweme.dfbase.c.f; + +public class BaseActivity extends Activity { + protected void attachBaseContext(Context paramContext) { + super.attachBaseContext(paramContext); + f.a(paramContext); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\BaseActivity.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/MiniAppService.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/MiniAppService.java new file mode 100644 index 0000000..d47d931 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/MiniAppService.java @@ -0,0 +1,413 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.app.Activity; +import android.app.Application; +import android.content.Context; +import android.content.ContextWrapper; +import android.content.Intent; +import android.text.TextUtils; +import android.webkit.WebView; +import com.ss.android.ugc.aweme.miniapp.a.a; +import com.ss.android.ugc.aweme.miniapp.c.a; +import com.ss.android.ugc.aweme.miniapp.e.a; +import com.ss.android.ugc.aweme.miniapp.k.a; +import com.ss.android.ugc.aweme.miniapp.utils.f; +import com.ss.android.ugc.aweme.miniapp_api.a.b; +import com.ss.android.ugc.aweme.miniapp_api.a.c; +import com.ss.android.ugc.aweme.miniapp_api.a.d; +import com.ss.android.ugc.aweme.miniapp_api.a.e; +import com.ss.android.ugc.aweme.miniapp_api.a.f; +import com.ss.android.ugc.aweme.miniapp_api.a.g; +import com.ss.android.ugc.aweme.miniapp_api.a.h; +import com.ss.android.ugc.aweme.miniapp_api.a.i; +import com.ss.android.ugc.aweme.miniapp_api.a.j; +import com.ss.android.ugc.aweme.miniapp_api.a.k; +import com.ss.android.ugc.aweme.miniapp_api.a.l; +import com.ss.android.ugc.aweme.miniapp_api.a.m; +import com.ss.android.ugc.aweme.miniapp_api.a.n; +import com.ss.android.ugc.aweme.miniapp_api.a.o; +import com.ss.android.ugc.aweme.miniapp_api.a.p; +import com.ss.android.ugc.aweme.miniapp_api.b.g; +import com.ss.android.ugc.aweme.miniapp_api.b.i; +import com.ss.android.ugc.aweme.miniapp_api.d; +import com.ss.android.ugc.aweme.miniapp_api.model.b; +import com.ss.android.ugc.aweme.miniapp_api.model.b.b; +import com.ss.android.ugc.aweme.miniapp_api.model.e; +import com.ss.android.ugc.aweme.miniapp_api.services.IMiniAppService; +import com.ss.android.ugc.aweme.miniapp_api.services.b; +import com.tt.miniapp.business.aweme.AwemeHandler; +import com.tt.miniapp.manager.HostActivityManager; +import com.tt.miniapp.permission.PermissionsManager; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandConstants; +import com.tt.miniapphost.AppbrandSupport; +import com.tt.miniapphost.entity.MediaEntity; +import com.tt.miniapphost.entity.MicroSchemaEntity; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.util.WebViewDataUtil; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import org.json.JSONObject; + +public class MiniAppService implements IMiniAppService { + private com.ss.android.ugc.aweme.miniapp_api.a.a mABTestDepend; + + private String mAid; + + private String mAppName; + + private Application mApplication; + + private c mBaseLibDepend; + + private String mBusinessVersionName; + + private String mChannel; + + private b mIApmServiceDepend; + + private d mICarrierServiceDepend; + + private e mIConstantDepend; + + private f mIFacialVerifyDepend; + + private h mINetWorkDepend; + + private j mIPopToastDepend; + + private k mIProfileDepend; + + private m mISDKMonitorDepend; + + private o mIVideoEditorDepend; + + private Locale mLocale; + + private com.ss.android.ugc.aweme.miniapp_api.services.a mMobClickCombinerIpcService = (com.ss.android.ugc.aweme.miniapp_api.services.a)new a(); + + private g mMonitorDepend; + + private i mPayDepend; + + private String mPluginVersionCode; + + private l mRouterDepend; + + private n mSettingsDepend; + + private b mTTDownloaderIpcService = (b)new a(); + + private String mVersionCode; + + private p mWebDepend; + + private MiniAppService() {} + + public static MiniAppService inst() { + return a.a; + } + + public String addScene(String paramString1, String paramString2) { + String str = paramString1; + if (!TextUtils.isEmpty(paramString1)) { + if (TextUtils.isEmpty(paramString2)) + return paramString1; + MicroSchemaEntity microSchemaEntity = MicroSchemaEntity.parseFromSchema(paramString1); + if (microSchemaEntity == null) + return paramString1; + microSchemaEntity.setScene(paramString2); + str = microSchemaEntity.toSchema(); + } + return str; + } + + public boolean checkMiniAppEnable(Context paramContext) { + return (AppbrandConstants.getBundleManager().checkMiniAppDisableState(0) == null); + } + + public com.ss.android.ugc.aweme.miniapp_api.a.a getABTestDepend() { + return this.mABTestDepend; + } + + public String getAid() { + return this.mAid; + } + + public b getApmServiceDepend() { + return this.mIApmServiceDepend; + } + + public String getAppName() { + return this.mAppName; + } + + public Application getApplication() { + return this.mApplication; + } + + public c getBaseLibDepend() { + return this.mBaseLibDepend; + } + + public String getBusinessVersionName() { + return this.mBusinessVersionName; + } + + public d getCarrierServiceDepend() { + return this.mICarrierServiceDepend; + } + + public String getChannel() { + return this.mChannel; + } + + public e getConstantDepend() { + return this.mIConstantDepend; + } + + public Locale getCurrentLocale() { + Locale locale = this.mBaseLibDepend.a((Context)this.mApplication); + return (locale != null) ? locale : this.mLocale; + } + + public f getFacialVerifyDepend() { + return this.mIFacialVerifyDepend; + } + + public String getJsSdkVersion(Application paramApplication) { + this.mApplication = paramApplication; + paramApplication = this.mApplication; + return AppbrandSupport.inst().getTmaJssdkVersion(); + } + + public com.ss.android.ugc.aweme.miniapp_api.services.a getMobClickCombinerIpcService() { + return this.mMobClickCombinerIpcService; + } + + public g getMonitorDepend() { + return this.mMonitorDepend; + } + + public h getNetWorkDepend() { + return this.mINetWorkDepend; + } + + public i getPayDepend() { + return this.mPayDepend; + } + + public String getPluginVersionCode() { + return this.mPluginVersionCode; + } + + public j getPopToastDepend() { + return this.mIPopToastDepend; + } + + public k getProfileDepend() { + return this.mIProfileDepend; + } + + public l getRouterDepend() { + return this.mRouterDepend; + } + + public m getSDKMonitorDepend() { + return this.mISDKMonitorDepend; + } + + public n getSettingsDepend() { + return this.mSettingsDepend; + } + + public void getShareInfo(String paramString, i parami) { + if (AppbrandSupport.inst().isInit()) { + a.a(paramString, parami); + return; + } + inst().getBaseLibDepend().a(new n(paramString, parami)); + } + + public b getTTDownloaderIpcService() { + return this.mTTDownloaderIpcService; + } + + public String getVersionCode() { + return this.mVersionCode; + } + + public o getVideoEditorDepend() { + return this.mIVideoEditorDepend; + } + + public p getWebDepend() { + return this.mWebDepend; + } + + public void handleActivityImageResult(int paramInt1, int paramInt2, Intent paramIntent) { + List list = (List)paramIntent.getSerializableExtra("key_media_list"); + ArrayList arrayList = new ArrayList(); + for (b.b b1 : list) + arrayList.add(new MediaEntity(b1.getPath(), b1.getName(), b1.getTime(), b1.getMediaType(), b1.getSize(), b1.getId(), b1.getParentDir())); + paramIntent.putParcelableArrayListExtra("key_media_list", arrayList); + } + + public boolean hasFollowedAweme(int paramInt) { + return !(paramInt != 1 && paramInt != 2); + } + + public void initMiniApp(g paramg) { + i.a(this.mApplication, paramg, true); + } + + public void initWebViewSuffix(ContextWrapper paramContextWrapper, String paramString) { + WebViewDataUtil.init(paramContextWrapper, paramString); + WebView.setDataDirectorySuffix(WebViewDataUtil.getSuffix()); + } + + public void initialize(Application paramApplication, IMiniAppService.a parama) { + this.mApplication = paramApplication; + this.mAid = parama.a; + this.mChannel = parama.b; + this.mVersionCode = parama.c; + this.mBusinessVersionName = parama.d; + this.mPluginVersionCode = parama.e; + this.mAppName = parama.f; + this.mRouterDepend = parama.h; + this.mPayDepend = parama.i; + this.mMonitorDepend = parama.j; + this.mABTestDepend = parama.k; + this.mBaseLibDepend = parama.l; + this.mSettingsDepend = parama.m; + this.mINetWorkDepend = parama.n; + this.mIConstantDepend = parama.o; + this.mISDKMonitorDepend = parama.p; + this.mIPopToastDepend = parama.q; + this.mIVideoEditorDepend = parama.r; + this.mIApmServiceDepend = parama.s; + this.mIFacialVerifyDepend = parama.t; + this.mICarrierServiceDepend = parama.u; + this.mWebDepend = parama.w; + if (this.mLocale == null) + this.mLocale = parama.g; + this.mIProfileDepend = parama.v; + } + + public boolean isMinAppAvailable(Context paramContext, String paramString) { + return f.a(paramContext, paramString); + } + + public void jumpToMiniApp(Context paramContext, String paramString1, String paramString2, boolean paramBoolean, String paramString3, String paramString4) { + if (AppbrandSupport.inst().isInit()) { + f.a(paramContext, paramString1, paramString2, paramBoolean, paramString3, paramString4); + return; + } + inst().getBaseLibDepend().a(new m(paramContext, paramString1, paramString2, paramBoolean, paramString3, paramString4)); + } + + public void logExcitingVideoAd(Context paramContext, String paramString1, long paramLong, String paramString2) { + a.a(paramContext, paramString1, paramLong, paramString2); + } + + public void notifyFollowAwemeState(int paramInt) { + AwemeHandler.Companion.notifyFollowAwemeState(hasFollowedAweme(paramInt)); + } + + public void notifyLocaleChange(Locale paramLocale) { + if (paramLocale == null) + return; + this.mLocale = paramLocale; + AppbrandSupport.inst().switchLang(paramLocale); + } + + public void onRequestPermissionsResult(Activity paramActivity, String[] paramArrayOfString, int[] paramArrayOfint) { + PermissionsManager.getInstance().notifyPermissionsChange(paramActivity, paramArrayOfString, paramArrayOfint); + } + + public boolean openMiniApp(Context paramContext, e parame, b paramb) { + if (d.e(parame.getSchema())) { + c c1 = this.mBaseLibDepend; + if (c1 != null && !c1.k()) + return false; + } + if (AppbrandSupport.inst().isInit()) + return f.a(paramContext, parame, paramb); + inst().getBaseLibDepend().a(new l(paramContext, parame, paramb)); + return true; + } + + public boolean openMiniApp(Context paramContext, String paramString, b paramb) { + if (d.e(paramString)) { + c c1 = this.mBaseLibDepend; + if (c1 != null && !c1.k()) + return false; + } + if (AppbrandSupport.inst().isInit()) + return f.a(paramContext, paramString, paramb); + inst().getBaseLibDepend().a(new k(paramContext, paramString, paramb)); + return true; + } + + public boolean openShortcut(Context paramContext, Intent paramIntent) { + if (!AppbrandSupport.inst().isInit()) + i.a(this.mApplication, null, false); + if (AppbrandSupport.inst().isInit()); + return false; + } + + public void preloadMiniApp(String paramString) { + StringBuilder stringBuilder = new StringBuilder("preloadMiniApp:"); + stringBuilder.append(paramString); + AppBrandLogger.d("MiniAppService", new Object[] { stringBuilder.toString() }); + if (AppbrandSupport.inst().isInit()) { + f.a(paramString); + f.a(); + return; + } + inst().getBaseLibDepend().a(new p(paramString)); + } + + public void preloadMiniApp(String paramString, int paramInt) { + StringBuilder stringBuilder = new StringBuilder("preloadMiniApp:"); + stringBuilder.append(paramString); + AppBrandLogger.d("MiniAppService", new Object[] { stringBuilder.toString() }); + if (AppbrandSupport.inst().isInit()) { + f.a(paramString, paramInt, null); + f.a(); + return; + } + inst().getBaseLibDepend().a(new o(paramString, paramInt)); + } + + public void remoteMobV3(String paramString, JSONObject paramJSONObject) { + HostProcessBridge.logEvent(paramString, paramJSONObject); + } + + public void setBaseLibDepend(c paramc) { + this.mBaseLibDepend = paramc; + } + + public String setLaunchModeHostTask(String paramString) { + if (TextUtils.isEmpty(paramString)) + return paramString; + MicroSchemaEntity microSchemaEntity = MicroSchemaEntity.parseFromSchema(paramString); + microSchemaEntity.setLaunchMode(MicroSchemaEntity.LaunchMode.HOST_STACK); + return microSchemaEntity.toSchema(); + } + + public void tryMoveMiniAppActivityToFront(String paramString) { + HostActivityManager.tryMoveMiniAppActivityTaskToFront(paramString); + } + + static final class a { + public static final MiniAppService a = new MiniAppService(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\MiniAppService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/MyReceiver.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/MyReceiver.java new file mode 100644 index 0000000..0f4ebbc --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/MyReceiver.java @@ -0,0 +1,15 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +public class MyReceiver extends BroadcastReceiver { + public void onReceive(Context paramContext, Intent paramIntent) {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\MyReceiver.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/a.java new file mode 100644 index 0000000..1f2a587 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/a.java @@ -0,0 +1,113 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.content.Context; +import android.net.Uri; +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp.a.a; +import com.ss.android.ugc.aweme.miniapp.f.a.c; +import com.ss.android.ugc.aweme.miniapp_api.d; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import java.net.URLDecoder; +import org.json.JSONObject; + +public final class a implements g { + private String a; + + private Uri b; + + private static void a(String paramString, long paramLong, JSONObject paramJSONObject) { + if (TextUtils.equals(paramString, "open_url")) { + c.a("umeng", "embeded_ad", "open_url_microapp_h5", paramLong, 0L, paramJSONObject); + return; + } + c.a("umeng", "embeded_ad", "micro_app_h5", paramLong, 0L, paramJSONObject); + } + + public final boolean a(Context paramContext, String paramString) { + try { + JSONObject jSONObject1 = new JSONObject(this.a); + String str1 = jSONObject1.optString("web_url"); + String str3 = jSONObject1.optString("cid"); + String str4 = jSONObject1.optString("log_extra"); + String str2 = jSONObject1.optString("web_title"); + boolean bool = jSONObject1.optBoolean("is_half_page"); + String str5 = this.b.getQueryParameter("from"); + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("log_extra", str4); + jSONObject2.put("is_ad_event", 1); + long l = Long.parseLong(str3); + if (bool) { + if (!TextUtils.isEmpty(str1)) + a(str5, l, jSONObject2); + HostProcessBridge.hostActionSync("live_ad_web_url", CrossProcessDataEntity.Builder.create().put("hostActionData", this.a).build()); + return true; + } + if (!TextUtils.isEmpty(str4) && !TextUtils.isEmpty(str1)) { + a(str5, l, jSONObject2); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(str1); + stringBuilder.append("&launch_mode=standard"); + a.a(paramContext, stringBuilder.toString(), str2); + } + return true; + } catch (Exception exception) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(exception.getMessage()); + stringBuilder.append("schema is"); + stringBuilder.append(paramString); + String str = stringBuilder.toString(); + MiniAppService.inst().getBaseLibDepend().a(new Exception(str)); + return false; + } + } + + public final boolean a(String paramString) { + if (TextUtils.isEmpty(paramString)) + return false; + this.b = Uri.parse(paramString); + String str = paramString; + try { + paramString = URLDecoder.decode(paramString, "UTF-8"); + str = paramString; + boolean bool = d.c(paramString); + if (bool) { + str = paramString; + String str1 = this.b.getQueryParameter("start_page"); + str = paramString; + StringBuilder stringBuilder = new StringBuilder("start_page://"); + str = paramString; + stringBuilder.append(str1); + str = paramString; + this.a = Uri.parse(stringBuilder.toString()).getQueryParameter("ad_params"); + } else { + str = paramString; + if (d.e(paramString)) { + str = paramString; + String str1 = this.b.getQueryParameter("query"); + str = paramString; + if (!TextUtils.isEmpty(str1)) { + str = paramString; + this.a = (new JSONObject(str1)).optString("ad_params"); + str = paramString; + this.a = URLDecoder.decode(this.a, "UTF-8"); + } + } + } + } catch (Exception exception) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(exception.getMessage()); + stringBuilder.append("schema is"); + stringBuilder.append(str); + String str1 = stringBuilder.toString(); + MiniAppService.inst().getBaseLibDepend().a(new Exception(str1)); + } + return !TextUtils.isEmpty(this.a); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/a/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/a/a.java new file mode 100644 index 0000000..b8ad9a2 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/a/a.java @@ -0,0 +1,68 @@ +package com.ss.android.ugc.aweme.miniapp.a; + +import android.content.Context; +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp_api.b.a.b; +import com.ss.android.ugc.aweme.miniapp_api.b.a.c; +import com.ss.android.ugc.aweme.miniapp_api.c; +import org.json.JSONException; +import org.json.JSONObject; + +public class a { + public static final String a = a.class.getSimpleName(); + + public static final String b; + + static { + StringBuilder stringBuilder = new StringBuilder("snssdk"); + stringBuilder.append(MiniAppService.inst().getAid()); + stringBuilder.append("://mini_app"); + b = stringBuilder.toString(); + } + + private static JSONObject a(Context paramContext, String paramString) { + try { + JSONObject jSONObject = new JSONObject(); + try { + if (!TextUtils.isEmpty(paramString)) + jSONObject.put("log_extra", paramString); + jSONObject.put("is_ad_event", "1"); + paramString = MiniAppService.inst().getNetWorkDepend().a(paramContext); + JSONObject jSONObject1 = jSONObject; + if (!TextUtils.isEmpty(paramString)) { + jSONObject.put("nt", paramString); + return jSONObject; + } + return jSONObject1; + } catch (JSONException null) { + return jSONObject; + } + } catch (JSONException jSONException) { + jSONException = null; + } + return (JSONObject)jSONException; + } + + public static void a(Context paramContext, String paramString1, long paramLong, String paramString2) { + if (paramContext == null) + return; + MiniAppService.inst().getMonitorDepend().a(paramContext, "umeng", "landing_ad", paramString1, paramLong, 0L, a(paramContext, paramString2)); + } + + public static void a(Context paramContext, String paramString1, String paramString2) { + if (paramContext == null) + return; + MiniAppService.inst().getRouterDepend().b(paramContext, paramString1, paramString2); + } + + public static interface a { + void a(boolean param1Boolean); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/b.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/b.java new file mode 100644 index 0000000..9168384 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/b.java @@ -0,0 +1,122 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.app.Activity; +import android.app.Application; +import android.content.Context; +import android.os.Bundle; +import com.ss.android.ugc.aweme.AccountService; +import com.ss.android.ugc.aweme.IAccountService; +import com.ss.android.ugc.aweme.IAccountUserService; +import com.ss.android.ugc.aweme.miniapp.utils.f; +import com.ss.android.ugc.aweme.profile.model.User; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandSupport; +import com.tt.miniapphost.IAppbrandInitializer; +import com.tt.miniapphost.ParamManager; +import com.tt.miniapphost.host.HostDependManager; +import java.util.Locale; + +public class b implements IAppbrandInitializer { + public static final String a = b.class.getSimpleName(); + + public static a b = new a(); + + public static volatile boolean c = false; + + private static volatile b d; + + public static b a() { + // Byte code: + // 0: getstatic com/ss/android/ugc/aweme/miniapp/b.d : Lcom/ss/android/ugc/aweme/miniapp/b; + // 3: ifnonnull -> 37 + // 6: ldc com/ss/android/ugc/aweme/miniapp/b + // 8: monitorenter + // 9: getstatic com/ss/android/ugc/aweme/miniapp/b.d : Lcom/ss/android/ugc/aweme/miniapp/b; + // 12: ifnonnull -> 25 + // 15: new com/ss/android/ugc/aweme/miniapp/b + // 18: dup + // 19: invokespecial : ()V + // 22: putstatic com/ss/android/ugc/aweme/miniapp/b.d : Lcom/ss/android/ugc/aweme/miniapp/b; + // 25: ldc com/ss/android/ugc/aweme/miniapp/b + // 27: monitorexit + // 28: goto -> 37 + // 31: astore_0 + // 32: ldc com/ss/android/ugc/aweme/miniapp/b + // 34: monitorexit + // 35: aload_0 + // 36: athrow + // 37: getstatic com/ss/android/ugc/aweme/miniapp/b.d : Lcom/ss/android/ugc/aweme/miniapp/b; + // 40: areturn + // Exception table: + // from to target type + // 9 25 31 finally + // 25 28 31 finally + // 32 35 31 finally + } + + public void init(Application paramApplication, String paramString, boolean paramBoolean) { + Locale locale; + if (paramBoolean) { + AccountService.createIAccountServicebyMonsterPlugin().addLoginOrLogoutListener(b); + f.a(); + locale = MiniAppService.inst().getBaseLibDepend().a((Context)paramApplication); + if (locale != null) + AppbrandSupport.inst().switchLang(locale); + } else if (paramString.contains(":miniapp")) { + MiniAppService.inst().getBaseLibDepend().a((Application)locale); + MiniAppService.inst().getBaseLibDepend().a(false); + MiniAppService.inst().getBaseLibDepend().a((Application)locale, 0, ParamManager.getMiniAppSdkVersionCode(), ParamManager.getBaseEventParam((Context)locale)); + locale.registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks(this, (Application)locale) { + public final void onActivityCreated(Activity param1Activity, Bundle param1Bundle) { + if (param1Activity instanceof com.tt.miniapphost.MiniappHostBase) + try { + AppbrandApplicationImpl.getInst().getMainHandler().post(new Runnable(this) { + public final void run() { + MiniAppService.inst().getBaseLibDepend().a(ParamManager.getBaseEventParam((Context)this.a.a)); + } + }); + return; + } catch (Exception exception) { + AppBrandLogger.eWithThrowable(b.a, "onActivityCreated", exception); + } + } + + public final void onActivityDestroyed(Activity param1Activity) {} + + public final void onActivityPaused(Activity param1Activity) {} + + public final void onActivityResumed(Activity param1Activity) {} + + public final void onActivitySaveInstanceState(Activity param1Activity, Bundle param1Bundle) {} + + public final void onActivityStarted(Activity param1Activity) {} + + public final void onActivityStopped(Activity param1Activity) {} + }); + } + HostDependManager.getInst().initAdDepend(); + c = true; + } + + public boolean isDebug() { + MiniAppService.inst().getBaseLibDepend(); + return false; + } + + public static final class a implements IAccountService.a { + public boolean a; + + public final void a(int param1Int1, boolean param1Boolean, int param1Int2, User param1User) { + IAccountUserService iAccountUserService = AccountService.createIAccountServicebyMonsterPlugin().userService(); + if (iAccountUserService != null) + iAccountUserService.isLogin(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/c.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/c.java new file mode 100644 index 0000000..126a3ba --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/c.java @@ -0,0 +1,33 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.content.Context; +import android.net.Uri; +import android.text.TextUtils; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; + +public final class c implements g { + private String a; + + public final boolean a(Context paramContext, String paramString) { + MiniAppService.inst().getRouterDepend().b(paramContext, this.a); + return true; + } + + public final boolean a(String paramString) { + if (TextUtils.isEmpty(paramString)) + return false; + try { + String str = URLDecoder.decode(paramString, "UTF-8"); + paramString = str; + } catch (UnsupportedEncodingException unsupportedEncodingException) {} + this.a = Uri.parse(paramString).getQueryParameter("other_open"); + return !TextUtils.isEmpty(this.a); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/c/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/c/a.java new file mode 100644 index 0000000..b3fadc3 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/c/a.java @@ -0,0 +1,11 @@ +package com.ss.android.ugc.aweme.miniapp.c; + +import com.ss.android.ugc.aweme.miniapp_api.services.a; + +public final class a implements a {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\c\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/d.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/d.java new file mode 100644 index 0000000..d7d5d3a --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/d.java @@ -0,0 +1,217 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.support.v4.f.a; +import android.text.TextUtils; +import android.util.SparseArray; +import com.ss.android.ugc.aweme.miniapp.h.a; +import com.ss.android.ugc.aweme.miniapp.utils.b; +import com.ss.android.ugc.aweme.miniapp.utils.c; +import com.ss.android.ugc.aweme.miniapp.views.MainProcessProxyActivity; +import com.ss.android.ugc.aweme.miniapp_api.a.e; +import com.ss.android.ugc.aweme.miniapp_api.a.l; +import com.ss.android.ugc.aweme.miniapp_api.b.a.a; +import com.ss.android.ugc.aweme.miniapp_api.b.a.b; +import com.ss.android.ugc.aweme.miniapp_api.b.a.c; +import com.ss.android.ugc.aweme.miniapp_api.b.f; +import com.tt.b.b; +import com.tt.b.c; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapphost.entity.InitParamsEntity; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.process.callback.IpcCallback; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.util.ProcessUtil; +import com.tt.option.w.f; +import com.tt.option.w.g; +import com.tt.option.w.h; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.UUID; +import org.json.JSONObject; + +public class d implements b { + public InitParamsEntity createInitParams() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("com.ss.android.ugc.trill"); + stringBuilder.append(".fileprovider"); + String str = stringBuilder.toString(); + SparseArray sparseArray = new SparseArray(); + sparseArray.put(1006, str); + sparseArray.put(1007, str); + sparseArray.put(3000, "true"); + return (new InitParamsEntity.Builder()).setAppId(MiniAppService.inst().getAid()).setChannel(MiniAppService.inst().getChannel()).setVersionCode(MiniAppService.inst().getVersionCode()).setPluginVersion(MiniAppService.inst().getPluginVersionCode()).setAppName(MiniAppService.inst().getAppName()).setUaName("").setInitLocale(new Locale("en", "")).setEnableAppbundle(true).setFeedbackAppKey("tiktok-android").setStrMap(sparseArray).build(); + } + + public boolean handleActivityLoginResult(int paramInt1, int paramInt2, Intent paramIntent) { + return (paramInt1 == 0); + } + + public boolean handleActivityShareResult(int paramInt1, int paramInt2, Intent paramIntent) { + return (paramInt1 == 1); + } + + public void loadImage(Context paramContext, c paramc) { + a.a(paramContext, paramc); + } + + public boolean openLoginActivity(Activity paramActivity, HashMap paramHashMap) { + Intent intent = new Intent((Context)paramActivity, MainProcessProxyActivity.class); + intent.putExtra("proxy_type", 0); + intent.putExtra("micro_app_schema", AppbrandApplicationImpl.getInst().getSchema()); + paramActivity.startActivityForResult(intent, 0); + return true; + } + + public boolean share(Activity paramActivity, h paramh, g paramg) { + if (paramh != null) { + String str; + if (paramh.appInfo == null) + return false; + if (TextUtils.isEmpty(paramh.desc)) + paramh.desc = ""; + if (TextUtils.equals("video", paramh.channel)) { + if (!TextUtils.isEmpty(paramh.extra)) { + if (!TextUtils.isEmpty((String)((a)c.a(paramh.extra, a.class)).get("videoPath"))) { + if (paramh == null) + return false; + String str1 = (String)((a)c.a(paramh.extra, a.class)).get("videoPath"); + if (h.a(paramActivity, str1)) + return false; + e e = MiniAppService.inst().getConstantDepend(); + Intent intent = new Intent((Context)paramActivity, MainProcessProxyActivity.class); + intent.putExtra(e.a(), str1); + intent.putExtra("micro_app_id", paramh.appInfo.appId); + a a = new a(); + a.put("schema", paramh.schema); + a.put("appId", paramh.appInfo.appId); + a.put("appTitle", paramh.title); + a.put("appUrl", paramh.queryString); + a.put("cardImage", paramh.imageUrl); + h.a(paramg, intent); + h.a(paramh, intent, a, 1); + intent.putExtra("micro_app_info", c.a(a)); + intent.putExtra("micro_app_class", paramActivity.getClass()); + str = UUID.randomUUID().toString(); + intent.putExtra("creation_id", str); + intent.putExtra("shoot_way", "record_screen"); + intent.putExtra("extra_cross_process", true); + intent.putExtra("proxy_type", 2); + paramActivity.startActivity(intent); + HostProcessBridge.logEvent("shoot", new JSONObject((f.a().a("shoot_way", "record_screen").a("creation_id", str).a("enter_from", "mp")).a)); + return false; + } + h.a(paramActivity, (h)str, paramg); + return false; + } + h.a(paramActivity, (h)str, paramg); + return false; + } + if (TextUtils.equals("fancyCodeShare", ((h)str).channel)) { + MiniAppService.inst().getBaseLibDepend().a(0L, new a(this) { + public final Object a(c param1c) { + return null; + } + }, new b(this, paramActivity, (h)str, paramg) { + public final Object a(c param1c) { + MiniAppService.inst().getRouterDepend(); + b.a(this.b); + new f(this) { + public final void a(String param2String) { + this.a.c.onSuccess(null); + } + + public final void a(String param2String, boolean param2Boolean) {} + + public final void b(String param2String) { + this.a.c.onFail(param2String); + } + }; + return null; + } + }true); + return false; + } + if (TextUtils.equals("aweme_friend", ((h)str).channel)) { + if (MiniAppService.inst().getRouterDepend() != null) { + b.a((h)str); + return false; + } + } else { + f f = new f(this, paramg) { + public final void a(String param1String) { + this.a.onSuccess(null); + } + + public final void a(String param1String, boolean param1Boolean) {} + + public final void b(String param1String) { + this.a.onCancel(param1String); + } + }; + if (str != null) { + l l = MiniAppService.inst().getRouterDepend(); + if (!TextUtils.equals(((h)str).shareType, "chat_mergeIM") && TextUtils.equals(((h)str).shareType, "chat_merge")) { + Intent intent = new Intent((Context)paramActivity, MainProcessProxyActivity.class); + intent.putExtra("proxy_type", 3); + intent.putExtra("micro_app_schema", AppbrandApplicationImpl.getInst().getSchema()); + ProcessUtil.fillCrossProcessCallbackIntent(intent, new IpcCallback(this, paramg) { + public final void onIpcCallback(CrossProcessDataEntity param1CrossProcessDataEntity) { + if (param1CrossProcessDataEntity == null) { + this.a.onFail(null); + return; + } + if (param1CrossProcessDataEntity.getBoolean("proxy_result")) { + this.a.onSuccess(null); + return; + } + this.a.onCancel(null); + } + }); + l.a(paramActivity, intent, b.a((h)str), f); + return false; + } + l.a(paramActivity, b.a((h)str), f); + } + } + } + return false; + } + + public void showShareDialog(Activity paramActivity, f paramf) { + MiniAppService.inst().getBaseLibDepend().a(0L, new a(this) { + public final Object a(c param1c) { + return null; + } + }, new b(this, paramActivity, paramf) { + public final Object a(c param1c) { + MiniAppService.inst().getRouterDepend().a(this.a, new f(this) { + public final void a(String param2String) {} + + public final void a(String param2String, boolean param2Boolean) { + this.a.b.onItemClick(param2String, true); + } + + public final void b(String param2String) { + this.a.b.onCancel(); + } + }); + return null; + } + }true); + } + + public boolean startImagePreviewActivity(Activity paramActivity, String paramString, List paramList, int paramInt) { + MiniAppService.inst().getRouterDepend().a(paramActivity, paramString, paramList, paramInt); + return true; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/d/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/d/a.java new file mode 100644 index 0000000..3e39f09 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/d/a.java @@ -0,0 +1,76 @@ +package com.ss.android.ugc.aweme.miniapp.d; + +import android.app.Activity; +import android.content.Context; +import android.content.DialogInterface; +import com.tt.miniapp.manager.HostActivityManager; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.NativeModule; +import org.json.JSONArray; +import org.json.JSONObject; + +public final class a extends NativeModule { + public a(AppbrandContext paramAppbrandContext) { + super(paramAppbrandContext); + } + + public final void a(Activity paramActivity, String[] paramArrayOfString, NativeModule.NativeModuleCallback paramNativeModuleCallback) { + com.ss.android.ugc.aweme.miniapp.utils.a a1 = new com.ss.android.ugc.aweme.miniapp.utils.a((Context)paramActivity); + DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener(this, paramNativeModuleCallback) { + public final void onClick(DialogInterface param1DialogInterface, int param1Int) { + NativeModule.NativeModuleCallback nativeModuleCallback = this.a; + if (nativeModuleCallback != null) + nativeModuleCallback.onNativeModuleCall(String.valueOf(param1Int)); + } + }; + a1.a.a((CharSequence[])paramArrayOfString, onClickListener); + DialogInterface.OnCancelListener onCancelListener = new DialogInterface.OnCancelListener(this, paramNativeModuleCallback) { + public final void onCancel(DialogInterface param1DialogInterface) { + NativeModule.NativeModuleCallback nativeModuleCallback = this.a; + if (nativeModuleCallback != null) + nativeModuleCallback.onNativeModuleCall("-1"); + } + }; + a1.a.a(onCancelListener); + a1.a.c(); + } + + public final String getName() { + return "DMTshowActionSheet"; + } + + public final String invoke(String paramString, NativeModule.NativeModuleCallback paramNativeModuleCallback) throws Exception { + JSONArray jSONArray = (new JSONObject(paramString)).optJSONArray("itemList"); + if (jSONArray != null) { + int j = jSONArray.length(); + String[] arrayOfString = new String[j]; + for (int i = 0; i < j; i++) + arrayOfString[i] = jSONArray.getString(i); + AppbrandContext.mainHandler.post(new Runnable(this, arrayOfString, paramNativeModuleCallback) { + public final void run() { + a a1 = this.c; + String[] arrayOfString = this.a; + NativeModule.NativeModuleCallback nativeModuleCallback = this.b; + Activity activity = a1.getCurrentActivity(); + if (activity == null || arrayOfString == null) { + activity = HostActivityManager.getHostTopActivity(); + if (activity != null) { + if (arrayOfString == null) + return; + } else { + return; + } + } + a1.a(activity, arrayOfString, nativeModuleCallback); + } + }); + } + return null; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\d\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/d/b.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/d/b.java new file mode 100644 index 0000000..d1b5257 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/d/b.java @@ -0,0 +1,78 @@ +package com.ss.android.ugc.aweme.miniapp.d; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.text.TextUtils; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.NativeModule; +import org.json.JSONObject; + +public final class b extends NativeModule { + public b(AppbrandContext paramAppbrandContext) { + super(paramAppbrandContext); + } + + public final String getName() { + return "DMTshowModal"; + } + + public final String invoke(String paramString, NativeModule.NativeModuleCallback paramNativeModuleCallback) { + try { + JSONObject jSONObject = new JSONObject(paramString); + String str1 = jSONObject.optString("title"); + String str2 = jSONObject.optString("content"); + String str3 = jSONObject.optString("confirmText"); + if (jSONObject.optBoolean("showCancel")) { + paramString = jSONObject.optString("cancelText"); + } else { + paramString = ""; + } + String str5 = jSONObject.optString("confirmColor"); + String str4 = jSONObject.optString("cancelColor"); + if (TextUtils.isEmpty(str2) && TextUtils.isEmpty(str1)) { + AppBrandLogger.e("tma_DialogImpl", new Object[] { "empty" }); + return null; + } + AppbrandContext.mainHandler.post(new Runnable(this, str1, str2, paramString, str4, str3, str5, paramNativeModuleCallback) { + public final void run() { + b b1 = this.h; + String str1 = this.a; + String str2 = this.b; + String str3 = this.c; + String str4 = this.d; + str4 = this.e; + String str5 = this.f; + NativeModule.NativeModuleCallback nativeModuleCallback = this.g; + Activity activity = b1.getCurrentActivity(); + if (activity != null) + (new AlertDialog.Builder((Context)activity, 2097807360)).setMessage(str2).setTitle(str1).setNegativeButton(str3, new DialogInterface.OnClickListener(b1, nativeModuleCallback) { + public final void onClick(DialogInterface param1DialogInterface, int param1Int) { + NativeModule.NativeModuleCallback nativeModuleCallback = this.a; + if (nativeModuleCallback != null) + nativeModuleCallback.onNativeModuleCall("0"); + } + }).setPositiveButton(str4, new DialogInterface.OnClickListener(b1, nativeModuleCallback) { + public final void onClick(DialogInterface param1DialogInterface, int param1Int) { + NativeModule.NativeModuleCallback nativeModuleCallback = this.a; + if (nativeModuleCallback != null) + nativeModuleCallback.onNativeModuleCall("1"); + } + }).create().show(); + } + }); + return null; + } catch (Exception exception) { + AppBrandLogger.e("tma_DialogImpl", new Object[] { "", exception }); + return null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\d\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/e.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/e.java new file mode 100644 index 0000000..299a702 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/e.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp; + +public final class e { + private static volatile d a; + + public static d a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/e + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/e.a : Lcom/ss/android/ugc/aweme/miniapp/d; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/d + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/e.a : Lcom/ss/android/ugc/aweme/miniapp/d; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/d + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/e.a : Lcom/ss/android/ugc/aweme/miniapp/d; + // 28: ldc com/ss/android/ugc/aweme/miniapp/d + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/d + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/e.a : Lcom/ss/android/ugc/aweme/miniapp/d; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/e + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/e + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/e/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/e/a.java new file mode 100644 index 0000000..654e762 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/e/a.java @@ -0,0 +1,11 @@ +package com.ss.android.ugc.aweme.miniapp.e; + +import com.ss.android.ugc.aweme.miniapp_api.services.b; + +public final class a implements b {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\e\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f.java new file mode 100644 index 0000000..b690055 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f.java @@ -0,0 +1,56 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.text.TextUtils; +import java.util.HashMap; +import java.util.Map; + +public final class f { + public Map a = new HashMap(); + + public static f a() { + return new f(); + } + + private f a(String paramString1, String paramString2, a parama) { + this.a.put(paramString1, parama.a(paramString2)); + return this; + } + + public final f a(String paramString1, String paramString2) { + return a(paramString1, paramString2, a.a); + } + + public static interface a { + public static final a a = new a() { + public final String a(String param2String) { + return (TextUtils.isEmpty(param2String) || "null".equals(param2String)) ? "" : param2String; + } + }; + + public static final a b = new a() { + public final String a(String param2String) { + return (TextUtils.isEmpty(param2String) || "null".equals(param2String) || "0".equals(param2String)) ? "" : param2String; + } + }; + + String a(String param1String); + } + + static final class null implements a { + public final String a(String param1String) { + return (TextUtils.isEmpty(param1String) || "null".equals(param1String)) ? "" : param1String; + } + } + + static final class null implements a { + public final String a(String param1String) { + return (TextUtils.isEmpty(param1String) || "null".equals(param1String) || "0".equals(param1String)) ? "" : param1String; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a.java new file mode 100644 index 0000000..090ae54 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a.java @@ -0,0 +1,58 @@ +package com.ss.android.ugc.aweme.miniapp.f; + +import com.google.gson.g; +import com.google.gson.l; +import com.google.gson.o; +import com.google.gson.q; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.ISyncHostDataHandler; +import org.json.JSONObject; + +public final class a implements ISyncHostDataHandler { + public final CrossProcessDataEntity action(CrossProcessDataEntity paramCrossProcessDataEntity) { + JSONObject jSONObject; + if (paramCrossProcessDataEntity == null) + return null; + String str = paramCrossProcessDataEntity.getString("logEventVersion"); + if ("V3".equals(str)) { + str = paramCrossProcessDataEntity.getString("logEventName"); + jSONObject = paramCrossProcessDataEntity.getJSONObject("logEventData"); + if (jSONObject != null) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(str); + stringBuilder.append("=============================\n"); + String str1 = stringBuilder.toString(); + String str2 = jSONObject.toString(); + o o = (new q()).a(str2).m(); + AppBrandLogger.i("AppLogHandler", new Object[] { str1, (new g()).b().d().a((l)o) }); + } + MiniAppService.inst().getMonitorDepend().b(str, jSONObject); + return null; + } + if ("V1".equals(str)) { + str = jSONObject.getString("category"); + String str1 = jSONObject.getString("tag"); + String str2 = jSONObject.getString("label"); + long l1 = jSONObject.getLong("value"); + long l2 = jSONObject.getLong("ext_value"); + jSONObject = jSONObject.getJSONObject("ext_json"); + MiniAppService.inst().getMonitorDepend().b(null, str, str1, str2, l1, l2, jSONObject); + AppBrandLogger.i("AppLogHandler", new Object[] { + "category", str, "tag", str1, "label", str2, "value", Long.valueOf(l1), "ext_value", Long.valueOf(l2), + "ext_json", jSONObject }); + } + return null; + } + + public final String getType() { + return "actionLog"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/a.java new file mode 100644 index 0000000..0521b6b --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/a.java @@ -0,0 +1,25 @@ +package com.ss.android.ugc.aweme.miniapp.f.a; + +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; + +public final class a { + public static CrossProcessDataEntity a(CrossProcessDataEntity paramCrossProcessDataEntity) { + if (paramCrossProcessDataEntity == null) + return null; + try { + MiniAppService.inst().getMonitorDepend().a(null, paramCrossProcessDataEntity.getString("category"), paramCrossProcessDataEntity.getString("logEventName"), paramCrossProcessDataEntity.getString("labelName"), paramCrossProcessDataEntity.getLong("logVIValue"), paramCrossProcessDataEntity.getLong("logVIExtValue"), paramCrossProcessDataEntity.getJSONObject("logEventData")); + return null; + } catch (Exception exception) { + AppBrandLogger.stacktrace(5, "AppV1LogHandler", exception.getStackTrace()); + return null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/b.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/b.java new file mode 100644 index 0000000..1a791dd --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/b.java @@ -0,0 +1,33 @@ +package com.ss.android.ugc.aweme.miniapp.f.a; + +import android.content.Context; +import android.text.TextUtils; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.IAsyncHostDataHandler; +import com.tt.miniapphost.process.helper.AsyncIpcHandler; +import com.tt.miniapphost.util.DebugUtil; + +public final class b implements IAsyncHostDataHandler { + public b(Context paramContext) {} + + public final void action(CrossProcessDataEntity paramCrossProcessDataEntity, AsyncIpcHandler paramAsyncIpcHandler) { + if (paramCrossProcessDataEntity == null) { + DebugUtil.outputError("HostActionAsyncHandler", new Object[] { "callData == null" }); + return; + } + String str = paramCrossProcessDataEntity.getString("hostActionType"); + paramCrossProcessDataEntity.getCrossProcessDataEntity("hostActionData"); + if (TextUtils.isEmpty(str)) + DebugUtil.outputError("HostActionAsyncHandler", new Object[] { "TextUtils.isEmpty(hostCallType)" }); + } + + public final String getType() { + return "hostActionAsync"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/c.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/c.java new file mode 100644 index 0000000..51b689f --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/c.java @@ -0,0 +1,441 @@ +package com.ss.android.ugc.aweme.miniapp.f.a; + +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.ISyncHostDataHandler; +import org.json.JSONObject; + +public final class c implements ISyncHostDataHandler { + private a a = new a(); + + public static void a(String paramString1, String paramString2, String paramString3, long paramLong1, long paramLong2, JSONObject paramJSONObject) { + HostProcessBridge.hostActionSync("actionVILog", CrossProcessDataEntity.Builder.create().put("category", paramString1).put("logEventName", paramString2).put("labelName", paramString3).put("logVIValue", Long.valueOf(paramLong1)).put("logVIExtValue", Long.valueOf(0L)).put("logEventData", paramJSONObject).build()); + } + + public final CrossProcessDataEntity action(CrossProcessDataEntity paramCrossProcessDataEntity) { + // Byte code: + // 0: iconst_0 + // 1: istore_3 + // 2: aload_1 + // 3: ifnonnull -> 22 + // 6: ldc 'HostActionSyncHandler' + // 8: iconst_1 + // 9: anewarray java/lang/Object + // 12: dup + // 13: iconst_0 + // 14: ldc 'callData == null' + // 16: aastore + // 17: invokestatic outputError : (Ljava/lang/String;[Ljava/lang/Object;)V + // 20: aconst_null + // 21: areturn + // 22: aload_1 + // 23: ldc 'hostActionType' + // 25: invokevirtual getString : (Ljava/lang/String;)Ljava/lang/String; + // 28: astore #6 + // 30: aload_1 + // 31: ldc 'hostActionData' + // 33: invokevirtual getCrossProcessDataEntity : (Ljava/lang/String;)Lcom/tt/miniapphost/process/data/CrossProcessDataEntity; + // 36: astore_1 + // 37: aload #6 + // 39: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 42: ifeq -> 61 + // 45: ldc 'HostActionSyncHandler' + // 47: iconst_1 + // 48: anewarray java/lang/Object + // 51: dup + // 52: iconst_0 + // 53: ldc 'TextUtils.isEmpty(hostCallType)' + // 55: aastore + // 56: invokestatic outputError : (Ljava/lang/String;[Ljava/lang/Object;)V + // 59: aconst_null + // 60: areturn + // 61: iconst_m1 + // 62: istore_2 + // 63: aload #6 + // 65: invokevirtual hashCode : ()I + // 68: lookupswitch default -> 136, -1801325650 -> 230, 41118167 -> 215, 337629329 -> 199, 384954139 -> 184, 1270009270 -> 169, 1574122267 -> 154, 1657545787 -> 139 + // 136: goto -> 242 + // 139: aload #6 + // 141: ldc 'login_state' + // 143: invokevirtual equals : (Ljava/lang/Object;)Z + // 146: ifeq -> 242 + // 149: iconst_5 + // 150: istore_2 + // 151: goto -> 242 + // 154: aload #6 + // 156: ldc 'actionVILog' + // 158: invokevirtual equals : (Ljava/lang/Object;)Z + // 161: ifeq -> 242 + // 164: iconst_0 + // 165: istore_2 + // 166: goto -> 242 + // 169: aload #6 + // 171: ldc 'exciting_video_open_url' + // 173: invokevirtual equals : (Ljava/lang/Object;)Z + // 176: ifeq -> 242 + // 179: iconst_1 + // 180: istore_2 + // 181: goto -> 242 + // 184: aload #6 + // 186: ldc 'live_ad_web_url' + // 188: invokevirtual equals : (Ljava/lang/Object;)Z + // 191: ifeq -> 242 + // 194: iconst_3 + // 195: istore_2 + // 196: goto -> 242 + // 199: aload #6 + // 201: ldc 'micro_app_lifecycle' + // 203: invokevirtual equals : (Ljava/lang/Object;)Z + // 206: ifeq -> 242 + // 209: bipush #6 + // 211: istore_2 + // 212: goto -> 242 + // 215: aload #6 + // 217: ldc 'share_info_params' + // 219: invokevirtual equals : (Ljava/lang/Object;)Z + // 222: ifeq -> 242 + // 225: iconst_4 + // 226: istore_2 + // 227: goto -> 242 + // 230: aload #6 + // 232: ldc 'mini_app_ad_web_url' + // 234: invokevirtual equals : (Ljava/lang/Object;)Z + // 237: ifeq -> 242 + // 240: iconst_2 + // 241: istore_2 + // 242: iload_2 + // 243: tableswitch default -> 284, 0 -> 913, 1 -> 475, 2 -> 402, 3 -> 374, 4 -> 354, 5 -> 308, 6 -> 286 + // 284: aconst_null + // 285: areturn + // 286: invokestatic b : ()Lcom/ss/android/ugc/aweme/miniapp_api/services/c; + // 289: getfield d : Lcom/ss/android/ugc/aweme/miniapp_api/b/b/a; + // 292: ifnull -> 918 + // 295: invokestatic b : ()Lcom/ss/android/ugc/aweme/miniapp_api/services/c; + // 298: getfield d : Lcom/ss/android/ugc/aweme/miniapp_api/b/b/a; + // 301: invokeinterface a : ()V + // 306: aconst_null + // 307: areturn + // 308: aload_1 + // 309: ldc 'login_state_value' + // 311: invokevirtual getString : (Ljava/lang/String;)Ljava/lang/String; + // 314: astore_1 + // 315: getstatic com/ss/android/ugc/aweme/miniapp/b.b : Lcom/ss/android/ugc/aweme/miniapp/b$a; + // 318: astore #6 + // 320: aload_1 + // 321: ldc '1' + // 323: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 326: ifeq -> 337 + // 329: aload #6 + // 331: iconst_1 + // 332: putfield a : Z + // 335: aconst_null + // 336: areturn + // 337: aload_1 + // 338: ldc '0' + // 340: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 343: ifeq -> 918 + // 346: aload #6 + // 348: iconst_0 + // 349: putfield a : Z + // 352: aconst_null + // 353: areturn + // 354: invokestatic a : ()Lcom/ss/android/ugc/aweme/miniapp_api/c; + // 357: getfield c : Ljava/lang/String; + // 360: astore_1 + // 361: invokestatic create : ()Lcom/tt/miniapphost/process/data/CrossProcessDataEntity$Builder; + // 364: ldc 'share_info_value' + // 366: aload_1 + // 367: invokevirtual put : (Ljava/lang/String;Ljava/lang/Object;)Lcom/tt/miniapphost/process/data/CrossProcessDataEntity$Builder; + // 370: invokevirtual build : ()Lcom/tt/miniapphost/process/data/CrossProcessDataEntity; + // 373: areturn + // 374: aload_1 + // 375: ldc 'hostActionData' + // 377: invokevirtual getString : (Ljava/lang/String;)Ljava/lang/String; + // 380: astore_1 + // 381: invokestatic inst : ()Lcom/ss/android/ugc/aweme/miniapp/MiniAppService; + // 384: invokevirtual getRouterDepend : ()Lcom/ss/android/ugc/aweme/miniapp_api/a/l; + // 387: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 390: invokevirtual getApplicationContext : ()Landroid/app/Application; + // 393: aload_1 + // 394: invokeinterface b : (Landroid/content/Context;Ljava/lang/String;)Z + // 399: pop + // 400: aconst_null + // 401: areturn + // 402: aload_1 + // 403: ldc 'hostActionData' + // 405: invokevirtual getString : (Ljava/lang/String;)Ljava/lang/String; + // 408: astore_1 + // 409: new org/json/JSONObject + // 412: dup + // 413: aload_1 + // 414: invokespecial : (Ljava/lang/String;)V + // 417: astore #7 + // 419: aload #7 + // 421: ldc 'web_url' + // 423: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 426: astore_1 + // 427: aload #7 + // 429: ldc 'web_title' + // 431: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 434: astore #6 + // 436: aload #7 + // 438: ldc 'target_class' + // 440: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 443: astore #7 + // 445: aload #7 + // 447: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 450: ifne -> 461 + // 453: invokestatic a : ()Lcom/ss/android/ugc/aweme/miniapp_api/c; + // 456: aload #7 + // 458: putfield d : Ljava/lang/String; + // 461: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 464: invokevirtual getApplicationContext : ()Landroid/app/Application; + // 467: aload_1 + // 468: aload #6 + // 470: invokestatic a : (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V + // 473: aconst_null + // 474: areturn + // 475: aload_1 + // 476: ldc 'hostActionData' + // 478: invokevirtual getString : (Ljava/lang/String;)Ljava/lang/String; + // 481: astore_1 + // 482: new org/json/JSONObject + // 485: dup + // 486: aload_1 + // 487: invokespecial : (Ljava/lang/String;)V + // 490: astore #12 + // 492: aload #12 + // 494: ldc 'open_url' + // 496: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 499: astore #6 + // 501: aload #12 + // 503: ldc 'web_url' + // 505: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 508: astore #7 + // 510: aload #12 + // 512: ldc 'web_title' + // 514: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 517: astore #8 + // 519: aload #12 + // 521: ldc 'log_extra' + // 523: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 526: astore #9 + // 528: aload #12 + // 530: ldc 'creative_id' + // 532: invokevirtual optLong : (Ljava/lang/String;)J + // 535: lstore #4 + // 537: aload #12 + // 539: ldc 'target_class' + // 541: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 544: astore_1 + // 545: aload #12 + // 547: ldc 'download_url' + // 549: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 552: astore #10 + // 554: aload #12 + // 556: ldc 'package_name' + // 558: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 561: astore #11 + // 563: aload #12 + // 565: ldc 'app_name' + // 567: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 570: astore #12 + // 572: aload_1 + // 573: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 576: ifne -> 586 + // 579: invokestatic a : ()Lcom/ss/android/ugc/aweme/miniapp_api/c; + // 582: aload_1 + // 583: putfield d : Ljava/lang/String; + // 586: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 589: invokevirtual getApplicationContext : ()Landroid/app/Application; + // 592: astore #13 + // 594: aload #13 + // 596: ifnull -> 918 + // 599: aload #6 + // 601: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 604: ifeq -> 612 + // 607: iload_3 + // 608: istore_2 + // 609: goto -> 868 + // 612: aload #6 + // 614: invokestatic parse : (Ljava/lang/String;)Landroid/net/Uri; + // 617: astore_1 + // 618: aload_1 + // 619: invokevirtual getScheme : ()Ljava/lang/String; + // 622: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 625: ifeq -> 633 + // 628: iload_3 + // 629: istore_2 + // 630: goto -> 868 + // 633: aload_1 + // 634: invokevirtual getScheme : ()Ljava/lang/String; + // 637: invokevirtual toLowerCase : ()Ljava/lang/String; + // 640: astore #14 + // 642: aload #14 + // 644: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 647: ifeq -> 655 + // 650: iload_3 + // 651: istore_2 + // 652: goto -> 868 + // 655: invokestatic inst : ()Lcom/ss/android/ugc/aweme/miniapp/MiniAppService; + // 658: invokevirtual getRouterDepend : ()Lcom/ss/android/ugc/aweme/miniapp_api/a/l; + // 661: aload #13 + // 663: aload #6 + // 665: aload #14 + // 667: invokeinterface a : (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Z + // 672: ifeq -> 678 + // 675: goto -> 923 + // 678: new android/content/Intent + // 681: dup + // 682: ldc 'android.intent.action.VIEW' + // 684: invokespecial : (Ljava/lang/String;)V + // 687: astore #14 + // 689: aload #14 + // 691: aload_1 + // 692: invokevirtual setData : (Landroid/net/Uri;)Landroid/content/Intent; + // 695: pop + // 696: aload #13 + // 698: invokevirtual getPackageManager : ()Landroid/content/pm/PackageManager; + // 701: aload #14 + // 703: ldc 65536 + // 705: invokevirtual queryIntentActivities : (Landroid/content/Intent;I)Ljava/util/List; + // 708: astore_1 + // 709: aload_1 + // 710: ifnull -> 928 + // 713: aload_1 + // 714: invokeinterface size : ()I + // 719: ifle -> 928 + // 722: iconst_1 + // 723: istore_2 + // 724: goto -> 930 + // 727: aload #6 + // 729: astore_1 + // 730: aload #6 + // 732: ldc_w '__back_url__' + // 735: invokevirtual contains : (Ljava/lang/CharSequence;)Z + // 738: ifeq -> 788 + // 741: aload #6 + // 743: ldc_w '__back_url__' + // 746: getstatic com/ss/android/ugc/aweme/miniapp/a/a.b : Ljava/lang/String; + // 749: invokestatic encode : (Ljava/lang/String;)Ljava/lang/String; + // 752: invokevirtual replace : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + // 755: astore_1 + // 756: aload #14 + // 758: aload_1 + // 759: invokestatic parse : (Ljava/lang/String;)Landroid/net/Uri; + // 762: invokevirtual setData : (Landroid/net/Uri;)Landroid/content/Intent; + // 765: pop + // 766: invokestatic inst : ()Lcom/ss/android/ugc/aweme/miniapp/MiniAppService; + // 769: invokevirtual getBaseLibDepend : ()Lcom/ss/android/ugc/aweme/miniapp_api/a/c; + // 772: new com/ss/android/ugc/aweme/miniapp/a/a$1 + // 775: dup + // 776: lload #4 + // 778: aload #9 + // 780: invokespecial : (JLjava/lang/String;)V + // 783: invokeinterface b : (Ljava/lang/Runnable;)V + // 788: aload #14 + // 790: ldc 'open_url' + // 792: aload_1 + // 793: invokevirtual putExtra : (Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; + // 796: pop + // 797: aload #13 + // 799: aload #14 + // 801: invokevirtual startActivity : (Landroid/content/Intent;)V + // 804: iconst_1 + // 805: istore_2 + // 806: goto -> 936 + // 809: aload #13 + // 811: ldc_w 'open_url_app' + // 814: lload #4 + // 816: aload #9 + // 818: invokestatic a : (Landroid/content/Context;Ljava/lang/String;JLjava/lang/String;)V + // 821: new com/ss/android/ugc/aweme/miniapp/a/a$2 + // 824: dup + // 825: aload #13 + // 827: lload #4 + // 829: aload #9 + // 831: invokespecial : (Landroid/content/Context;JLjava/lang/String;)V + // 834: astore_1 + // 835: invokestatic inst : ()Lcom/ss/android/ugc/aweme/miniapp/MiniAppService; + // 838: invokevirtual getBaseLibDepend : ()Lcom/ss/android/ugc/aweme/miniapp_api/a/c; + // 841: ldc2_w 5000 + // 844: new com/ss/android/ugc/aweme/miniapp/a/a$3 + // 847: dup + // 848: invokespecial : ()V + // 851: new com/ss/android/ugc/aweme/miniapp/a/a$4 + // 854: dup + // 855: aload_1 + // 856: invokespecial : (Lcom/ss/android/ugc/aweme/miniapp/a/a$a;)V + // 859: iconst_0 + // 860: invokeinterface a : (JLcom/ss/android/ugc/aweme/miniapp_api/b/a/a;Lcom/ss/android/ugc/aweme/miniapp_api/b/a/b;Z)V + // 865: goto -> 923 + // 868: iload_2 + // 869: ifne -> 918 + // 872: invokestatic inst : ()Lcom/ss/android/ugc/aweme/miniapp/MiniAppService; + // 875: invokevirtual getRouterDepend : ()Lcom/ss/android/ugc/aweme/miniapp_api/a/l; + // 878: aload #13 + // 880: aload #7 + // 882: aload #8 + // 884: aload #9 + // 886: lload #4 + // 888: aload #10 + // 890: aload #11 + // 892: aload #12 + // 894: invokeinterface a : (Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + // 899: aload #13 + // 901: ldc_w 'open_url_h5' + // 904: lload #4 + // 906: aload #9 + // 908: invokestatic a : (Landroid/content/Context;Ljava/lang/String;JLjava/lang/String;)V + // 911: aconst_null + // 912: areturn + // 913: aload_1 + // 914: invokestatic a : (Lcom/tt/miniapphost/process/data/CrossProcessDataEntity;)Lcom/tt/miniapphost/process/data/CrossProcessDataEntity; + // 917: areturn + // 918: aconst_null + // 919: areturn + // 920: astore_1 + // 921: aconst_null + // 922: areturn + // 923: iconst_1 + // 924: istore_2 + // 925: goto -> 868 + // 928: iconst_0 + // 929: istore_2 + // 930: iload_2 + // 931: ifne -> 727 + // 934: iconst_0 + // 935: istore_2 + // 936: iload_2 + // 937: ifne -> 809 + // 940: iload_3 + // 941: istore_2 + // 942: goto -> 868 + // Exception table: + // from to target type + // 409 461 920 org/json/JSONException + // 461 473 920 org/json/JSONException + // 482 586 920 org/json/JSONException + // 586 594 920 org/json/JSONException + // 599 607 920 org/json/JSONException + // 612 628 920 org/json/JSONException + // 633 650 920 org/json/JSONException + // 655 675 920 org/json/JSONException + // 678 709 920 org/json/JSONException + // 713 722 920 org/json/JSONException + // 730 788 920 org/json/JSONException + // 788 804 920 org/json/JSONException + // 809 865 920 org/json/JSONException + // 872 911 920 org/json/JSONException + } + + public final String getType() { + return "hostActionSync"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\a\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/d.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/d.java new file mode 100644 index 0000000..e447887 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/d.java @@ -0,0 +1,61 @@ +package com.ss.android.ugc.aweme.miniapp.f.a; + +import android.app.Application; +import android.content.Context; +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.ISyncHostDataHandler; + +public final class d implements ISyncHostDataHandler { + public final CrossProcessDataEntity action(CrossProcessDataEntity paramCrossProcessDataEntity) { + if (paramCrossProcessDataEntity == null) { + AppBrandLogger.e("TmaLifecyleHandler", new Object[] { "callData == null" }); + return null; + } + AppbrandContext.mainHandler.post(new Runnable(this, paramCrossProcessDataEntity) { + public final void run() { + try { + Application application = AppbrandContext.getInst().getApplicationContext(); + String str1 = this.a.getString("activityLifecycle"); + String str2 = this.a.getString("activityName"); + int i = this.a.getInt("hashcode"); + if (!TextUtils.isEmpty(str1) && !TextUtils.isEmpty(str2) && application != null) { + StringBuilder stringBuilder = new StringBuilder("lifecycle "); + stringBuilder.append(str1); + stringBuilder.append(" "); + stringBuilder.append(str2); + AppBrandLogger.d("TmaLifecyleHandler", new Object[] { stringBuilder.toString() }); + if (TextUtils.equals("onResume", str1)) { + MiniAppService.inst().getMonitorDepend().b((Context)application, str2, i); + return; + } + if (TextUtils.equals("onPause", str1)) { + MiniAppService.inst().getMonitorDepend().a((Context)application, str2, i); + return; + } + if (TextUtils.equals("onCreate", str1)) + MiniAppService.inst().getMonitorDepend().a(str2); + } + return; + } catch (Exception exception) { + AppBrandLogger.e("TmaLifecyleHandler", new Object[] { exception }); + return; + } + } + }); + return null; + } + + public final String getType() { + return "tmaLifecycle"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\a\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/e.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/e.java new file mode 100644 index 0000000..da7e787 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/a/e.java @@ -0,0 +1,45 @@ +package com.ss.android.ugc.aweme.miniapp.f.a; + +import android.text.TextUtils; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.IAsyncHostDataHandler; +import com.tt.miniapphost.process.helper.AsyncIpcHandler; +import org.json.JSONObject; + +public final class e implements IAsyncHostDataHandler { + public final void action(CrossProcessDataEntity paramCrossProcessDataEntity, AsyncIpcHandler paramAsyncIpcHandler) { + if (paramCrossProcessDataEntity == null) { + paramAsyncIpcHandler.callback(null); + return; + } + try { + JSONObject jSONObject = new JSONObject(paramCrossProcessDataEntity.getString("apiData")); + String str = jSONObject.optString("action"); + jSONObject.getString("userId"); + paramCrossProcessDataEntity.getString("ttId"); + if (!TextUtils.equals(str, "follow")) { + TextUtils.equals(str, "unfollow"); + return; + } + } catch (Exception exception) { + try { + AppBrandLogger.e("UserRelationHandler", new Object[] { "", exception }); + return; + } catch (Exception exception1) { + AppBrandLogger.e("UserRelationHandler", new Object[] { "", exception1 }); + paramAsyncIpcHandler.callback(null); + } + } + } + + public final String getType() { + return "handleUserRelation"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\a\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/b.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/b.java new file mode 100644 index 0000000..fa5a443 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/b.java @@ -0,0 +1,46 @@ +package com.ss.android.ugc.aweme.miniapp.f; + +import android.app.Application; +import android.content.Context; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.ISyncHostDataHandler; +import org.json.JSONObject; + +public final class b implements ISyncHostDataHandler { + public final CrossProcessDataEntity action(CrossProcessDataEntity paramCrossProcessDataEntity) { + if (paramCrossProcessDataEntity == null) + return null; + Application application2 = AppbrandContext.getInst().getApplicationContext(); + Application application1 = application2; + if (application2 == null) + application1 = MiniAppService.inst().getApplication(); + if (application1 == null) { + AppBrandLogger.d("AppLogMiscHandler", new Object[] { "context null,abort" }); + return null; + } + String str = paramCrossProcessDataEntity.getString("logEventName"); + JSONObject jSONObject = paramCrossProcessDataEntity.getJSONObject("logEventData"); + if (str != null && jSONObject != null) { + MiniAppService.inst().getBaseLibDepend().a((Context)application1, str, jSONObject); + StringBuilder stringBuilder = new StringBuilder("event name:"); + stringBuilder.append(str); + stringBuilder.append(",event val:"); + stringBuilder.append(jSONObject.toString()); + AppBrandLogger.d("AppLogMiscHandler", new Object[] { stringBuilder.toString() }); + } + return null; + } + + public final String getType() { + return "actionMiscAppLog"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/c.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/c.java new file mode 100644 index 0000000..68de64d --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/c.java @@ -0,0 +1,36 @@ +package com.ss.android.ugc.aweme.miniapp.f; + +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.ISyncHostDataHandler; +import org.json.JSONObject; + +public final class c implements ISyncHostDataHandler { + public final CrossProcessDataEntity action(CrossProcessDataEntity paramCrossProcessDataEntity) { + if (paramCrossProcessDataEntity == null) + return null; + String str = paramCrossProcessDataEntity.getString("mpMonitorServiceName"); + int i = paramCrossProcessDataEntity.getInt("mpMonitorStatusCode"); + JSONObject jSONObject = paramCrossProcessDataEntity.getJSONObject("mpMonitorData"); + if (!TextUtils.isEmpty(str)) + try { + MiniAppService.inst().getMonitorDepend().a(str, i, jSONObject); + return null; + } catch (Exception exception) { + AppBrandLogger.e("AppbrandMonitorHandler", new Object[] { exception }); + } + return null; + } + + public final String getType() { + return "appBrandMonitor"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/d.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/d.java new file mode 100644 index 0000000..cb5a151 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/d.java @@ -0,0 +1,22 @@ +package com.ss.android.ugc.aweme.miniapp.f; + +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.ISyncHostDataHandler; + +public final class d implements ISyncHostDataHandler { + public final CrossProcessDataEntity action(CrossProcessDataEntity paramCrossProcessDataEntity) { + String str = MiniAppService.inst().getBaseLibDepend().g(); + return CrossProcessDataEntity.Builder.create().put("loginCookie", str).build(); + } + + public final String getType() { + return "getLoginCookie"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/e.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/e.java new file mode 100644 index 0000000..2fb36ea --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/e.java @@ -0,0 +1,37 @@ +package com.ss.android.ugc.aweme.miniapp.f; + +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.ISyncHostDataHandler; +import java.util.HashMap; +import java.util.Map; +import org.json.JSONObject; + +public final class e implements ISyncHostDataHandler { + public final CrossProcessDataEntity action(CrossProcessDataEntity paramCrossProcessDataEntity) { + JSONObject jSONObject = new JSONObject(); + HashMap hashMap = new HashMap(); + MiniAppService.inst().getNetWorkDepend().a(hashMap, true); + for (Map.Entry entry : hashMap.entrySet()) { + if (entry != null) + try { + if (entry.getKey() != null && entry.getValue() != null) + jSONObject.put((String)entry.getKey(), entry.getValue()); + } catch (Exception exception) { + AppBrandLogger.stacktrace(5, "GetNetCommonParamsHandler", exception.getStackTrace()); + } + } + return CrossProcessDataEntity.Builder.create().put("netCommonParams", jSONObject).build(); + } + + public final String getType() { + return "getNetCommonParams"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/f.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/f.java new file mode 100644 index 0000000..f2c1bf8 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/f.java @@ -0,0 +1,43 @@ +package com.ss.android.ugc.aweme.miniapp.f; + +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp_api.a.g; +import com.ss.android.ugc.aweme.miniapp_api.model.c; +import com.ss.android.ugc.aweme.miniapp_api.model.j; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.ISyncHostDataHandler; +import java.util.HashMap; +import java.util.Locale; +import org.json.JSONObject; + +public final class f implements ISyncHostDataHandler { + public final CrossProcessDataEntity action(CrossProcessDataEntity paramCrossProcessDataEntity) { + c c = MiniAppService.inst().getBaseLibDepend().i(); + j j = MiniAppService.inst().getBaseLibDepend().h(); + String str1 = c.b; + boolean bool = c.a; + String str2 = Locale.getDefault().getLanguage(); + String str3 = Locale.getDefault().getCountry(); + String str4 = MiniAppService.inst().getBaseLibDepend().e(); + String str5 = MiniAppService.inst().getBaseLibDepend().f(); + if (TextUtils.isEmpty(str4)) { + HashMap hashMap = new HashMap(); + hashMap.put("cookies", str5); + g g = MiniAppService.inst().getMonitorDepend(); + if (g != null) + g.a("mini_app_session", new JSONObject(hashMap)); + } + return CrossProcessDataEntity.Builder.create().put("avatarUrl", str1).put("nickName", j.a).put("gender", j.d).put("language", str2).put("country", str3).put("sec_uid", j.c).put("isLogin", Boolean.valueOf(bool)).put("userId", j.b).put("sessionId", str4).build(); + } + + public final String getType() { + return "getUserInfo"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\f.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/g.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/g.java new file mode 100644 index 0000000..c5381d2 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/g.java @@ -0,0 +1,79 @@ +package com.ss.android.ugc.aweme.miniapp.f; + +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp_api.b.b; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.IAsyncHostDataHandler; +import com.tt.miniapphost.process.helper.AsyncIpcHandler; + +public class g implements IAsyncHostDataHandler { + public static boolean a; + + public static final String b = g.class.getSimpleName(); + + private static b c; + + public void action(CrossProcessDataEntity paramCrossProcessDataEntity, AsyncIpcHandler paramAsyncIpcHandler) { + byte b1; + CrossProcessDataEntity crossProcessDataEntity = CrossProcessDataEntity.Builder.create().build(); + String str = paramCrossProcessDataEntity.getString("live_stream_action"); + switch (str.hashCode()) { + default: + b1 = -1; + break; + case 1935018183: + if (str.equals("unregister_live_stream_end_listener")) { + b1 = 3; + break; + } + case 782245952: + if (str.equals("register_live_stream_end_listener")) { + b1 = 2; + break; + } + case 23018858: + if (str.equals("pause_live_stream")) { + b1 = 0; + break; + } + case -1541913311: + if (str.equals("resume_live_stream")) { + b1 = 1; + break; + } + } + if (b1 != 0) { + if (b1 != 1) { + if (b1 != 2) { + if (b1 != 3) + return; + MiniAppService.inst().getBaseLibDepend(); + paramAsyncIpcHandler.callback(crossProcessDataEntity); + a = false; + return; + } + c = new b(this, paramAsyncIpcHandler, crossProcessDataEntity) { + + }; + MiniAppService.inst().getBaseLibDepend(); + a = true; + return; + } + MiniAppService.inst().getBaseLibDepend(); + paramAsyncIpcHandler.callback(crossProcessDataEntity); + return; + } + MiniAppService.inst().getBaseLibDepend(); + paramAsyncIpcHandler.callback(crossProcessDataEntity); + } + + public String getType() { + return "live_window_event"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\g.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/h.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/h.java new file mode 100644 index 0000000..df09dad --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/h.java @@ -0,0 +1,70 @@ +package com.ss.android.ugc.aweme.miniapp.f; + +import android.app.Activity; +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp_api.d; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.ISyncHostDataHandler; +import org.json.JSONObject; + +public final class h implements ISyncHostDataHandler { + public final CrossProcessDataEntity action(CrossProcessDataEntity paramCrossProcessDataEntity) { + if (paramCrossProcessDataEntity == null) { + AppBrandLogger.e("MiniAppLifecycleHandler", new Object[] { "callData == null)" }); + return null; + } + String str = paramCrossProcessDataEntity.getString("miniAppLifecycle"); + if (TextUtils.isEmpty(str)) { + AppBrandLogger.e("MiniAppLifecycleHandler", new Object[] { "TextUtils.isEmpty(miniAppLifecycle)" }); + return null; + } + byte b = -1; + try { + Activity activity; + int i = str.hashCode(); + if (i != 3417674) { + if (i == 94756344 && str.equals("close")) + b = 1; + } else { + boolean bool = str.equals("open"); + if (bool) + b = 0; + } + if (b != 0) { + if (b != 1) + return null; + if (TextUtils.equals(paramCrossProcessDataEntity.getJSONObject("jsonData").getString("miniAppStopReason"), "click_close_btn") && MiniAppService.inst().getRouterDepend().d()) { + activity = MiniAppService.inst().getRouterDepend().c(); + if (activity != null) { + MiniAppService.inst().getRouterDepend().a(activity); + MiniAppService.inst().getRouterDepend().e(); + } + } + if (g.a) { + MiniAppService.inst().getBaseLibDepend(); + return null; + } + } else { + JSONObject jSONObject = activity.getJSONObject("jsonData"); + boolean bool = jSONObject.getBoolean("isGame"); + d.a("", jSONObject.getString("miniAppId"), bool, ""); + return null; + } + } catch (Exception exception) { + AppBrandLogger.e("MiniAppLifecycleHandler", new Object[] { "action", exception }); + } + return null; + } + + public final String getType() { + return "miniAppLifecycle"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\h.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/i.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/i.java new file mode 100644 index 0000000..88b7075 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/i.java @@ -0,0 +1,38 @@ +package com.ss.android.ugc.aweme.miniapp.f; + +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp_api.b.e; +import com.ss.android.ugc.aweme.miniapp_api.model.a.a; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.IAsyncHostDataHandler; +import com.tt.miniapphost.process.helper.AsyncIpcHandler; +import org.json.JSONObject; + +public class i implements IAsyncHostDataHandler { + public static final String a = i.class.getSimpleName(); + + public void action(CrossProcessDataEntity paramCrossProcessDataEntity, AsyncIpcHandler paramAsyncIpcHandler) { + JSONObject jSONObject = paramCrossProcessDataEntity.getJSONObject("jsonData"); + String str1 = jSONObject.optString("micro_app_id"); + String str2 = jSONObject.optString("hashTagName"); + int j = jSONObject.optInt("cursor"); + String str3 = jSONObject.optString("type"); + e e = new e(this, paramAsyncIpcHandler) { + public final void a(a param1a) { + CrossProcessDataEntity crossProcessDataEntity = CrossProcessDataEntity.Builder.create().put("apiData", param1a.getMessage()).build(); + this.a.callback(crossProcessDataEntity, true); + } + }; + MiniAppService.inst().getBaseLibDepend().a(str3, str1, str2, j, e); + } + + public String getType() { + return "request_game_video"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\i.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/j.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/j.java new file mode 100644 index 0000000..cc44c21 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/f/j.java @@ -0,0 +1,26 @@ +package com.ss.android.ugc.aweme.miniapp.f; + +import android.content.Context; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; + +public class j { + public static final String a = j.class.getSimpleName(); + + public static String a(Context paramContext) { + paramContext.getApplicationContext(); + try { + return HostProcessBridge.hostActionSync("share_info_params", CrossProcessDataEntity.Builder.create().build()).getString("share_info_value"); + } catch (Exception exception) { + AppBrandLogger.e(a, new Object[] { "getShareParams", exception }); + return ""; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\f\j.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/facialverify/OnePixelFacialVerifyActivity.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/facialverify/OnePixelFacialVerifyActivity.java new file mode 100644 index 0000000..15dfc36 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/facialverify/OnePixelFacialVerifyActivity.java @@ -0,0 +1,80 @@ +package com.ss.android.ugc.aweme.miniapp.facialverify; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.b; +import android.view.Window; +import android.view.WindowManager; +import com.bytedance.apm.agent.v2.instrumentation.ActivityAgent; +import com.ss.android.ugc.aweme.miniapp.BaseActivity; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.AppBrandLogger; + +public class OnePixelFacialVerifyActivity extends BaseActivity { + public boolean a; + + private void a(int paramInt, String paramString1, String paramString2) { + Intent intent = new Intent(); + intent.putExtra("req_order_no", paramString2); + intent.putExtra("err_code", paramInt); + intent.putExtra("err_msg", paramString1); + setResult(-1, intent); + } + + protected void onCreate(Bundle paramBundle) { + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.facialverify.OnePixelFacialVerifyActivity", "onCreate", true); + super.onCreate(paramBundle); + Window window = getWindow(); + window.setGravity(8388659); + WindowManager.LayoutParams layoutParams = window.getAttributes(); + layoutParams.x = 0; + layoutParams.y = 0; + layoutParams.height = 1; + layoutParams.width = 1; + window.setAttributes(layoutParams); + if (!(getIntent().getSerializableExtra("dataMap") instanceof java.util.HashMap)) { + AppBrandLogger.e("OnePixelFacialVerifyActivity", new Object[] { "dataMap is null or invalid" }); + a(9999, "internal error", ""); + finish(); + } else if (MiniAppService.inst().getFacialVerifyDepend() != null) { + new Object(this) { + + }; + } else { + AppBrandLogger.e("OnePixelFacialVerifyActivity", new Object[] { "facialVerify depend not ready" }); + a(9999, "internal error", ""); + finish(); + } + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.facialverify.OnePixelFacialVerifyActivity", "onCreate", false); + } + + protected void onRestart() { + super.onRestart(); + if (!this.a) { + if (b.a((Context)this, "android.permission.CAMERA") != 0) { + a(3000, "no camera permission", ""); + } else { + a(4998, "user cancel", ""); + } + finish(); + } + } + + public void onResume() { + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.facialverify.OnePixelFacialVerifyActivity", "onResume", true); + super.onResume(); + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.facialverify.OnePixelFacialVerifyActivity", "onResume", false); + } + + public void onWindowFocusChanged(boolean paramBoolean) { + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.facialverify.OnePixelFacialVerifyActivity", "onWindowFocusChanged", true); + super.onWindowFocusChanged(paramBoolean); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\facialverify\OnePixelFacialVerifyActivity.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g.java new file mode 100644 index 0000000..3c7735d --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g.java @@ -0,0 +1,15 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.content.Context; + +public interface g { + boolean a(Context paramContext, String paramString); + + boolean a(String paramString); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/a.java new file mode 100644 index 0000000..c7950f6 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/a.java @@ -0,0 +1,30 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import android.text.TextUtils; +import com.tt.option.v.a; +import java.util.HashMap; +import java.util.Map; + +public class a extends a { + private Map a; + + public String getScene(String paramString) { + if (this.a == null) { + this.a = new HashMap(); + this.a.put("in_mp", "021009"); + this.a.put("back_mp", "021010"); + this.a.put("desktop", "021020"); + } + String str = this.a.get(paramString); + paramString = str; + if (TextUtils.isEmpty(str)) + paramString = "0"; + return paramString; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/aa.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/aa.java new file mode 100644 index 0000000..9f011f4 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/aa.java @@ -0,0 +1,122 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import android.app.Activity; +import android.content.Context; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.os.Handler; +import android.os.Looper; +import android.support.v4.content.c; +import android.text.SpannableString; +import android.text.TextPaint; +import android.text.TextUtils; +import android.text.method.LinkMovementMethod; +import android.text.style.ClickableSpan; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.TextView; +import com.bytedance.common.utility.p; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.util.DevicesUtil; +import com.tt.miniapp.util.ToolUtils; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.FeignHostConfig; +import com.tt.option.y.a; + +public class aa extends a { + public void initFeignHostConfig(Context paramContext) { + FeignHostConfig feignHostConfig = FeignHostConfig.inst(); + feignHostConfig.setAppCapsuleDrawable((Drawable)new ColorDrawable(0)).setAppCapsuleBlackDrawable((Drawable)new ColorDrawable(0)).setAppLoadingCapsuleDrawable((Drawable)new ColorDrawable(0)).setAppCloseIconDrawable(c.a(paramContext, 2097479821)).setAppMoreMenuDrawable(c.a(paramContext, 2097479823)).setAppCloseIconBlackDrawable(c.a(paramContext, 2097479820)).setAppMoreMenuBlackDrawable(c.a(paramContext, 2097479822)).setAppLoadingCloseIconDrawable(c.a(paramContext, 2097479821)).setAppLoadingMoreMenuDrawable(c.a(paramContext, 2097479823)); + FrameLayout frameLayout = new FrameLayout(paramContext); + View view = LayoutInflater.from(paramContext).inflate(2097676361, null); + view.findViewById(2097545236).setVisibility(0); + Handler handler = new Handler(Looper.getMainLooper()); + feignHostConfig.setAppLaunchLoadingView((View)frameLayout).setAppLaunchLoadingListener(new FeignHostConfig.LaunchLoadingListener(this, frameLayout, view, handler, paramContext) { + public final void onLoadingEnd() { + if (Looper.getMainLooper() == Looper.myLooper()) { + this.a.removeView(this.b); + return; + } + this.c.post(new Runnable(this) { + public final void run() { + this.a.a.removeView(this.a.b); + } + }); + } + + public final void onLoadingFail(String param1String) { + ThreadUtil.runOnUIThread(new Runnable(this, param1String) { + public final void run() { + this.b.a.removeView(this.b.b); + aa aa = this.b.e; + Context context = this.b.d; + FrameLayout frameLayout = this.b.a; + String str = this.a; + if (context != null && frameLayout != null) { + if (TextUtils.isEmpty(str)) + return; + View view = LayoutInflater.from(context).inflate(2097676363, null); + FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(-1, -2); + layoutParams.gravity = 16; + view.setLayoutParams((ViewGroup.LayoutParams)layoutParams); + frameLayout.addView(view); + TextView textView = (TextView)frameLayout.findViewById(2097545497); + float f1 = DevicesUtil.getScreenWidth(context) - p.b(context, 66.0F) * 2.0F; + TextPaint textPaint = textView.getPaint(); + String str1 = context.getString(2097742068); + float f2 = textPaint.measureText(" "); + float f3 = textPaint.measureText(str); + if (textPaint.measureText(str1) < f1 - f3 % f1 - f2) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(str); + stringBuilder.append(" "); + stringBuilder.append(str1); + str = stringBuilder.toString(); + } else { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(str); + stringBuilder.append("\n"); + stringBuilder.append(str1); + str = stringBuilder.toString(); + } + SpannableString spannableString = new SpannableString(str); + spannableString.setSpan(new ClickableSpan(aa, context) { + public final void onClick(View param1View) { + ToolUtils.onActivityExit((Activity)AppbrandContext.getInst().getCurrentActivity(), 13); + } + + public final void updateDrawState(TextPaint param1TextPaint) { + param1TextPaint.setColor(c.c(this.a, 2097348697)); + param1TextPaint.setUnderlineText(false); + } + }str.length() - str1.length(), str.length(), 33); + textView.setHighlightColor(0); + textView.setText((CharSequence)spannableString); + textView.setMovementMethod(LinkMovementMethod.getInstance()); + } + } + }); + } + + public final void onLoadingStart() { + if (Looper.getMainLooper() == Looper.myLooper()) { + this.a.addView(this.b); + return; + } + this.c.post(new Runnable(this) { + public final void run() { + this.a.a.addView(this.a.b); + } + }); + } + }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\aa.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ab.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ab.java new file mode 100644 index 0000000..f14800c --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ab.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class ab { + private static volatile aa a; + + public static aa a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/ab + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/ab.a : Lcom/ss/android/ugc/aweme/miniapp/g/aa; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/aa + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/ab.a : Lcom/ss/android/ugc/aweme/miniapp/g/aa; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/aa + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/ab.a : Lcom/ss/android/ugc/aweme/miniapp/g/aa; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/aa + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/aa + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/ab.a : Lcom/ss/android/ugc/aweme/miniapp/g/aa; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/ab + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/ab + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\ab.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ac.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ac.java new file mode 100644 index 0000000..70a2b9a --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ac.java @@ -0,0 +1,198 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import com.ss.android.ugc.aweme.miniapp.pay.a; +import com.ss.android.ugc.aweme.miniapp.pay.a.a; +import com.ss.android.ugc.aweme.miniapp.pay.a.b; +import com.ss.android.ugc.aweme.miniapp.views.MainProcessProxyActivity; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.MiniappHostBase; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.entity.AppLaunchInfo; +import com.tt.miniapphost.entity.GamePayResultEntity; +import com.tt.miniapphost.process.callback.IpcCallback; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.util.ProcessUtil; +import com.tt.option.d; +import java.util.List; +import org.json.JSONException; +import org.json.JSONObject; + +public class ac extends d { + public boolean bindPhoneNumber(d.a parama) { + MiniappHostBase miniappHostBase = AppbrandContext.getInst().getCurrentActivity(); + if (miniappHostBase == null) { + parama.onBindPhoneResult(false); + return true; + } + Intent intent = new Intent((Context)miniappHostBase, MainProcessProxyActivity.class); + intent.putExtra("proxy_type", 5); + ProcessUtil.fillCrossProcessCallbackIntent(intent, new IpcCallback(this, parama) { + public final void onIpcCallback(CrossProcessDataEntity param1CrossProcessDataEntity) { + finishListenIpcCallback(); + if (param1CrossProcessDataEntity == null) { + this.a.onBindPhoneResult(false); + return; + } + this.a.onBindPhoneResult(param1CrossProcessDataEntity.getBoolean("bindPhoneNumberResult")); + } + }); + miniappHostBase.startActivity(intent); + return true; + } + + public boolean gamePay(Activity paramActivity, JSONObject paramJSONObject, String paramString) { + a a1 = a.a.a; + String str1 = paramJSONObject.optString("app_id"); + String str2 = paramJSONObject.optString("trade_no"); + String str3 = paramJSONObject.optString("merchant_id"); + String str4 = paramJSONObject.optString("_mark"); + b.a a = new b.a(); + a.b = str1; + a.c = str3; + a.a = str2; + a.d = str4; + b b = new b(); + b.statusBarColor = a.i; + b.loadingBgColor = a.j; + b.appId = a.b; + b.logParams = a.f; + b.merchantId = a.c; + b.orderId = a.a; + b.mark = a.d; + b.statusFontDark = a.h; + b.statusBarHeight = a.k; + b.hideNavbar = a.g; + b.from = a.e; + Intent intent = new Intent((Context)paramActivity, MainProcessProxyActivity.class); + StringBuilder stringBuilder = new StringBuilder("http://wallet.snssdk.com/douyin/cashdesk?order_id="); + stringBuilder.append(b.getOrderId()); + stringBuilder.append("&app_id="); + stringBuilder.append(b.getAppId()); + stringBuilder.append("&merchant_id="); + stringBuilder.append(b.getMerchantId()); + stringBuilder.append("&_mark="); + stringBuilder.append(b.getMark()); + stringBuilder.append("&_from="); + stringBuilder.append(b.getFrom()); + stringBuilder.append("&_log_params="); + stringBuilder.append(b.getLogParams()); + stringBuilder.append("&hide_nav_bar="); + stringBuilder.append(b.getHideNavbar()); + stringBuilder.append("&status_bar_color="); + stringBuilder.append(b.getStatusBarColor()); + stringBuilder.append("&status_font_dark="); + stringBuilder.append(b.getStatusFontDark()); + intent.putExtra("game_pay_url", stringBuilder.toString()); + intent.putExtra("proxy_type", 4); + paramActivity.startActivityForResult(intent, 100); + return true; + } + + public List getAppLaunchInfo() { + return null; + } + + public JSONObject getTmaFeatureConfig() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("tt_game_center_id", "ttacffda4233d51d45"); + return jSONObject; + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(6, "MyHostOptionLowPriorityDepend", jSONException.getStackTrace()); + return jSONObject; + } + } + + public GamePayResultEntity handleActivityGamePayResult(int paramInt1, int paramInt2, Intent paramIntent) { + GamePayResultEntity gamePayResultEntity = new GamePayResultEntity(); + if (paramInt1 == 100) { + if (paramInt2 == 0) { + gamePayResultEntity.setShouldHandle(true); + gamePayResultEntity.setCode(-2); + gamePayResultEntity.setMessage("cancelled"); + return gamePayResultEntity; + } + if (paramInt2 == -1) { + gamePayResultEntity.setShouldHandle(true); + if (paramIntent != null && paramIntent.hasExtra("pay_key_result_params")) { + a a = (a)paramIntent.getSerializableExtra("pay_key_result_params"); + paramInt1 = a.getCode(); + if (paramInt1 != 0) { + if (paramInt1 != 1) { + if (paramInt1 != 2) { + if (paramInt1 != 3) { + if (paramInt1 != 4) { + gamePayResultEntity.setCode(a.getCode()); + gamePayResultEntity.setMessage("unknown error"); + return gamePayResultEntity; + } + gamePayResultEntity.setCode(a.getCode()); + gamePayResultEntity.setMessage("pay checkout counter net error"); + return gamePayResultEntity; + } + gamePayResultEntity.setCode(a.getCode()); + gamePayResultEntity.setMessage("pay checkout counter trigger fail"); + return gamePayResultEntity; + } + gamePayResultEntity.setCode(-2); + gamePayResultEntity.setMessage("cancelled"); + return gamePayResultEntity; + } + gamePayResultEntity.setCode(-1); + gamePayResultEntity.setMessage("fail"); + return gamePayResultEntity; + } + gamePayResultEntity.setCode(0); + gamePayResultEntity.setMessage("success"); + } + } + } + return gamePayResultEntity; + } + + public boolean isEnableOpenSchemaAnimation() { + return true; + } + + public boolean isEnablePermissionSaveTest() { + return false; + } + + public boolean isEnableWebviewPreload() { + return true; + } + + public boolean isHideTitleMenuAboutItem() { + return true; + } + + public boolean isMediaPlaybackRequiresUserGesture() { + return false; + } + + public boolean isTitlebarMoreMenuVisible() { + boolean bool; + AppInfoEntity appInfoEntity = AppbrandApplicationImpl.getInst().getAppInfo(); + if (appInfoEntity == null || appInfoEntity.isGame()) { + bool = false; + } else { + bool = true; + } + return !bool; + } + + public String replaceProcessName(String paramString) { + return super.replaceProcessName(paramString); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\ac.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ad.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ad.java new file mode 100644 index 0000000..4467280 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ad.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class ad { + private static volatile ac a; + + public static ac a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/ad + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/ad.a : Lcom/ss/android/ugc/aweme/miniapp/g/ac; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/ac + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/ad.a : Lcom/ss/android/ugc/aweme/miniapp/g/ac; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/ac + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/ad.a : Lcom/ss/android/ugc/aweme/miniapp/g/ac; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/ac + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/ac + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/ad.a : Lcom/ss/android/ugc/aweme/miniapp/g/ac; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/ad + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/ad + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\ad.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ae.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ae.java new file mode 100644 index 0000000..00aac61 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/ae.java @@ -0,0 +1,26 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.IAsyncHostDataHandler; +import com.tt.miniapphost.process.helper.AsyncIpcHandler; + +public final class ae implements IAsyncHostDataHandler { + public final void action(CrossProcessDataEntity paramCrossProcessDataEntity, AsyncIpcHandler paramAsyncIpcHandler) { + long l1 = System.currentTimeMillis() / 1000L; + long l2 = System.currentTimeMillis() / 1000L; + MiniAppService.inst().getBaseLibDepend().a(l1 - 10800L, l2); + if (paramAsyncIpcHandler != null) + paramAsyncIpcHandler.callback(null); + } + + public final String getType() { + return "uploadAlog"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\ae.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/b.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/b.java new file mode 100644 index 0000000..f7098b7 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/b.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class b { + private static volatile a a; + + public static a a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/b + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/b.a : Lcom/ss/android/ugc/aweme/miniapp/g/a; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/a + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/b.a : Lcom/ss/android/ugc/aweme/miniapp/g/a; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/a + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/b.a : Lcom/ss/android/ugc/aweme/miniapp/g/a; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/a + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/a + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/b.a : Lcom/ss/android/ugc/aweme/miniapp/g/a; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/b + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/b + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/c.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/c.java new file mode 100644 index 0000000..32fa834 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/c.java @@ -0,0 +1,54 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import android.content.Context; +import com.ss.android.ugc.aweme.dfbase.c.f; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.option.k.a; +import com.tt.option.k.b; +import java.util.Locale; + +public class c extends a { + public final b a() { + return super.a(); + } + + public boolean doAppBundleSplitInstallAction(Context paramContext) { + f.a(paramContext); + return true; + } + + public Locale getInitLocale() { + Locale locale = MiniAppService.inst().getCurrentLocale(); + return (locale != null) ? locale : Locale.ENGLISH; + } + + public boolean isEnableAppBundleMode() { + return true; + } + + public boolean isEnableI18NRequestRefer() { + return true; + } + + public boolean isEnableI18nNetRequest() { + return true; + } + + public String replaceMicroAppCallName() { + return "Feature"; + } + + public String replaceOpenApiDomain() { + return "https://developer-sg.byteoversea.com"; + } + + public String replaceSnssdkApiDomain() { + return "https://sg-content.bytedance.net"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/d.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/d.java new file mode 100644 index 0000000..390ac29 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/d.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class d { + private static volatile c a; + + public static c a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/d + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/d.a : Lcom/ss/android/ugc/aweme/miniapp/g/c; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/c + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/d.a : Lcom/ss/android/ugc/aweme/miniapp/g/c; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/c + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/d.a : Lcom/ss/android/ugc/aweme/miniapp/g/c; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/c + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/c + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/d.a : Lcom/ss/android/ugc/aweme/miniapp/g/c; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/d + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/d + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/e.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/e.java new file mode 100644 index 0000000..11aba31 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/e.java @@ -0,0 +1,27 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import android.content.Context; +import com.tt.miniapp.liveplayer.ITTLivePlayer; +import com.tt.miniapphost.liveplayer.BDPLivePlayerFactory; +import com.tt.option.e.b; +import d.f.b.l; + +public final class e extends b { + public final ITTLivePlayer createLivePlayer(Context paramContext) { + if (paramContext != null) + return BDPLivePlayerFactory.Companion.createDefault(paramContext); + ITTLivePlayer iTTLivePlayer = super.createLivePlayer(paramContext); + l.a(iTTLivePlayer, "super.createLivePlayer(applicationContext)"); + return iTTLivePlayer; + } + + public final boolean isSupportNativeLivePlayer() { + return true; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/f.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/f.java new file mode 100644 index 0000000..53220ea --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/f.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class f { + private static volatile e a; + + public static e a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/f + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/f.a : Lcom/ss/android/ugc/aweme/miniapp/g/e; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/e + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/f.a : Lcom/ss/android/ugc/aweme/miniapp/g/e; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/e + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/f.a : Lcom/ss/android/ugc/aweme/miniapp/g/e; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/e + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/e + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/f.a : Lcom/ss/android/ugc/aweme/miniapp/g/e; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/f + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/f + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\f.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/g.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/g.java new file mode 100644 index 0000000..de53ea2 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/g.java @@ -0,0 +1,55 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import android.app.Application; +import android.content.Context; +import com.ss.android.ugc.aweme.miniapp.f.a; +import com.ss.android.ugc.aweme.miniapp.f.a.b; +import com.ss.android.ugc.aweme.miniapp.f.a.c; +import com.ss.android.ugc.aweme.miniapp.f.a.d; +import com.ss.android.ugc.aweme.miniapp.f.a.e; +import com.ss.android.ugc.aweme.miniapp.f.b; +import com.ss.android.ugc.aweme.miniapp.f.c; +import com.ss.android.ugc.aweme.miniapp.f.d; +import com.ss.android.ugc.aweme.miniapp.f.e; +import com.ss.android.ugc.aweme.miniapp.f.f; +import com.ss.android.ugc.aweme.miniapp.f.h; +import com.ss.android.ugc.aweme.miniapp.f.i; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.process.handler.IAsyncHostDataHandler; +import com.tt.miniapphost.process.handler.ISyncHostDataHandler; +import com.tt.option.j.a; +import java.util.ArrayList; +import java.util.List; + +public class g extends a { + public List createAsyncHostDataHandlerList() { + ArrayList arrayList = new ArrayList(); + Application application = AppbrandContext.getInst().getApplicationContext(); + arrayList.add(new e()); + arrayList.add(new b((Context)application)); + arrayList.add(new i()); + arrayList.add(new ae()); + return (List)arrayList; + } + + public List createSyncHostDataHandlerList() { + ArrayList arrayList = new ArrayList(); + AppbrandContext.getInst().getApplicationContext(); + arrayList.add(new f()); + arrayList.add(new d()); + arrayList.add(new a()); + arrayList.add(new c()); + arrayList.add(new e()); + arrayList.add(new h()); + arrayList.add(new d()); + arrayList.add(new c()); + arrayList.add(new b()); + return (List)arrayList; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\g.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/h.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/h.java new file mode 100644 index 0000000..24dc066 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/h.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class h { + private static volatile g a; + + public static g a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/h + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/h.a : Lcom/ss/android/ugc/aweme/miniapp/g/g; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/g + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/h.a : Lcom/ss/android/ugc/aweme/miniapp/g/g; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/g + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/h.a : Lcom/ss/android/ugc/aweme/miniapp/g/g; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/g + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/g + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/h.a : Lcom/ss/android/ugc/aweme/miniapp/g/g; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/h + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/h + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\h.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/i.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/i.java new file mode 100644 index 0000000..763f5e1 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/i.java @@ -0,0 +1,22 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import android.content.Context; +import android.content.SharedPreferences; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp_api.a.c; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.option.x.b; + +public class i implements b { + public SharedPreferences getSharedPreferences(Context paramContext, String paramString) { + AppBrandLogger.i("HostOptionKVStorageDependImpl", new Object[] { "Use KEVA as KV Storage" }); + c c = MiniAppService.inst().getBaseLibDepend(); + return (c != null) ? c.c(paramContext, paramString) : null; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\i.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/j.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/j.java new file mode 100644 index 0000000..6f1faa8 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/j.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class j { + private static volatile i a; + + public static i a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/j + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/j.a : Lcom/ss/android/ugc/aweme/miniapp/g/i; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/i + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/j.a : Lcom/ss/android/ugc/aweme/miniapp/g/i; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/i + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/j.a : Lcom/ss/android/ugc/aweme/miniapp/g/i; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/i + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/i + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/j.a : Lcom/ss/android/ugc/aweme/miniapp/g/i; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/j + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/j + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\j.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/k.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/k.java new file mode 100644 index 0000000..589237c --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/k.java @@ -0,0 +1,52 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapp.settings.data.ABTestDAO; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.option.l.a; + +public class k extends a { + public AppBrandLogger.ILogger createLogger() { + return new AppBrandLogger.ILogger(this) { + public final void flush() { + if (MiniAppService.inst().getBaseLibDepend() != null) + MiniAppService.inst().getBaseLibDepend().a("f", "", "", null); + } + + public final void logD(String param1String1, String param1String2) { + if (MiniAppService.inst().getBaseLibDepend() != null) + MiniAppService.inst().getBaseLibDepend().a("d", param1String1, param1String2, null); + } + + public final void logE(String param1String1, String param1String2) { + if (MiniAppService.inst().getBaseLibDepend() != null) + MiniAppService.inst().getBaseLibDepend().a("e", param1String1, param1String2, null); + } + + public final void logE(String param1String1, String param1String2, Throwable param1Throwable) { + if (MiniAppService.inst().getBaseLibDepend() != null) + MiniAppService.inst().getBaseLibDepend().a("et", param1String1, param1String2, param1Throwable); + } + + public final void logI(String param1String1, String param1String2) { + if (MiniAppService.inst().getBaseLibDepend() != null) + MiniAppService.inst().getBaseLibDepend().a("i", param1String1, param1String2, null); + } + + public final void logW(String param1String1, String param1String2) { + if (MiniAppService.inst().getBaseLibDepend() != null) + MiniAppService.inst().getBaseLibDepend().a("w", param1String1, param1String2, null); + } + }; + } + + public ABTestDAO.IUploadVids uploadVid() { + return super.uploadVid(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\k.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/l.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/l.java new file mode 100644 index 0000000..3d07462 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/l.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class l { + private static volatile k a; + + public static k a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/l + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/l.a : Lcom/ss/android/ugc/aweme/miniapp/g/k; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/k + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/l.a : Lcom/ss/android/ugc/aweme/miniapp/g/k; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/k + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/l.a : Lcom/ss/android/ugc/aweme/miniapp/g/k; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/k + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/k + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/l.a : Lcom/ss/android/ugc/aweme/miniapp/g/k; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/l + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/l + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\l.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/m.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/m.java new file mode 100644 index 0000000..995530a --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/m.java @@ -0,0 +1,78 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import android.app.Activity; +import android.content.Intent; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp.d.a; +import com.ss.android.ugc.aweme.miniapp.n.a; +import com.ss.android.ugc.aweme.miniapp_api.a.l; +import com.tt.miniapp.base.activity.IActivityResultHandler; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.ModeManager; +import com.tt.miniapphost.NativeModule; +import com.tt.miniapphost.entity.ScanResultEntity; +import com.tt.option.n.a; +import com.tt.option.n.b; +import java.util.ArrayList; +import java.util.List; + +public class m extends a { + public static void a(Activity paramActivity, int paramInt1, int paramInt2) { + MiniAppService.inst().getRouterDepend().a(paramActivity, paramInt1, paramInt2); + } + + public void chooseImage(Activity paramActivity, int paramInt, boolean paramBoolean1, boolean paramBoolean2, b.b paramb, b.a parama) { + if (paramBoolean1 && paramBoolean2) { + String str1 = paramActivity.getResources().getString(2097742067); + String str2 = paramActivity.getResources().getString(2097742065); + String[] arrayOfString = new String[2]; + arrayOfString[0] = str1; + arrayOfString[1] = str2; + (new a(AppbrandContext.getInst())).a(paramActivity, arrayOfString, new NativeModule.NativeModuleCallback(this, arrayOfString, str1, paramActivity, str2, paramInt) { + + }); + } else if (paramBoolean2) { + a(paramActivity, 1, 1); + } else if (paramBoolean1) { + a(paramActivity, 2, paramInt); + } + parama.setActivityResultHandler(new IActivityResultHandler(this, paramb) { + public final boolean autoClearAfterActivityResult() { + return true; + } + + public final boolean handleActivityResult(int param1Int1, int param1Int2, Intent param1Intent) { + if (param1Intent != null) { + ArrayList arrayList = param1Intent.getParcelableArrayListExtra("key_media_list"); + } else { + param1Intent = null; + } + this.a.onSuccess((List)param1Intent); + return true; + } + }); + } + + public ScanResultEntity handleActivityScanResult(int paramInt1, int paramInt2, Intent paramIntent) { + return super.handleActivityScanResult(paramInt1, paramInt2, paramIntent); + } + + public boolean scanCode(Activity paramActivity, b.d paramd) { + NativeModule nativeModule = ModeManager.getInst().get("scanCode"); + if (nativeModule instanceof a) { + a a1 = (a)nativeModule; + a1.a = true; + l l = MiniAppService.inst().getRouterDepend(); + if (l != null) + l.a(a1.getCurrentActivity(), true); + a1.b = paramd; + } + return true; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\m.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/n.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/n.java new file mode 100644 index 0000000..969b5ff --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/n.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class n { + private static volatile m a; + + public static m a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/n + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/n.a : Lcom/ss/android/ugc/aweme/miniapp/g/m; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/m + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/n.a : Lcom/ss/android/ugc/aweme/miniapp/g/m; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/m + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/n.a : Lcom/ss/android/ugc/aweme/miniapp/g/m; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/m + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/m + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/n.a : Lcom/ss/android/ugc/aweme/miniapp/g/m; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/n + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/n + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\n.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/o.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/o.java new file mode 100644 index 0000000..91eea22 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/o.java @@ -0,0 +1,39 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import com.ss.android.ugc.aweme.miniapp.t; +import com.tt.miniapp.titlemenu.MenuHelper; +import com.tt.miniapp.titlemenu.item.IMenuItem; +import com.tt.option.o.a; +import java.util.ArrayList; +import java.util.List; + +public class o extends a { + private static String[] a = new String[] { "favorite_mini_app", "generate_shortcut", "share", "back_home", "feedback_and_helper", "restart_mini_app", "about", "settings" }; + + public List createTitleMenuItems() { + ArrayList arrayList = new ArrayList(); + arrayList.add(new t()); + return (List)arrayList; + } + + public List replacesMenuItems(List paramList) { + ArrayList arrayList = new ArrayList(); + String[] arrayOfString = a; + int j = arrayOfString.length; + for (int i = 0; i < j; i++) { + IMenuItem iMenuItem = MenuHelper.getMenuItemById(paramList, arrayOfString[i]); + if (iMenuItem != null) { + arrayList.add(iMenuItem); + paramList.remove(iMenuItem); + } + } + arrayList.addAll(paramList); + return arrayList; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\o.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/p.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/p.java new file mode 100644 index 0000000..44b15f1 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/p.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class p { + private static volatile o a; + + public static o a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/p + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/p.a : Lcom/ss/android/ugc/aweme/miniapp/g/o; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/o + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/p.a : Lcom/ss/android/ugc/aweme/miniapp/g/o; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/o + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/p.a : Lcom/ss/android/ugc/aweme/miniapp/g/o; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/o + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/o + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/p.a : Lcom/ss/android/ugc/aweme/miniapp/g/o; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/p + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/p + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\p.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/q.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/q.java new file mode 100644 index 0000000..e4e8897 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/q.java @@ -0,0 +1,32 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import com.ss.android.ugc.aweme.miniapp.d.a; +import com.ss.android.ugc.aweme.miniapp.d.b; +import com.ss.android.ugc.aweme.miniapp.h.b; +import com.ss.android.ugc.aweme.miniapp.i.a; +import com.ss.android.ugc.aweme.miniapp.m.a; +import com.ss.android.ugc.aweme.miniapp.n.a; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.NativeModule; +import com.tt.option.e.c; +import java.util.ArrayList; +import java.util.List; + +public class q extends c { + public List createNativeModules(AppbrandContext paramAppbrandContext) { + ArrayList arrayList = new ArrayList(); + arrayList.add(new b(paramAppbrandContext)); + arrayList.add(new a(paramAppbrandContext)); + arrayList.add(new a(paramAppbrandContext)); + arrayList.add(new a(paramAppbrandContext)); + arrayList.add(new b(paramAppbrandContext)); + arrayList.add(new a(paramAppbrandContext)); + return (List)arrayList; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\q.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/r.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/r.java new file mode 100644 index 0000000..04c78d2 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/r.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class r { + private static volatile q a; + + public static q a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/r + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/r.a : Lcom/ss/android/ugc/aweme/miniapp/g/q; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/q + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/r.a : Lcom/ss/android/ugc/aweme/miniapp/g/q; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/q + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/r.a : Lcom/ss/android/ugc/aweme/miniapp/g/q; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/q + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/q + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/r.a : Lcom/ss/android/ugc/aweme/miniapp/g/q; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/r + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/r + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\r.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/s.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/s.java new file mode 100644 index 0000000..b643bc6 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/s.java @@ -0,0 +1,81 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp.l.a; +import com.ss.android.ugc.aweme.miniapp.utils.b; +import com.ss.android.ugc.aweme.miniapp_api.a.h; +import com.ss.android.ugc.aweme.miniapp_api.a.q; +import com.ss.android.ugc.aweme.miniapp_api.b.d; +import com.ss.android.ugc.aweme.miniapp_api.model.net.a; +import com.ss.android.ugc.aweme.miniapp_api.model.net.b; +import com.ss.android.ugc.aweme.miniapp_api.model.net.c; +import com.ss.android.ugc.aweme.miniapp_api.model.net.d; +import com.tt.option.q.a; +import com.tt.option.q.c; +import com.tt.option.q.f; +import com.tt.option.q.g; +import com.tt.option.q.i; +import com.tt.option.q.j; +import com.tt.option.q.k; +import java.util.Map; + +public class s extends a { + public k createWsClient(k.a parama) { + q q = MiniAppService.inst().getNetWorkDepend().a((q.a)new Object(parama)); + return (k)((q == null) ? null : new a.a(q)); + } + + public j doGet(i parami) throws Exception { + return b.a(MiniAppService.inst().getNetWorkDepend().a(b.a(parami))); + } + + public j doPostBody(i parami) throws Exception { + return b.a(MiniAppService.inst().getNetWorkDepend().b(b.a(parami))); + } + + public j doRequest(i parami) throws Exception { + return b.a(MiniAppService.inst().getNetWorkDepend().d(b.a(parami))); + } + + public g downloadFile(f paramf, c.a parama) { + h h = MiniAppService.inst().getNetWorkDepend(); + a a1 = new a(); + a1.a = paramf.a; + a1.b = paramf.b; + ((c)a1).l = ((i)paramf).k; + ((c)a1).k = ((i)paramf).l; + ((c)a1).h = ((i)paramf).f; + for (Map.Entry entry : ((i)paramf).h.entrySet()) { + String str = (String)entry.getKey(); + i.b b2 = (i.b)entry.getValue(); + c.b b1 = new c.b(b2.a, b2.b); + ((c)a1).j.put(str, b1); + } + ((c)a1).i = paramf.c(); + ((c)a1).m = ((i)paramf).l; + ((c)a1).c = paramf.f(); + ((c)a1).n = ((i)paramf).m; + b b = h.a(a1, new d(this, parama) { + public final void a(int param1Int, long param1Long1, long param1Long2) { + this.a.updateProgress(param1Int, -1L, -1L); + } + }); + g g = new g(); + g.a = b.a; + ((j)g).b = ((d)b).b; + ((j)g).d = ((d)b).d; + ((j)g).c = ((d)b).c; + ((j)g).f = ((d)b).g; + return g; + } + + public j postMultiPart(i parami) throws Exception { + return b.a(MiniAppService.inst().getNetWorkDepend().c(b.a(parami))); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\s.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/t.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/t.java new file mode 100644 index 0000000..502c730 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/t.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class t { + private static volatile s a; + + public static s a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/t + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/t.a : Lcom/ss/android/ugc/aweme/miniapp/g/s; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/s + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/t.a : Lcom/ss/android/ugc/aweme/miniapp/g/s; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/s + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/t.a : Lcom/ss/android/ugc/aweme/miniapp/g/s; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/s + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/s + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/t.a : Lcom/ss/android/ugc/aweme/miniapp/g/s; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/t + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/t + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\t.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/u.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/u.java new file mode 100644 index 0000000..6ae1f49 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/u.java @@ -0,0 +1,15 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import com.tt.option.s.a; + +public class u extends a { + public long getUseDuration() { + return 1000L; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\\\u.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/v.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/v.java new file mode 100644 index 0000000..cb58eb0 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/v.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class v { + private static volatile u a; + + public static u a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/v + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/v.a : Lcom/ss/android/ugc/aweme/miniapp/g/u; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/u + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/v.a : Lcom/ss/android/ugc/aweme/miniapp/g/u; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/u + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/v.a : Lcom/ss/android/ugc/aweme/miniapp/g/u; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/u + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/u + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/v.a : Lcom/ss/android/ugc/aweme/miniapp/g/u; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/v + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/v + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\v.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/w.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/w.java new file mode 100644 index 0000000..c572fb4 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/w.java @@ -0,0 +1,131 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp.a; +import com.ss.android.ugc.aweme.miniapp.c; +import com.ss.android.ugc.aweme.miniapp.f; +import com.ss.android.ugc.aweme.miniapp.g; +import com.ss.android.ugc.aweme.miniapp_api.a.l; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.option.u.a; +import java.util.ArrayList; +import java.util.List; +import org.json.JSONObject; + +public class w extends a { + private List a = new ArrayList(); + + public w() { + this.a.add(new a()); + this.a.add(new c()); + } + + public boolean handleAppbrandDisablePage(Context paramContext, String paramString) { + for (g g : this.a) { + if (g.a(paramString)) + return g.a(paramContext, paramString); + } + return false; + } + + public void jumpToWebView(Context paramContext, String paramString1, String paramString2, boolean paramBoolean) { + Integer integer; + StringBuilder stringBuilder = new StringBuilder("sslocal://webview?url="); + stringBuilder.append(Uri.encode(paramString1)); + stringBuilder.append("&title="); + stringBuilder.append(Uri.encode(paramString2)); + stringBuilder.append("&hide_bar="); + if (paramBoolean) { + paramString1 = "1"; + } else { + integer = Integer.valueOf(0); + } + stringBuilder.append(integer); + String str = stringBuilder.toString(); + if (paramContext != null) { + l l = MiniAppService.inst().getRouterDepend(); + if (l != null) + l.a(paramContext, str); + } + } + + public boolean navigateToVideoView(Activity paramActivity, String paramString) { + Intent intent = new Intent(); + intent.putExtra("id", paramString); + MiniAppService.inst().getRouterDepend().a(paramActivity, intent); + return true; + } + + public boolean openCustomerService(Context paramContext, String paramString) { + if (paramContext != null) { + jumpToWebView(paramContext, paramString, "", false); + return true; + } + return false; + } + + public boolean openProfile(Activity paramActivity, String paramString) { + HostProcessBridge.logEvent("enter_personal_detail", new JSONObject((f.a().a("to_user_id", paramString).a("enter_from", "mp_ranklist")).a)); + l l = MiniAppService.inst().getRouterDepend(); + return (l != null) ? l.a((Context)paramActivity, paramString, "", "mp_ranklist", "follow_button") : false; + } + + public boolean openSchema(Context paramContext, String paramString) { + // Byte code: + // 0: aload_1 + // 1: instanceof android/app/Activity + // 4: ifeq -> 30 + // 7: aload_1 + // 8: checkcast android/app/Activity + // 11: invokevirtual getIntent : ()Landroid/content/Intent; + // 14: astore_3 + // 15: aload_3 + // 16: ifnull -> 30 + // 19: aload_3 + // 20: ldc 'class_name' + // 22: invokevirtual getStringExtra : (Ljava/lang/String;)Ljava/lang/String; + // 25: astore #4 + // 27: goto -> 33 + // 30: aconst_null + // 31: astore #4 + // 33: aload_2 + // 34: astore_3 + // 35: aload_2 + // 36: ifnull -> 57 + // 39: aload_2 + // 40: invokestatic parse : (Ljava/lang/String;)Landroid/net/Uri; + // 43: invokevirtual buildUpon : ()Landroid/net/Uri$Builder; + // 46: ldc 'from' + // 48: aload #4 + // 50: invokevirtual appendQueryParameter : (Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; + // 53: invokevirtual toString : ()Ljava/lang/String; + // 56: astore_3 + // 57: invokestatic inst : ()Lcom/ss/android/ugc/aweme/miniapp/MiniAppService; + // 60: invokevirtual getRouterDepend : ()Lcom/ss/android/ugc/aweme/miniapp_api/a/l; + // 63: astore_2 + // 64: aload_2 + // 65: ifnull -> 78 + // 68: aload_2 + // 69: aload_1 + // 70: aload_3 + // 71: iconst_0 + // 72: invokeinterface a : (Landroid/content/Context;Ljava/lang/String;Z)Z + // 77: ireturn + // 78: iconst_0 + // 79: ireturn + } + + public boolean supportCustomerService() { + return true; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\w.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/x.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/x.java new file mode 100644 index 0000000..5826292 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/x.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class x { + private static volatile w a; + + public static w a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/x + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/x.a : Lcom/ss/android/ugc/aweme/miniapp/g/w; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/w + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/x.a : Lcom/ss/android/ugc/aweme/miniapp/g/w; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/w + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/x.a : Lcom/ss/android/ugc/aweme/miniapp/g/w; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/w + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/w + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/x.a : Lcom/ss/android/ugc/aweme/miniapp/g/w; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/x + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/x + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\x.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/y.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/y.java new file mode 100644 index 0000000..d46d762 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/y.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +import android.content.Context; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp_api.a.m; +import com.tt.option.p.b; +import com.tt.option.p.e; +import java.util.Arrays; +import org.json.JSONException; +import org.json.JSONObject; + +public class y extends b { + public m a = MiniAppService.inst().getSDKMonitorDepend(); + + public e createSDKMonitorInstance(Context paramContext, String paramString, JSONObject paramJSONObject) { + this.a.a(paramString, Arrays.asList(new String[] { "https://mon.isnssdk.com/monitor/appmonitor/v2/settings", "https://i.isnssdk.com/monitor/appmonitor/v2/settings" })); + if (paramJSONObject != null) + try { + paramJSONObject.put("oversea", "1"); + } catch (JSONException jSONException) {} + this.a.a(paramContext, paramString, paramJSONObject); + this.a.a(paramString); + return new e(this) { + public final void flushBuffer() {} + + public final void monitorCommonLog(String param1String, JSONObject param1JSONObject) { + this.a.a.a(param1String, param1JSONObject); + } + + public final void monitorDuration(String param1String, JSONObject param1JSONObject1, JSONObject param1JSONObject2) { + this.a.a.a(param1String, param1JSONObject1, param1JSONObject2); + } + + public final void monitorEvent(String param1String, JSONObject param1JSONObject1, JSONObject param1JSONObject2, JSONObject param1JSONObject3) { + this.a.a.a(param1String, param1JSONObject1, param1JSONObject2, param1JSONObject3); + } + + public final void monitorStatusAndDuration(String param1String, int param1Int, JSONObject param1JSONObject1, JSONObject param1JSONObject2) { + this.a.a.a(param1String, param1Int, param1JSONObject1, param1JSONObject2); + } + + public final void monitorStatusRate(String param1String, int param1Int, JSONObject param1JSONObject) { + this.a.a.a(param1String, param1Int, param1JSONObject); + } + }; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\y.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/z.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/z.java new file mode 100644 index 0000000..9624802 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/g/z.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.g; + +public final class z { + private static volatile y a; + + public static y a() { + // Byte code: + // 0: ldc com/ss/android/ugc/aweme/miniapp/g/z + // 2: monitorenter + // 3: getstatic com/ss/android/ugc/aweme/miniapp/g/z.a : Lcom/ss/android/ugc/aweme/miniapp/g/y; + // 6: ifnonnull -> 40 + // 9: ldc com/ss/android/ugc/aweme/miniapp/g/y + // 11: monitorenter + // 12: getstatic com/ss/android/ugc/aweme/miniapp/g/z.a : Lcom/ss/android/ugc/aweme/miniapp/g/y; + // 15: ifnonnull -> 28 + // 18: new com/ss/android/ugc/aweme/miniapp/g/y + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/ss/android/ugc/aweme/miniapp/g/z.a : Lcom/ss/android/ugc/aweme/miniapp/g/y; + // 28: ldc com/ss/android/ugc/aweme/miniapp/g/y + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/ss/android/ugc/aweme/miniapp/g/y + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/ss/android/ugc/aweme/miniapp/g/z.a : Lcom/ss/android/ugc/aweme/miniapp/g/y; + // 43: astore_0 + // 44: ldc com/ss/android/ugc/aweme/miniapp/g/z + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/ss/android/ugc/aweme/miniapp/g/z + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 49 finally + // 35 40 49 finally + // 40 44 49 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\g\z.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/h.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/h.java new file mode 100644 index 0000000..b77d3bd --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/h.java @@ -0,0 +1,144 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.media.MediaPlayer; +import android.support.v4.f.a; +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp.utils.c; +import com.ss.android.ugc.aweme.miniapp.views.MainProcessProxyActivity; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.process.callback.IpcCallback; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.util.ProcessUtil; +import com.tt.option.w.g; +import java.io.IOException; +import java.util.UUID; +import org.json.JSONObject; + +public final class h { + public static void a(Activity paramActivity, com.tt.option.w.h paramh, g paramg) { + if (TextUtils.equals("video", paramh.channel)) { + Intent intent = new Intent((Context)paramActivity, MainProcessProxyActivity.class); + a a = new a(); + a.put("schema", paramh.schema); + a.put("appId", paramh.appInfo.appId); + a.put("appTitle", paramh.title); + a.put("appUrl", paramh.queryString); + a.put("cardImage", paramh.imageUrl); + intent.putExtra("micro_app_class", paramActivity.getClass()); + a(paramh, intent, a, 2); + intent.putExtra("micro_app_info", c.a(a)); + intent.putExtra("translation_type", 3); + String str = UUID.randomUUID().toString(); + intent.putExtra("creation_id", str); + intent.putExtra("shoot_way", "mp_record"); + a(paramg, intent); + intent.putExtra("proxy_type", 1); + paramActivity.startActivity(intent); + HostProcessBridge.logEvent("shoot", new JSONObject((f.a().a("shoot_way", "mp_record").a("creation_id", str)).a)); + } + } + + static void a(g paramg, Intent paramIntent) { + ProcessUtil.fillCrossProcessCallbackIntent(paramIntent, new IpcCallback(paramg) { + public final void onIpcCallback(CrossProcessDataEntity param1CrossProcessDataEntity) { + g g1 = this.a; + if (g1 != null) { + if (param1CrossProcessDataEntity == null) { + g1.onFail(null); + return; + } + if (param1CrossProcessDataEntity.getBoolean("proxy_result")) { + this.a.onSuccess(null); + return; + } + this.a.onCancel(null); + } + } + + public final void onIpcConnectError() { + this.a.onFail("ipc fail"); + } + }); + } + + static void a(com.tt.option.w.h paramh, Intent paramIntent, a parama, int paramInt) { + // Byte code: + // 0: aload_0 + // 1: ifnonnull -> 15 + // 4: new org/json/JSONObject + // 7: dup + // 8: invokespecial : ()V + // 11: astore_0 + // 12: goto -> 48 + // 15: aload_0 + // 16: getfield extra : Ljava/lang/String; + // 19: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 22: ifeq -> 36 + // 25: new org/json/JSONObject + // 28: dup + // 29: invokespecial : ()V + // 32: astore_0 + // 33: goto -> 48 + // 36: new org/json/JSONObject + // 39: dup + // 40: aload_0 + // 41: getfield extra : Ljava/lang/String; + // 44: invokespecial : (Ljava/lang/String;)V + // 47: astore_0 + // 48: aload_0 + // 49: ldc 'sticker_id' + // 51: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 54: astore #4 + // 56: aload #4 + // 58: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 61: ifne -> 73 + // 64: aload_1 + // 65: ldc 'sticker_id' + // 67: aload #4 + // 69: invokevirtual putExtra : (Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent; + // 72: pop + // 73: aload_0 + // 74: ldc 'timor_video_source' + // 76: iload_3 + // 77: invokevirtual put : (Ljava/lang/String;I)Lorg/json/JSONObject; + // 80: pop + // 81: aload_2 + // 82: ldc 'extra' + // 84: aload_0 + // 85: invokevirtual toString : ()Ljava/lang/String; + // 88: invokevirtual put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 91: pop + // 92: return + // 93: astore_0 + // 94: return + // Exception table: + // from to target type + // 4 12 93 org/json/JSONException + // 15 33 93 org/json/JSONException + // 36 48 93 org/json/JSONException + // 48 73 93 org/json/JSONException + // 73 92 93 org/json/JSONException + } + + static boolean a(Activity paramActivity, String paramString) { + MediaPlayer mediaPlayer = new MediaPlayer(); + try { + mediaPlayer.setDataSource(paramString); + mediaPlayer.prepare(); + if (mediaPlayer.getDuration() < 3000L) { + MiniAppService.inst().getPopToastDepend().a(paramActivity, paramActivity.getString(2097742069)); + return true; + } + } catch (IOException iOException) {} + return false; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\h.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/h/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/h/a.java new file mode 100644 index 0000000..7a4c03f --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/h/a.java @@ -0,0 +1,227 @@ +package com.ss.android.ugc.aweme.miniapp.h; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; +import android.graphics.Rect; +import android.graphics.RectF; +import android.graphics.Xfermode; +import android.net.Uri; +import android.widget.ImageView; +import com.squareup.b.ag; +import com.squareup.b.e; +import com.squareup.b.o; +import com.squareup.b.r; +import com.squareup.b.s; +import com.squareup.b.v; +import com.squareup.b.y; +import com.squareup.b.z; +import com.tt.b.c; +import com.tt.miniapphost.AppbrandContext; +import java.io.File; +import java.util.ArrayList; + +public class a { + private static volatile v a; + + private static o b = new o((Context)AppbrandContext.getInst().getApplicationContext()); + + private static v a() { + // Byte code: + // 0: getstatic com/ss/android/ugc/aweme/miniapp/h/a.a : Lcom/squareup/b/v; + // 3: ifnonnull -> 91 + // 6: ldc com/ss/android/ugc/aweme/miniapp/h/a + // 8: monitorenter + // 9: getstatic com/ss/android/ugc/aweme/miniapp/h/a.a : Lcom/squareup/b/v; + // 12: ifnonnull -> 79 + // 15: new com/squareup/b/v$a + // 18: dup + // 19: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 22: invokevirtual getApplicationContext : ()Landroid/app/Application; + // 25: invokespecial : (Landroid/content/Context;)V + // 28: astore_0 + // 29: getstatic com/ss/android/ugc/aweme/miniapp/h/a.b : Lcom/squareup/b/o; + // 32: astore_1 + // 33: aload_1 + // 34: ifnull -> 69 + // 37: aload_0 + // 38: getfield a : Lcom/squareup/b/d; + // 41: ifnonnull -> 59 + // 44: aload_0 + // 45: aload_1 + // 46: putfield a : Lcom/squareup/b/d; + // 49: aload_0 + // 50: invokevirtual a : ()Lcom/squareup/b/v; + // 53: putstatic com/ss/android/ugc/aweme/miniapp/h/a.a : Lcom/squareup/b/v; + // 56: goto -> 79 + // 59: new java/lang/IllegalStateException + // 62: dup + // 63: ldc 'Memory cache already set.' + // 65: invokespecial : (Ljava/lang/String;)V + // 68: athrow + // 69: new java/lang/IllegalArgumentException + // 72: dup + // 73: ldc 'Memory cache must not be null.' + // 75: invokespecial : (Ljava/lang/String;)V + // 78: athrow + // 79: ldc com/ss/android/ugc/aweme/miniapp/h/a + // 81: monitorexit + // 82: goto -> 91 + // 85: astore_0 + // 86: ldc com/ss/android/ugc/aweme/miniapp/h/a + // 88: monitorexit + // 89: aload_0 + // 90: athrow + // 91: getstatic com/ss/android/ugc/aweme/miniapp/h/a.a : Lcom/squareup/b/v; + // 94: areturn + // Exception table: + // from to target type + // 9 33 85 finally + // 37 56 85 finally + // 59 69 85 finally + // 69 79 85 finally + // 79 82 85 finally + // 86 89 85 finally + } + + public static void a(Context paramContext, c paramc) { + z z; + if (paramc == null) + return; + String str = paramc.m; + paramContext = null; + if (str != null) { + z = a().a(paramc.m); + } else if (paramc.n != null) { + v v1 = a(); + File file = paramc.n; + if (file == null) { + z = new z(v1, null, 0); + } else { + z = z.a(Uri.fromFile(file)); + } + } else if (paramc.o != 0) { + v v1 = a(); + int i = paramc.o; + if (i != 0) { + z = new z(v1, null, i); + } else { + throw new IllegalArgumentException("Resource ID must not be zero."); + } + } else if (paramc.p != null) { + z = a().a(paramc.p); + } + if (z != null) { + if (paramc.k > 0 && paramc.j > 0) + z.a(paramc.j, paramc.k); + if (paramc.e) { + y.a a1 = z.b; + if (!a1.a) { + a1.b = true; + } else { + throw new IllegalStateException("Center inside can not be used after calling centerCrop"); + } + } else if (paramc.d) { + z.b(); + } else if (paramc.f) { + z.a(); + } + if (paramc.i != null) { + Bitmap.Config config = paramc.i; + z.b.d = config; + } + if (paramc.c != 0) + z.a(paramc.c); + if (paramc.b != 0) { + int i = paramc.b; + if (z.d) { + if (i != 0) { + if (z.i == null) { + z.e = i; + } else { + throw new IllegalStateException("Placeholder image already set."); + } + } else { + throw new IllegalArgumentException("Placeholder image resource invalid."); + } + } else { + throw new IllegalStateException("Already explicitly declared as no placeholder."); + } + } + if (paramc.l != 0.0F) { + b b = new b(paramc.l); + y.a a1 = z.b; + b.a(); + if (a1.c == null) + a1.c = new ArrayList(2); + a1.c.add(b); + } + if (paramc.g) + z.a(r.NO_CACHE, new r[] { r.NO_STORE }); + if (paramc.h) + z.a(s.NO_CACHE, new s[] { s.NO_STORE }); + if (paramc.q instanceof ImageView) + z.a((ImageView)paramc.q, new a(paramc.r)); + return; + } + throw new NullPointerException("requestCreator must not be null"); + } + + static final class a implements e { + com.tt.b.a a; + + a(com.tt.b.a param1a) { + this.a = param1a; + } + + public final void a() { + com.tt.b.a a1 = this.a; + if (a1 != null) + a1.onSuccess(); + } + + public final void b() { + com.tt.b.a a1 = this.a; + if (a1 != null) + a1.onFail(new Exception("load fail")); + } + } + + static final class b implements ag { + private float a; + + protected b(float param1Float) { + this.a = param1Float; + } + + public final Bitmap a(Bitmap param1Bitmap) { + float f = this.a; + Bitmap bitmap = Bitmap.createBitmap(param1Bitmap.getWidth(), param1Bitmap.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + Paint paint = new Paint(); + Rect rect = new Rect(0, 0, param1Bitmap.getWidth(), param1Bitmap.getHeight()); + RectF rectF = new RectF(rect); + paint.setAntiAlias(true); + canvas.drawARGB(0, 0, 0, 0); + paint.setColor(-12434878); + canvas.drawRoundRect(rectF, f, f, paint); + paint.setXfermode((Xfermode)new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); + canvas.drawBitmap(param1Bitmap, rect, rect, paint); + param1Bitmap.recycle(); + return bitmap; + } + + public final String a() { + return "bitmapAngle()"; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\h\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/h/b.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/h/b.java new file mode 100644 index 0000000..57cb704 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/h/b.java @@ -0,0 +1,59 @@ +package com.ss.android.ugc.aweme.miniapp.h; + +import android.text.TextUtils; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.NativeModule; +import java.io.File; +import java.util.ArrayList; +import org.json.JSONArray; +import org.json.JSONObject; + +public final class b extends NativeModule { + public b(AppbrandContext paramAppbrandContext) { + super(paramAppbrandContext); + } + + public final String getName() { + return "previewImage"; + } + + public final String invoke(String paramString, NativeModule.NativeModuleCallback paramNativeModuleCallback) throws Exception { + JSONObject jSONObject = new JSONObject(paramString); + String str2 = jSONObject.optString("current"); + ArrayList arrayList = new ArrayList(); + JSONArray jSONArray = jSONObject.optJSONArray("urls"); + byte b1 = 0; + if (jSONArray != null) { + int m = jSONArray.length(); + for (int k = 0; k < m; k++) { + String str = jSONArray.getString(k); + if (str.contains("file://")) { + if ((new File(str.substring(7))).exists()) + arrayList.add(jSONArray.getString(k)); + } else if (str.contains("http://")) { + arrayList.add(str); + } + } + } + if (arrayList.size() <= 0) { + if (paramNativeModuleCallback != null) + paramNativeModuleCallback.onNativeModuleCall(Boolean.valueOf(false)); + return null; + } + String str1 = str2; + if (!arrayList.contains(str2)) + str1 = arrayList.get(0); + int j = arrayList.size(); + for (int i = b1; i < j && !TextUtils.equals(str1, arrayList.get(i)); i++); + new ArrayList(); + if (paramNativeModuleCallback != null) + paramNativeModuleCallback.onNativeModuleCall(Boolean.valueOf(true)); + return null; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\h\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/i.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/i.java new file mode 100644 index 0000000..8c78267 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/i.java @@ -0,0 +1,170 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.app.Activity; +import android.app.Application; +import android.content.Context; +import android.os.Build; +import android.os.Bundle; +import android.util.Log; +import com.ss.android.ugc.aweme.miniapp.j.a; +import com.ss.android.ugc.aweme.miniapp.j.b; +import com.ss.android.ugc.aweme.miniapp.j.c; +import com.ss.android.ugc.aweme.miniapp_api.a.l; +import com.ss.android.ugc.aweme.miniapp_api.b.g; +import com.storage.async.AsyncSchedulerInit; +import com.storage.async.Scheduler; +import com.storage.async.SchedulerCreator; +import com.tt.miniapp.event.InnerEventHelper; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.hostmethod.HostMethodManager; +import com.tt.miniapphost.hostmethod.IHostMethod; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.util.ProcessUtil; + +public class i { + public static final String a = i.class.getSimpleName(); + + private static void a(Application paramApplication) { + if (ProcessUtil.getCurProcessName((Context)paramApplication).contains("miniapp")) { + c(paramApplication); + MiniAppService.inst().getBaseLibDepend().d(); + MiniAppService.inst().getBaseLibDepend().b((Context)paramApplication, ""); + b(paramApplication); + HostMethodManager.getInstance().registerHostMethod("aweme_addFriend", (IHostMethod)new a()); + HostMethodManager.getInstance().registerHostMethod("aweme_showVideo", (IHostMethod)new c()); + HostMethodManager.getInstance().registerHostMethod("aweme_showVideoDetailList", (IHostMethod)new b()); + } + } + + public static void a(Application paramApplication, g paramg, boolean paramBoolean) { + if (Build.VERSION.SDK_INT < 21) + return; + AsyncSchedulerInit.setDBSchedulerHandler(new SchedulerCreator() { + public final Scheduler create() { + return new Scheduler(this) { + public final void execute(Runnable param2Runnable) { + MiniAppService.inst().getBaseLibDepend().a(param2Runnable); + } + }; + } + }); + AsyncSchedulerInit.setNetSchedulerHandler(new SchedulerCreator() { + public final Scheduler create() { + return new Scheduler(this) { + public final void execute(Runnable param2Runnable) { + MiniAppService.inst().getBaseLibDepend().a(param2Runnable); + } + }; + } + }); + boolean bool = ProcessUtil.isMainProcess((Context)paramApplication); + StringBuilder stringBuilder = new StringBuilder("miniapp init reason"); + stringBuilder.append(Log.getStackTraceString(new Exception())); + String str = stringBuilder.toString(); + if (bool) { + if (paramBoolean) { + MiniAppService.inst().getBaseLibDepend().b(new Runnable(paramApplication, str, paramg) { + public final void run() { + AppbrandContext.init(this.a, b.a()); + i.a(this.b); + g g1 = this.c; + if (g1 != null) + g1.a(); + } + }); + } else { + AppbrandContext.init(paramApplication, b.a()); + a(str); + } + } else { + a((Context)paramApplication); + AppbrandContext.init(paramApplication, b.a()); + a(paramApplication); + if (paramg != null) + paramg.a(); + } + d(paramApplication); + } + + private static void a(Context paramContext) { + if (!ProcessUtil.isMainProcess(paramContext)) + try { + b("c++_shared"); + b("v8_libbase.cr"); + b("v8_libplatform.cr"); + b("v8.cr"); + b("freetypelite"); + b("skialite"); + b("jsbinding"); + b("jsc"); + b("jsbinding-jsc"); + b("aurum"); + b("helium"); + b("effect"); + b("helium-game"); + return; + } finally { + paramContext = null; + } + } + + public static void a(String paramString) { + String str = a; + StringBuilder stringBuilder = new StringBuilder("uploadInitReason"); + stringBuilder.append(paramString); + AppBrandLogger.d(str, new Object[] { stringBuilder.toString() }); + InnerEventHelper.mpTechnologyMsg(paramString); + } + + private static void b(Application paramApplication) { + try { + return; + } finally { + paramApplication = null; + } + } + + private static void b(String paramString) { + try { + return; + } finally { + paramString = null; + AppBrandLogger.eWithThrowable(a, "loading error", (Throwable)paramString); + } + } + + private static void c(Application paramApplication) { + l l = MiniAppService.inst().getRouterDepend(); + if (l != null) + l.b(); + } + + private static void d(Application paramApplication) { + if (!ProcessUtil.isMainProcess((Context)paramApplication) && paramApplication != null) + paramApplication.registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() { + public final void onActivityCreated(Activity param1Activity, Bundle param1Bundle) {} + + public final void onActivityDestroyed(Activity param1Activity) {} + + public final void onActivityPaused(Activity param1Activity) { + HostProcessBridge.hostActionSync("micro_app_lifecycle", CrossProcessDataEntity.Builder.create().build()); + } + + public final void onActivityResumed(Activity param1Activity) {} + + public final void onActivitySaveInstanceState(Activity param1Activity, Bundle param1Bundle) {} + + public final void onActivityStarted(Activity param1Activity) {} + + public final void onActivityStopped(Activity param1Activity) {} + }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\i.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/i/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/i/a.java new file mode 100644 index 0000000..ab63563 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/i/a.java @@ -0,0 +1,62 @@ +package com.ss.android.ugc.aweme.miniapp.i; + +import android.app.Activity; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.NativeModule; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.process.callback.IpcCallbackManagerProxy; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import org.json.JSONObject; + +public final class a extends NativeModule { + int a; + + boolean b; + + public a(AppbrandContext paramAppbrandContext) { + super(paramAppbrandContext); + } + + public final String getName() { + return "logclient"; + } + + public final String invoke(String paramString, NativeModule.NativeModuleCallback paramNativeModuleCallback) throws Exception { + Activity activity = getCurrentActivity(); + if (activity != null) { + MiniAppService.inst().getBaseLibDepend().a(activity); + this.b = true; + HostProcessBridge.hostActionSync("login_state", CrossProcessDataEntity.Builder.create().put("login_state_value", "1").build()); + try { + this.a = (new JSONObject(paramString)).optInt("hostCallId"); + } catch (Exception exception) {} + } + return ""; + } + + public final void onStart() { + super.onStart(); + if (AppBrandLogger.debug()) + AppBrandLogger.d("LoginClient", new Object[] { "onStart" }); + if (this.b) { + this.b = false; + HostProcessBridge.hostActionSync("login_state", CrossProcessDataEntity.Builder.create().put("login_state_value", "0").build()); + IpcCallbackManagerProxy.getInstance().handleIpcCallBack(this.a, CrossProcessDataEntity.Builder.create().build()); + this.a = 0; + } + } + + public final void onStop() { + super.onStop(); + if (AppBrandLogger.debug()) + AppBrandLogger.d("LoginClient", new Object[] { "onStop" }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\i\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/j/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/j/a.java new file mode 100644 index 0000000..eecea77 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/j/a.java @@ -0,0 +1,59 @@ +package com.ss.android.ugc.aweme.miniapp.j; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp.f.j; +import com.ss.android.ugc.aweme.miniapp.utils.e; +import com.tt.miniapphost.hostmethod.HostMethodManager; +import com.tt.miniapphost.hostmethod.IHostMethod; +import com.tt.miniapphost.process.HostProcessBridge; +import org.json.JSONObject; + +public class a implements IHostMethod { + public static final String a = a.class.getSimpleName(); + + private long b; + + private long a() { + if (HostProcessBridge.getUserInfo() != null) + try { + this.b = Long.parseLong("userId"); + } catch (NumberFormatException numberFormatException) {} + return this.b; + } + + public void call(Activity paramActivity, JSONObject paramJSONObject, HostMethodManager.ResponseCallBack paramResponseCallBack) throws Exception { + e.a(paramActivity, j.a((Context)paramActivity), a(), paramResponseCallBack); + } + + public String callSync(Activity paramActivity, JSONObject paramJSONObject) throws Exception { + JSONObject jSONObject; + a(); + String str = j.a((Context)paramActivity); + if (TextUtils.isEmpty(str)) { + jSONObject = new JSONObject(); + jSONObject.put("failed", "token is empty"); + return jSONObject.toString(); + } + e.a((Activity)jSONObject, str, a(), new HostMethodManager.ResponseCallBack(this) { + public final void callResponse(String param1String) {} + }); + return null; + } + + public boolean onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + return false; + } + + public boolean shouldHandleActivityResult(JSONObject paramJSONObject) { + return false; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\j\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/j/b.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/j/b.java new file mode 100644 index 0000000..c1b9ff1 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/j/b.java @@ -0,0 +1,59 @@ +package com.ss.android.ugc.aweme.miniapp.j; + +import android.app.Activity; +import android.content.Intent; +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.hostmethod.HostMethodManager; +import com.tt.miniapphost.hostmethod.IHostMethod; +import com.tt.miniapphost.process.bridge.ProcessCallControlBridge; +import com.tt.miniapphost.process.callback.IpcCallback; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import org.json.JSONObject; + +public class b implements IHostMethod { + public static final String a = b.class.getSimpleName(); + + private IpcCallback b; + + public void call(Activity paramActivity, JSONObject paramJSONObject, HostMethodManager.ResponseCallBack paramResponseCallBack) throws Exception {} + + public String callSync(Activity paramActivity, JSONObject paramJSONObject) { + String str1 = paramJSONObject.optString("micro_app_id"); + String str2 = paramJSONObject.optString("hashTagName"); + int i = paramJSONObject.optInt("cursor"); + String str3 = paramJSONObject.optString("type"); + if (!TextUtils.equals("fetch_video", str3) && TextUtils.equals("open_video", str3)) + this.b = new IpcCallback(this, str2, str1, i, paramActivity) { + public final void onIpcCallback(CrossProcessDataEntity param1CrossProcessDataEntity) { + String str = param1CrossProcessDataEntity.getString("apiData"); + Intent intent = new Intent(); + intent.putExtra("micro_game_station_hashtag", this.a); + intent.putExtra("micro_game_station_id", this.b); + intent.putExtra("micro_game_station_cursor", this.c); + intent.putExtra("micro_game_station_count", 10); + intent.putExtra("id", str); + intent.putExtra("video_from", "mp_page"); + MiniAppService.inst().getRouterDepend().a(this.d, intent); + } + + public final void onIpcConnectError() {} + }; + ProcessCallControlBridge.callHostProcessAsync("request_game_video", CrossProcessDataEntity.Builder.create().put("jsonData", paramJSONObject).build(), this.b); + return null; + } + + public boolean onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + return false; + } + + public boolean shouldHandleActivityResult(JSONObject paramJSONObject) { + return false; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\j\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/j/c.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/j/c.java new file mode 100644 index 0000000..5c5846c --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/j/c.java @@ -0,0 +1,64 @@ +package com.ss.android.ugc.aweme.miniapp.j; + +import android.app.Activity; +import android.content.Intent; +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp_api.b.a.a; +import com.ss.android.ugc.aweme.miniapp_api.b.a.b; +import com.ss.android.ugc.aweme.miniapp_api.model.a; +import com.tt.miniapphost.hostmethod.HostMethodManager; +import com.tt.miniapphost.hostmethod.IHostMethod; +import org.json.JSONObject; + +public final class c implements IHostMethod { + public final void call(Activity paramActivity, JSONObject paramJSONObject, HostMethodManager.ResponseCallBack paramResponseCallBack) { + String str = paramJSONObject.optString("alias_id"); + MiniAppService.inst().getBaseLibDepend().a(0L, new a(this, str) { + public final Object a(com.ss.android.ugc.aweme.miniapp_api.b.a.c param1c) { + try { + return MiniAppService.inst().getBaseLibDepend().b(this.a); + } catch (Exception exception) { + return null; + } + } + }new b(this, paramResponseCallBack, paramActivity) { + public final Object a(com.ss.android.ugc.aweme.miniapp_api.b.a.c param1c) { + if (param1c.a || param1c.b == null) { + this.a.callResponse("{\"errMsg\":\"fail Network not available\"}"); + return null; + } + String str = ((a)param1c.b).c.a; + if (TextUtils.isEmpty(str)) { + this.a.callResponse("{\"errMsg\":\"fail Video not exist\"}"); + } else { + if (this.b != null) { + Intent intent = new Intent(); + intent.putExtra("id", str); + MiniAppService.inst().getRouterDepend().a(this.b, intent); + } + this.a.callResponse("{\"errMsg\":\"ok\"}"); + } + return null; + } + }true); + } + + public final String callSync(Activity paramActivity, JSONObject paramJSONObject) { + return ""; + } + + public final boolean onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + return false; + } + + public final boolean shouldHandleActivityResult(JSONObject paramJSONObject) { + return false; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\j\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/k.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/k.java new file mode 100644 index 0000000..e6aaa91 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/k.java @@ -0,0 +1,12 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.content.Context; +import com.ss.android.ugc.aweme.miniapp_api.b.g; +import com.ss.android.ugc.aweme.miniapp_api.model.b.b; + + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\k.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/k/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/k/a.java new file mode 100644 index 0000000..02e264d --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/k/a.java @@ -0,0 +1,31 @@ +package com.ss.android.ugc.aweme.miniapp.k; + +import android.text.TextUtils; +import com.ss.android.ugc.aweme.miniapp_api.b.i; +import com.ss.android.ugc.aweme.miniapp_api.model.k; +import com.storage.async.Function; +import com.storage.async.Observable; +import com.storage.async.Schedulers; +import com.storage.async.Subscriber; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.option.q.i; + +public final class a { + public static void a(String paramString, i parami) { + if (TextUtils.isEmpty(paramString)) + return; + StringBuilder stringBuilder = new StringBuilder("https://developer.toutiao.com/api/apps/share/decode_token?token="); + stringBuilder.append(paramString); + Observable.create(new Function(stringBuilder.toString()) { + + }).schudleOn(Schedulers.longIO()).subscribe((Subscriber)new Subscriber.ResultableSubscriber(parami) { + public final void onError(Throwable param1Throwable) {} + }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\k\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/l.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/l.java new file mode 100644 index 0000000..c8eb97f --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/l.java @@ -0,0 +1,13 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.content.Context; +import com.ss.android.ugc.aweme.miniapp_api.b.g; +import com.ss.android.ugc.aweme.miniapp_api.model.b.b; +import com.ss.android.ugc.aweme.miniapp_api.model.e; + + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\l.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/l/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/l/a.java new file mode 100644 index 0000000..9434844 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/l/a.java @@ -0,0 +1,55 @@ +package com.ss.android.ugc.aweme.miniapp.l; + +import com.ss.android.ugc.aweme.miniapp_api.a.q; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.util.JsonBuilder; +import com.tt.option.q.k; +import java.util.List; +import java.util.Map; +import org.json.JSONObject; + +public final class a { + public static final class a implements k { + private final q a; + + public a(q param1q) { + this.a = param1q; + } + + public final void a(Map param1Map1, Map param1Map2, List param1List, boolean param1Boolean1, boolean param1Boolean2) { + this.a.a(param1Map1, param1Map2, param1List, false, false); + } + + public final boolean a() { + return this.a.a(); + } + + public final boolean a(byte[] param1ArrayOfbyte, int param1Int) { + q q1; + try { + q1 = this.a; + byte b = 2; + if (param1Int != 1) { + if (param1Int != 2) + b = 0; + return q1.a(param1ArrayOfbyte, b); + } + } catch (Exception exception) { + AppBrandLogger.e("TmaWsClientImpl", new Object[] { exception }); + return false; + } + boolean bool = true; + return q1.a((byte[])exception, bool); + } + + public final void b() { + this.a.b(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\l\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/m.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/m.java new file mode 100644 index 0000000..3093bcd --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/m.java @@ -0,0 +1,11 @@ +package com.ss.android.ugc.aweme.miniapp; + +import android.content.Context; +import com.ss.android.ugc.aweme.miniapp_api.b.g; + + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\m.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/m/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/m/a.java new file mode 100644 index 0000000..31bb321 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/m/a.java @@ -0,0 +1,41 @@ +package com.ss.android.ugc.aweme.miniapp.m; + +import android.app.Activity; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.NativeModule; +import org.json.JSONObject; + +public final class a extends NativeModule { + public a(AppbrandContext paramAppbrandContext) { + super(paramAppbrandContext); + } + + public final String getName() { + return "DMTshowToast"; + } + + public final String invoke(String paramString, NativeModule.NativeModuleCallback paramNativeModuleCallback) throws Exception { + JSONObject jSONObject = new JSONObject(paramString); + int i = jSONObject.optInt("duration"); + String str = jSONObject.optString("title"); + AppbrandContext.mainHandler.post(new Runnable(this, str, i, paramNativeModuleCallback) { + public final void run() { + Activity activity = this.d.getCurrentActivity(); + if (activity != null) { + MiniAppService.inst().getPopToastDepend().a(activity, this.a, this.b, 17); + NativeModule.NativeModuleCallback nativeModuleCallback = this.c; + if (nativeModuleCallback != null) + nativeModuleCallback.onNativeModuleCall("ok"); + } + } + }); + return null; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\m\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/n.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/n.java new file mode 100644 index 0000000..f634ba7 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/n.java @@ -0,0 +1,11 @@ +package com.ss.android.ugc.aweme.miniapp; + +import com.ss.android.ugc.aweme.miniapp_api.b.g; +import com.ss.android.ugc.aweme.miniapp_api.b.i; + + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\n.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/n/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/n/a.java new file mode 100644 index 0000000..1308058 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/n/a.java @@ -0,0 +1,53 @@ +package com.ss.android.ugc.aweme.miniapp.n; + +import android.content.Intent; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.NativeModule; +import com.tt.option.n.b; + +public final class a extends NativeModule { + public boolean a; + + public b.d b; + + public a(AppbrandContext paramAppbrandContext) { + super(paramAppbrandContext); + } + + public final String getName() { + return "scanCode"; + } + + public final String invoke(String paramString, NativeModule.NativeModuleCallback paramNativeModuleCallback) throws Exception { + return null; + } + + public final boolean onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + boolean bool1 = this.a; + boolean bool = false; + if (!bool1) + return false; + this.a = false; + String str1 = MiniAppService.inst().getBaseLibDepend().a(); + String str2 = MiniAppService.inst().getBaseLibDepend().b(); + if (paramInt2 == -1) { + if (paramIntent != null) { + str1 = paramIntent.getStringExtra(str1); + String str = paramIntent.getStringExtra(str2); + b.d d1 = this.b; + if (d1 != null) + d1.onScanResult(str1, str); + } + bool = true; + } + this.b = null; + return bool; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\n\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/o.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/o.java new file mode 100644 index 0000000..475fe65 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/o.java @@ -0,0 +1,10 @@ +package com.ss.android.ugc.aweme.miniapp; + +import com.ss.android.ugc.aweme.miniapp_api.b.g; + + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\o.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/p.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/p.java new file mode 100644 index 0000000..7b88040 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/p.java @@ -0,0 +1,10 @@ +package com.ss.android.ugc.aweme.miniapp; + +import com.ss.android.ugc.aweme.miniapp_api.b.g; + + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\p.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/OnePixelPayActivity.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/OnePixelPayActivity.java new file mode 100644 index 0000000..323722d --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/OnePixelPayActivity.java @@ -0,0 +1,219 @@ +package com.ss.android.ugc.aweme.miniapp.pay; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.os.Parcelable; +import android.text.TextUtils; +import android.view.MotionEvent; +import android.view.Window; +import android.view.WindowManager; +import com.bytedance.apm.agent.v2.instrumentation.ActivityAgent; +import com.ss.android.ugc.aweme.miniapp.BaseActivity; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp_api.a.c; +import com.ss.android.ugc.aweme.miniapp_api.b.a; +import com.ss.android.ugc.aweme.miniapp_api.model.a.a; +import com.ss.android.ugc.aweme.miniapp_api.model.b.c; +import com.tt.frontendapiinterface.ApiCallResult; +import com.tt.frontendapiinterface.a; +import com.tt.miniapp.util.ActivityUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.IDCreator; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.helper.AsyncIpcHandler; +import com.tt.miniapphost.util.DebugUtil; +import com.tt.miniapphost.util.ProcessUtil; +import org.json.JSONException; +import org.json.JSONObject; + +public class OnePixelPayActivity extends BaseActivity { + public AsyncIpcHandler a; + + public String b; + + public boolean c; + + public int d; + + private boolean e = true; + + private String f; + + private String g; + + private int h; + + public static ApiCallResult a(String paramString) { + return ApiCallResult.a.b("requestPayment").d(paramString).a(); + } + + public static void a(AsyncIpcHandler paramAsyncIpcHandler, ApiCallResult paramApiCallResult) { + if (paramAsyncIpcHandler == null) { + DebugUtil.outputError("OnePixelPayActivity", new Object[] { "asyncIpcHandler ==null" }); + return; + } + AppBrandLogger.i("OnePixelPayActivity", new Object[] { "apiCallResult:", paramApiCallResult }); + paramAsyncIpcHandler.callback(CrossProcessDataEntity.Builder.create().putParcelable("payResult", (Parcelable)paramApiCallResult).build()); + } + + public static ApiCallResult b(String paramString) { + return ApiCallResult.a.b("requestWXPayment").d(paramString).a(); + } + + public boolean dispatchTouchEvent(MotionEvent paramMotionEvent) { + return true; + } + + public void finish() { + super.finish(); + overridePendingTransition(0, 0); + } + + protected void onCreate(Bundle paramBundle) { + c.a a; + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.pay.OnePixelPayActivity", "onCreate", true); + super.onCreate(paramBundle); + overridePendingTransition(0, 0); + Window window = getWindow(); + window.setGravity(8388659); + WindowManager.LayoutParams layoutParams = window.getAttributes(); + layoutParams.x = 0; + layoutParams.y = 0; + layoutParams.height = 1; + layoutParams.width = 1; + window.setAttributes(layoutParams); + this.d = IDCreator.create(); + Intent intent = getIntent(); + String str = intent.getStringExtra("pay_str"); + this.a = ProcessUtil.generateAsyncIpcHandlerFromIntent(intent); + this.c = intent.getBooleanExtra("is_wx_mini_pay", false); + this.f = intent.getStringExtra("user_name"); + this.h = intent.getIntExtra("mini_program_type", 0); + this.b = intent.getStringExtra("app_id"); + this.g = intent.getStringExtra("path"); + c c = MiniAppService.inst().getBaseLibDepend(); + if (c == null) { + finish(); + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.pay.OnePixelPayActivity", "onCreate", false); + return; + } + c.a("wx_pay", new a(this) { + public final void onEvent(a param1a) { + if (this.a.d > 0 && param1a != null && this.a.c) { + StringBuilder stringBuilder = new StringBuilder("mWxMiniProgramCallbackId "); + stringBuilder.append(this.a.d); + AppBrandLogger.d("OnePixelPayActivity", new Object[] { stringBuilder.toString() }); + OnePixelPayActivity onePixelPayActivity2 = this.a; + ActivityUtil.moveMiniAppActivityToFront((Activity)onePixelPayActivity2, onePixelPayActivity2.b); + String str = param1a.getMessage(); + onePixelPayActivity2 = null; + if (str != null) { + String str1; + try { + str1 = (new JSONObject(param1a.getMessage())).optString("errMsg"); + } catch (JSONException jSONException) { + AppBrandLogger.e("OnePixelPayActivity", new Object[] { "onWXMiniProgramResp", jSONException }); + str1 = ""; + } + int i = true ^ TextUtils.isEmpty(str1); + if (i != 0 && str1.startsWith("requestPayment:ok")) { + OnePixelPayActivity.a(this.a.a, ApiCallResult.a.a("requestWXPayment").a()); + } else { + String str2; + if (i != 0) + str2 = str1.replace("requestPayment:fail", "").trim(); + OnePixelPayActivity.a(this.a.a, OnePixelPayActivity.b(str2)); + } + } else { + OnePixelPayActivity.a(this.a.a, OnePixelPayActivity.a((String)null)); + } + OnePixelPayActivity onePixelPayActivity1 = this.a; + onePixelPayActivity1.d = 0; + if (!onePixelPayActivity1.isFinishing()) + this.a.finish(); + } + } + }); + MiniAppService.inst().getPayDepend(); + if (this.c) { + a = new c.a(); + a.b = this.g; + a.a = this.f; + a.d = this.h; + a.e = true; + c c1 = new c(); + c1.c = a.c; + c1.b = a.b; + c1.e = a.e; + c1.d = a.d; + c1.a = a.a; + } else if (TextUtils.isEmpty((CharSequence)a)) { + if (!isFinishing()) + finish(); + } else { + try { + new JSONObject((String)a); + new Object(this) { + + }; + } finally { + a = null; + AppBrandLogger.e("OnePixelPayActivity", new Object[] { "pay exception", a }); + a(this.a, a(a.a((Throwable)a))); + } + } + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.pay.OnePixelPayActivity", "onCreate", false); + } + + protected void onDestroy() { + super.onDestroy(); + if (AppBrandLogger.debug()) + AppBrandLogger.d("OnePixelPayActivity", new Object[] { "onDestroy" }); + c c = MiniAppService.inst().getBaseLibDepend(); + if (c != null) + c.a("wx_pay"); + } + + protected void onPause() { + super.onPause(); + if (AppBrandLogger.debug()) + AppBrandLogger.d("OnePixelPayActivity", new Object[] { "onPause" }); + } + + protected void onResume() { + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.pay.OnePixelPayActivity", "onResume", true); + super.onResume(); + AppBrandLogger.d("OnePixelPayActivity", new Object[] { "onResume " }); + if (this.e) { + this.e = false; + } else { + if (this.d > 0 && this.c) { + StringBuilder stringBuilder = new StringBuilder("mWxMiniProgramCallbackId "); + stringBuilder.append(this.d); + AppBrandLogger.d("OnePixelPayActivity", new Object[] { stringBuilder.toString() }); + a(this.a, b("cancel")); + this.d = 0; + String str = getIntent().getStringExtra("app_id"); + AppBrandLogger.i("OnePixelPayActivity", new Object[] { "moveMiniAppActivityToFront appId:", str }); + ActivityUtil.moveMiniAppActivityToFront((Activity)this, str); + if (!isFinishing()) + finish(); + } + if (!isFinishing()) + finish(); + } + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.pay.OnePixelPayActivity", "onResume", false); + } + + public void onWindowFocusChanged(boolean paramBoolean) { + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.pay.OnePixelPayActivity", "onWindowFocusChanged", true); + super.onWindowFocusChanged(paramBoolean); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\pay\OnePixelPayActivity.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/a.java new file mode 100644 index 0000000..c1282ec --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/a.java @@ -0,0 +1,36 @@ +package com.ss.android.ugc.aweme.miniapp.pay; + +import java.io.Serializable; + +public final class a implements Serializable { + private int a; + + private String b; + + public a(int paramInt, String paramString) { + this.a = paramInt; + this.b = paramString; + } + + public final int getCode() { + return this.a; + } + + public final String getMessage() { + return this.b; + } + + public final void setCode(int paramInt) { + this.a = paramInt; + } + + public final void setMessage(String paramString) { + this.b = paramString; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\pay\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/a/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/a/a.java new file mode 100644 index 0000000..9580204 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/a/a.java @@ -0,0 +1,15 @@ +package com.ss.android.ugc.aweme.miniapp.pay.a; + +public final class a { + private a() {} + + public static final class a { + public static final a a = new a(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\pay\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/a/b.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/a/b.java new file mode 100644 index 0000000..f96b817 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/pay/a/b.java @@ -0,0 +1,145 @@ +package com.ss.android.ugc.aweme.miniapp.pay.a; + +import java.io.Serializable; + +public final class b implements Serializable { + public String appId; + + public String from; + + public int hideNavbar = 1; + + public String loadingBgColor = "ffffff"; + + public String logParams; + + public String mark; + + public String merchantId; + + public String orderId; + + public String statusBarColor = "#ffffff"; + + public int statusBarHeight; + + public int statusFontDark = 1; + + public final String getAppId() { + return this.appId; + } + + public final String getFrom() { + return this.from; + } + + public final int getHideNavbar() { + return this.hideNavbar; + } + + public final String getLoadingBgColor() { + return this.loadingBgColor; + } + + public final String getLogParams() { + return this.logParams; + } + + public final String getMark() { + return this.mark; + } + + public final String getMerchantId() { + return this.merchantId; + } + + public final String getOrderId() { + return this.orderId; + } + + public final String getStatusBarColor() { + return this.statusBarColor; + } + + public final int getStatusBarHeight() { + return this.statusBarHeight; + } + + public final int getStatusFontDark() { + return this.statusFontDark; + } + + public final void setAppId(String paramString) { + this.appId = paramString; + } + + public final void setFrom(String paramString) { + this.from = paramString; + } + + public final void setHideNavbar(int paramInt) { + this.hideNavbar = paramInt; + } + + public final void setLoadingBgColor(String paramString) { + this.loadingBgColor = paramString; + } + + public final void setLogParams(String paramString) { + this.logParams = paramString; + } + + public final void setMark(String paramString) { + this.mark = paramString; + } + + public final void setMerchantId(String paramString) { + this.merchantId = paramString; + } + + public final void setOrderId(String paramString) { + this.orderId = paramString; + } + + public final void setStatusBarColor(String paramString) { + this.statusBarColor = paramString; + } + + public final void setStatusBarHeight(int paramInt) { + this.statusBarHeight = paramInt; + } + + public final void setStatusFontDark(int paramInt) { + this.statusFontDark = paramInt; + } + + public static final class a { + public String a; + + public String b; + + public String c; + + public String d; + + public String e; + + public String f; + + public int g = 1; + + public int h = 1; + + public String i = "#ffffff"; + + public String j = "ffffff"; + + public int k; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\pay\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/t.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/t.java new file mode 100644 index 0000000..478c650 --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/t.java @@ -0,0 +1,9 @@ +package com.ss.android.ugc.aweme.miniapp; + +public final class t {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\t.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/a.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/a.java new file mode 100644 index 0000000..110d14c --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/a.java @@ -0,0 +1,21 @@ +package com.ss.android.ugc.aweme.miniapp.utils; + +import android.content.Context; +import android.support.v7.app.b; + +public final class a { + public b.a a; + + private Context b; + + public a(Context paramContext) { + this.b = paramContext; + this.a = new b.a(paramContext, 2097807363); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniap\\utils\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/b.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/b.java new file mode 100644 index 0000000..7a156ee --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/b.java @@ -0,0 +1,81 @@ +package com.ss.android.ugc.aweme.miniapp.utils; + +import com.ss.android.ugc.aweme.miniapp_api.model.net.c; +import com.ss.android.ugc.aweme.miniapp_api.model.net.d; +import com.tt.option.q.i; +import com.tt.option.q.j; +import com.tt.option.w.h; +import java.util.Map; + +public final class b { + public static com.ss.android.ugc.aweme.miniapp_api.model.b.c a(h paramh) { + com.ss.android.ugc.aweme.miniapp_api.model.b.c c = new com.ss.android.ugc.aweme.miniapp_api.model.b.c(); + c.a = paramh.channel; + c.l = paramh.desc; + c.g = paramh.token; + c.f = paramh.entryPath; + c.e = paramh.extra; + c.j = paramh.schema; + c.c = paramh.imageUrl; + c.d = paramh.queryString; + c.h = paramh.miniImageUrl; + c.k = paramh.shareType; + c.b = paramh.title; + c.i = paramh.ugUrl; + com.ss.android.ugc.aweme.miniapp_api.model.b.a a = new com.ss.android.ugc.aweme.miniapp_api.model.b.a(); + a.a = paramh.appInfo.appId; + a.c = paramh.appInfo.appName; + a.b = paramh.appInfo.icon; + a.e = paramh.appInfo.query; + a.d = paramh.appInfo.startPage; + a.f = paramh.appInfo.type; + c.m = a; + return c; + } + + public static c a(i parami) { + c c = new c(); + c.l = parami.k; + c.k = parami.l; + c.h = parami.f; + c.e = parami.c; + c.f = parami.e; + c.g = parami.e(); + c.d = parami.i; + parami.p = new i.a(c) { + public final void doCancel() { + c c1 = this.a; + if (c1.p != null) + c1.p.a(); + } + }; + for (Map.Entry entry : parami.h.entrySet()) { + String str = (String)entry.getKey(); + i.b b2 = (i.b)entry.getValue(); + c.b b1 = new c.b(b2.a, b2.b); + c.j.put(str, b1); + } + c.i = parami.c(); + c.m = parami.l; + c.c = parami.f(); + c.n = parami.m; + c.o = parami.o; + return c; + } + + public static j a(d paramd) { + j j = new j(); + j.e = paramd.a(); + j.b = paramd.b; + j.d = paramd.d; + j.c = paramd.c; + j.f = paramd.g; + return j; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniap\\utils\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/c.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/c.java new file mode 100644 index 0000000..3f7243e --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/c.java @@ -0,0 +1,27 @@ +package com.ss.android.ugc.aweme.miniapp.utils; + +import com.google.gson.f; + +public final class c { + private static f a; + + private static f a() { + if (a == null) + a = new f(); + return a; + } + + public static T a(String paramString, Class paramClass) { + return (T)a().a(paramString, paramClass); + } + + public static String a(Object paramObject) { + return a().b(paramObject); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniap\\utils\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/e.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/e.java new file mode 100644 index 0000000..296140b --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/e.java @@ -0,0 +1,94 @@ +package com.ss.android.ugc.aweme.miniapp.utils; + +import android.app.Activity; +import android.view.View; +import com.bytedance.apm.agent.v2.instrumentation.ClickAgent; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp.f; +import com.ss.android.ugc.aweme.miniapp_api.b.a.a; +import com.ss.android.ugc.aweme.miniapp_api.b.a.b; +import com.ss.android.ugc.aweme.miniapp_api.b.a.c; +import com.ss.android.ugc.aweme.miniapp_api.model.d; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.hostmethod.HostMethodManager; +import com.tt.miniapphost.process.HostProcessBridge; +import org.json.JSONException; +import org.json.JSONObject; + +public final class e { + public static void a(Activity paramActivity, String paramString, long paramLong, HostMethodManager.ResponseCallBack paramResponseCallBack) { + JSONObject jSONObject = new JSONObject(); + MiniAppService.inst().getBaseLibDepend().a(0L, new a(paramString, paramLong, jSONObject, paramResponseCallBack) { + public final Object a(c param1c) { + try { + return MiniAppService.inst().getBaseLibDepend().a(this.a, this.b); + } catch (Exception exception) { + try { + e.a(this.c, 1, "get_relation_api_fail"); + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(5, "TMA_MiniAppShareUtils", exception.getStackTrace()); + } + this.d.callResponse(this.c.toString()); + return null; + } + } + }new b(paramActivity, paramLong, jSONObject, paramResponseCallBack) { + public final Object a(c param1c) { + if (param1c.b != null) { + d d = (d)param1c.b; + if (d != null && d.d == 0 && !d.c && !param1c.a) { + Activity activity = this.a; + long l = this.b; + MiniAppService.inst().getBaseLibDepend().a(activity, d, l, new View.OnClickListener() { + public final void onClick(View param1View) { + ClickAgent.onClick(param1View); + HostProcessBridge.logEvent("click_mp_follow_dialog", new JSONObject((f.a().a("final_status", "cancel")).a)); + } + }new View.OnClickListener(d, l) { + public final void onClick(View param1View) { + ClickAgent.onClick(param1View); + HostProcessBridge.logEvent("click_mp_follow_dialog", new JSONObject((f.a().a("final_status", "confirm")).a)); + long l1 = this.a.a; + long l2 = this.b; + MiniAppService.inst().getBaseLibDepend().a(0L, new a(l1, l2) { + public final Object a(c param1c) { + try { + MiniAppService.inst().getBaseLibDepend().b(this.a, this.b); + } catch (Exception exception) { + AppBrandLogger.stacktrace(5, "TMA_MiniAppShareUtils", exception.getStackTrace()); + } + return null; + } + }new b() { + public final Object a(c param1c) { + return null; + } + }, false); + } + }); + HostProcessBridge.logEvent("show_mp_follow_dialog", new JSONObject((f.a()).a)); + } else { + try { + e.a(this.c, 1, "already_friends"); + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(5, "TMA_MiniAppShareUtils", jSONException.getStackTrace()); + } + this.d.callResponse(this.c.toString()); + } + } + return null; + } + }true); + } + + public static void a(JSONObject paramJSONObject, int paramInt, String paramString) throws JSONException { + paramJSONObject.put("status_msg", paramString); + paramJSONObject.put("status_code", "failed"); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniap\\utils\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/f.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/f.java new file mode 100644 index 0000000..dfc022b --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/utils/f.java @@ -0,0 +1,439 @@ +package com.ss.android.ugc.aweme.miniapp.utils; + +import android.content.Context; +import android.os.Build; +import android.text.TextUtils; +import android.widget.Toast; +import com.ss.android.ugc.aweme.app.f.d; +import com.ss.android.ugc.aweme.common.MobClick; +import com.ss.android.ugc.aweme.common.g; +import com.ss.android.ugc.aweme.framework.a.a; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp.b; +import com.ss.android.ugc.aweme.miniapp_api.a.g; +import com.ss.android.ugc.aweme.miniapp_api.a.n; +import com.ss.android.ugc.aweme.miniapp_api.c; +import com.ss.android.ugc.aweme.miniapp_api.d; +import com.ss.android.ugc.aweme.miniapp_api.model.b.a; +import com.ss.android.ugc.aweme.miniapp_api.model.b.b; +import com.ss.android.ugc.aweme.miniapp_api.model.e; +import com.ss.android.ugc.aweme.miniapp_api.model.g; +import com.ss.android.ugc.aweme.utils.v; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandConstants; +import com.tt.miniapphost.AppbrandSupport; +import com.tt.miniapphost.appbase.listener.MiniAppPreloadListCheckListener; +import com.tt.miniapphost.entity.DisableStateEntity; +import com.tt.miniapphost.entity.MicroSchemaEntity; +import com.tt.miniapphost.entity.PreLoadAppEntity; +import com.tt.miniapphost.host.HostDependManager; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import org.json.JSONException; +import org.json.JSONObject; + +public final class f { + private static int a(int paramInt) { + int i = paramInt; + if (paramInt == 3) + i = 1; + return i; + } + + public static void a() { + n n = MiniAppService.inst().getSettingsDepend(); + if (n != null && !n.b()) + return; + v.b(new Runnable() { + public final void run() { + AppbrandSupport.inst().preloadEmptyProcess(); + } + }); + } + + public static void a(Context paramContext, String paramString1, String paramString2, boolean paramBoolean, String paramString3, String paramString4) { + if (!TextUtils.isEmpty(paramString3)) { + g g = (g)(new com.google.gson.f()).a(paramString4, g.class); + if (TextUtils.equals(g.getChannel(), "awe_friend")) { + (c.a()).a = g; + (c.a()).c = paramString3; + } + } + paramString1 = d.a(paramString1, paramString2, paramBoolean, ""); + if (TextUtils.isEmpty(paramString1)) + return; + a(paramContext, paramString1, (new b.a()).b("chat").a("share_chat").c("024001").a()); + } + + public static void a(String paramString) { + if (!d.d(paramString)) + return; + String str = d.a(paramString); + byte b = 1; + if (d.e(paramString)) + b = 2; + a(str, b); + } + + private static void a(String paramString, int paramInt) { + if (!MiniAppService.inst().getSettingsDepend().a()) { + AppBrandLogger.d("MiniAppUtils", new Object[] { "not enable preload" }); + return; + } + if (TextUtils.isEmpty(paramString)) + return; + PreLoadAppEntity preLoadAppEntity = new PreLoadAppEntity(); + preLoadAppEntity.setAppid(paramString); + preLoadAppEntity.setApptype(paramInt); + ArrayList arrayList = new ArrayList(); + arrayList.add(preLoadAppEntity); + AppbrandSupport.inst().preloadMiniApp(arrayList, Collections.emptyList()); + } + + public static void a(String paramString, int paramInt, Map paramMap) { + n n = MiniAppService.inst().getSettingsDepend(); + if (n != null && n.a()) { + if (TextUtils.isEmpty(paramString)) + return; + paramInt = a(paramInt); + PreLoadAppEntity preLoadAppEntity = new PreLoadAppEntity(); + preLoadAppEntity.setAppid(paramString); + preLoadAppEntity.setApptype(paramInt); + ArrayList arrayList = new ArrayList(); + arrayList.add(preLoadAppEntity); + AppbrandSupport.inst().preloadMiniApp(arrayList, null, new MiniAppPreloadListCheckListener() { + public final void onPreloadMiniAppListInvalid(String param1String) {} + }); + } + } + + public static void a(String paramString1, String paramString2, String paramString3) { + d d = d.a().a("mp_id", d.a(paramString1)); + if (d.c(paramString1)) { + paramString1 = "micro_app"; + } else { + paramString1 = "micro_game"; + } + g.a(paramString3, (d.a("_param_for_special", paramString1).a("enter_from", paramString2)).a); + } + + public static boolean a(Context paramContext, e parame, b paramb) { + JSONObject jSONObject; + if (parame != null && parame.getType() == 3) { + if (Build.VERSION.SDK_INT < 21 || !d.d(parame.getSchema())) { + if (MiniAppService.inst().getRouterDepend() != null && !TextUtils.isEmpty(parame.getWebUrl())) + try { + jSONObject = new JSONObject(); + jSONObject.put("web_url", parame.getWebUrl()); + MiniAppService.inst().getRouterDepend().b(paramContext, jSONObject.toString()); + } catch (Exception exception) {} + return false; + } + return a((Context)exception, d.a(parame), (b)jSONObject); + } + return a((Context)exception, d.a(parame), (b)jSONObject); + } + + public static boolean a(Context paramContext, String paramString) { + if (!d.b(paramString)) + return false; + DisableStateEntity disableStateEntity = AppbrandConstants.getBundleManager().checkMiniAppDisableState(0); + if (disableStateEntity != null) { + if (paramContext == null || TextUtils.isEmpty(paramString) || !HostDependManager.getInst().handleAppbrandDisablePage(paramContext, paramString)) + HostDependManager.getInst().jumpToWebView(paramContext, disableStateEntity.getHintUrl(), "", true); + return false; + } + return true; + } + + public static boolean a(Context paramContext, String paramString, b paramb) { + HashMap hashMap; + g g; + String str1; + String str2; + String str3; + com.ss.android.ugc.aweme.dfbase.c.f.a(paramContext); + if (!b.c) { + g.a(Toast.makeText(paramContext, paramContext.getString(2097742062), 0)); + return false; + } + String str4 = ""; + if (paramb != null) { + str1 = paramb.b; + } else { + str1 = ""; + } + if (paramb != null) { + str2 = paramb.c; + } else { + str2 = ""; + } + if (paramb != null) { + str3 = paramb.a; + } else { + str3 = ""; + } + if (paramb != null) + str4 = paramb.f; + MicroSchemaEntity microSchemaEntity = MicroSchemaEntity.parseFromSchema(paramString); + if (microSchemaEntity == null) { + hashMap = new HashMap(); + hashMap.put("uri", paramString); + g = MiniAppService.inst().getMonitorDepend(); + if (g != null) + g.a("mini_app_parse_fail", new JSONObject(hashMap)); + return false; + } + if (a((String)g, paramb)) + microSchemaEntity.addCustomField("from", paramb.e); + if (!TextUtils.isEmpty(str2)) + microSchemaEntity.setScene(str2); + if (!TextUtils.isEmpty(str1)) + microSchemaEntity.addBdpLogField("launch_from", str1); + if (!TextUtils.isEmpty(str3)) + microSchemaEntity.addBdpLogField("location", str3); + if (!TextUtils.isEmpty(str4)) + microSchemaEntity.addBdpLogField("group_id", str4); + boolean bool = a((Context)hashMap, microSchemaEntity.toSchema()); + if (hashMap != null && bool) + b((Context)hashMap, (String)g); + return bool; + } + + private static boolean a(String paramString, b paramb) { + a a = b(paramString, paramb); + JSONObject jSONObject = new JSONObject(); + if (a != null) { + try { + jSONObject.put("log_extra", a.e); + jSONObject.put("is_ad_event", "1"); + } catch (JSONException jSONException) { + a.a((Exception)jSONException); + } + if (TextUtils.equals(paramb.e, "open_url")) { + g.onEvent(MobClick.obtain().setEventName("embeded_ad").setValue(a.b).setJsonObject(jSONObject).setLabelName("open_url_microapp")); + } else { + g.onEvent(MobClick.obtain().setEventName("embeded_ad").setValue(a.b).setJsonObject(jSONObject).setLabelName("micro_app_app")); + } + return true; + } + return false; + } + + private static a b(String paramString, b paramb) { + // Byte code: + // 0: aload_0 + // 1: astore_3 + // 2: aload_0 + // 3: invokestatic parse : (Ljava/lang/String;)Landroid/net/Uri; + // 6: astore #5 + // 8: aload_0 + // 9: astore_3 + // 10: aload_0 + // 11: ldc_w 'UTF-8' + // 14: invokestatic decode : (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + // 17: astore #4 + // 19: aload #4 + // 21: astore_3 + // 22: aload #4 + // 24: invokestatic c : (Ljava/lang/String;)Z + // 27: istore_2 + // 28: iload_2 + // 29: ifeq -> 90 + // 32: aload #4 + // 34: astore_3 + // 35: aload #5 + // 37: ldc_w 'start_page' + // 40: invokevirtual getQueryParameter : (Ljava/lang/String;)Ljava/lang/String; + // 43: astore_0 + // 44: aload #4 + // 46: astore_3 + // 47: new java/lang/StringBuilder + // 50: dup + // 51: ldc_w 'start_page://' + // 54: invokespecial : (Ljava/lang/String;)V + // 57: astore #5 + // 59: aload #4 + // 61: astore_3 + // 62: aload #5 + // 64: aload_0 + // 65: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 68: pop + // 69: aload #4 + // 71: astore_3 + // 72: aload #5 + // 74: invokevirtual toString : ()Ljava/lang/String; + // 77: invokestatic parse : (Ljava/lang/String;)Landroid/net/Uri; + // 80: ldc_w 'ad_params' + // 83: invokevirtual getQueryParameter : (Ljava/lang/String;)Ljava/lang/String; + // 86: astore_0 + // 87: goto -> 209 + // 90: aload #4 + // 92: astore_3 + // 93: aload #4 + // 95: invokestatic e : (Ljava/lang/String;)Z + // 98: ifeq -> 158 + // 101: aload #4 + // 103: astore_3 + // 104: aload #5 + // 106: ldc_w 'query' + // 109: invokevirtual getQueryParameter : (Ljava/lang/String;)Ljava/lang/String; + // 112: astore_0 + // 113: aload #4 + // 115: astore_3 + // 116: aload_0 + // 117: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 120: ifne -> 158 + // 123: aload #4 + // 125: astore_3 + // 126: new org/json/JSONObject + // 129: dup + // 130: aload_0 + // 131: invokespecial : (Ljava/lang/String;)V + // 134: ldc_w 'ad_params' + // 137: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 140: astore_0 + // 141: aload_0 + // 142: ldc_w 'UTF-8' + // 145: invokestatic decode : (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + // 148: astore_3 + // 149: aload_3 + // 150: astore_0 + // 151: goto -> 209 + // 154: astore_3 + // 155: goto -> 173 + // 158: aconst_null + // 159: astore_0 + // 160: goto -> 209 + // 163: astore #5 + // 165: aconst_null + // 166: astore_0 + // 167: aload_3 + // 168: astore #4 + // 170: aload #5 + // 172: astore_3 + // 173: new java/lang/StringBuilder + // 176: dup + // 177: invokespecial : ()V + // 180: astore #5 + // 182: aload #5 + // 184: aload_3 + // 185: invokevirtual getMessage : ()Ljava/lang/String; + // 188: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 191: pop + // 192: aload #5 + // 194: ldc_w 'schema is' + // 197: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 200: pop + // 201: aload #5 + // 203: aload #4 + // 205: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 208: pop + // 209: aload_0 + // 210: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 213: ifeq -> 218 + // 216: aconst_null + // 217: areturn + // 218: new org/json/JSONObject + // 221: dup + // 222: aload_0 + // 223: invokespecial : (Ljava/lang/String;)V + // 226: astore #5 + // 228: aload #5 + // 230: ldc 'web_url' + // 232: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 235: astore_0 + // 236: aload #5 + // 238: ldc_w 'web_title' + // 241: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 244: astore_3 + // 245: aload #5 + // 247: ldc_w 'cid' + // 250: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 253: astore #4 + // 255: aload #5 + // 257: ldc_w 'log_extra' + // 260: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 263: astore #5 + // 265: aload_1 + // 266: getfield e : Ljava/lang/String; + // 269: astore #6 + // 271: new com/ss/android/ugc/aweme/miniapp_api/model/b/a$a + // 274: dup + // 275: invokespecial : ()V + // 278: astore_1 + // 279: aload_1 + // 280: aload #4 + // 282: putfield b : Ljava/lang/String; + // 285: aload_1 + // 286: aload_0 + // 287: putfield a : Ljava/lang/String; + // 290: aload_1 + // 291: aload #6 + // 293: putfield d : Ljava/lang/String; + // 296: aload_1 + // 297: aload #5 + // 299: putfield e : Ljava/lang/String; + // 302: aload_1 + // 303: aload_3 + // 304: putfield c : Ljava/lang/String; + // 307: new com/ss/android/ugc/aweme/miniapp_api/model/b/a + // 310: dup + // 311: invokespecial : ()V + // 314: astore_0 + // 315: aload_0 + // 316: aload_1 + // 317: getfield b : Ljava/lang/String; + // 320: putfield b : Ljava/lang/String; + // 323: aload_0 + // 324: aload_1 + // 325: getfield d : Ljava/lang/String; + // 328: putfield d : Ljava/lang/String; + // 331: aload_0 + // 332: aload_1 + // 333: getfield a : Ljava/lang/String; + // 336: putfield a : Ljava/lang/String; + // 339: aload_0 + // 340: aload_1 + // 341: getfield c : Ljava/lang/String; + // 344: putfield c : Ljava/lang/String; + // 347: aload_0 + // 348: aload_1 + // 349: getfield e : Ljava/lang/String; + // 352: putfield e : Ljava/lang/String; + // 355: aload_0 + // 356: areturn + // 357: aconst_null + // 358: areturn + // 359: astore_0 + // 360: goto -> 357 + // Exception table: + // from to target type + // 2 8 163 java/lang/Exception + // 10 19 163 java/lang/Exception + // 22 28 163 java/lang/Exception + // 35 44 163 java/lang/Exception + // 47 59 163 java/lang/Exception + // 62 69 163 java/lang/Exception + // 72 87 163 java/lang/Exception + // 93 101 163 java/lang/Exception + // 104 113 163 java/lang/Exception + // 116 123 163 java/lang/Exception + // 126 141 163 java/lang/Exception + // 141 149 154 java/lang/Exception + // 218 355 359 org/json/JSONException + } + + private static boolean b(Context paramContext, String paramString) { + AppbrandSupport.inst().openAppbrand(paramString); + return true; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniap\\utils\f.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/views/MainProcessProxyActivity.java b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/views/MainProcessProxyActivity.java new file mode 100644 index 0000000..6276b9f --- /dev/null +++ b/df_miniapp/classes/com/ss/android/ugc/aweme/miniapp/views/MainProcessProxyActivity.java @@ -0,0 +1,290 @@ +package com.ss.android.ugc.aweme.miniapp.views; + +import android.app.Activity; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.b; +import android.text.TextUtils; +import android.util.Log; +import android.view.Window; +import android.view.WindowManager; +import com.bytedance.apm.agent.v2.instrumentation.ActivityAgent; +import com.ss.android.ugc.aweme.miniapp.MiniAppService; +import com.ss.android.ugc.aweme.miniapp.utils.f; +import com.ss.android.ugc.aweme.miniapp_api.a.c; +import com.ss.android.ugc.aweme.miniapp_api.a.l; +import com.ss.android.ugc.aweme.miniapp_api.b.a; +import com.ss.android.ugc.aweme.miniapp_api.b.c; +import com.ss.android.ugc.aweme.miniapp_api.b.e; +import com.ss.android.ugc.aweme.miniapp_api.b.h; +import com.ss.android.ugc.aweme.miniapp_api.c; +import com.ss.android.ugc.aweme.miniapp_api.d; +import com.ss.android.ugc.aweme.miniapp_api.model.a.a; +import com.tt.miniapp.util.ActivityUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.helper.AsyncIpcHandler; +import com.tt.miniapphost.util.ProcessUtil; +import java.io.Serializable; + +public class MainProcessProxyActivity extends Activity { + public static final String a = MainProcessProxyActivity.class.getSimpleName(); + + public AsyncIpcHandler b; + + public boolean c; + + private int d; + + private boolean e = true; + + private Dialog f; + + public final void a(DialogInterface paramDialogInterface, boolean paramBoolean) { + if (this.b == null) + this.b = ProcessUtil.generateAsyncIpcHandlerFromIntent(getIntent()); + AsyncIpcHandler asyncIpcHandler = this.b; + if (asyncIpcHandler != null) + asyncIpcHandler.callback(CrossProcessDataEntity.Builder.create().put("proxy_result", Boolean.valueOf(paramBoolean)).build()); + if (paramDialogInterface != null) + paramDialogInterface.dismiss(); + finish(); + } + + public void finish() { + super.finish(); + AppBrandLogger.i(a, new Object[] { Log.getStackTraceString(new Throwable()) }); + } + + public void onBackPressed() { + super.onBackPressed(); + AppBrandLogger.i(a, new Object[] { Log.getStackTraceString(new Throwable()) }); + } + + protected void onCreate(Bundle paramBundle) { + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.views.MainProcessProxyActivity", "onCreate", true); + super.onCreate(paramBundle); + overridePendingTransition(0, 0); + Window window = getWindow(); + window.setGravity(8388659); + WindowManager.LayoutParams layoutParams = window.getAttributes(); + layoutParams.x = 0; + layoutParams.y = 0; + layoutParams.height = 1; + layoutParams.width = 1; + window.setAttributes(layoutParams); + c c = MiniAppService.inst().getBaseLibDepend(); + if (c != null) { + String str; + c.a("video_publish", new a(this) { + public final void onEvent(a param1a) { + if (this.a.b != null) { + this.a.b.callback(CrossProcessDataEntity.Builder.create().put("proxy_result", Boolean.valueOf(param1a.isSuccess())).build()); + this.a.c = param1a.isSuccess(); + String str = MainProcessProxyActivity.a; + StringBuilder stringBuilder = new StringBuilder("onEvent_publishResult: "); + stringBuilder.append(param1a.isSuccess()); + AppBrandLogger.i(str, new Object[] { stringBuilder.toString() }); + } + AppBrandLogger.i(MainProcessProxyActivity.a, new Object[] { "onEvent_finish" }); + this.a.finish(); + } + }); + this.d = getIntent().getIntExtra("proxy_type", 0); + int i = this.d; + if (i == 0) { + String str2 = getIntent().getStringExtra("micro_app_schema"); + String str1 = getIntent().getStringExtra("enter_from"); + if (TextUtils.isEmpty(str2)) { + finish(); + } else { + c c1 = MiniAppService.inst().getBaseLibDepend(); + if (str1 == null) { + str = ""; + } else { + str = str1; + } + c1.a(this, str, "click_mp", new h(this, str2, str1) { + public final void a() { + f.a(this.a, this.b, "mp_login_success"); + if (f.a((Context)this.c, this.a)) + ActivityUtil.moveMiniAppActivityToFront(this.c, d.a(this.a)); + this.c.setResult(-1); + this.c.finish(); + } + + public final void a(Bundle param1Bundle) { + f.a(this.a, this.b, "mp_login_close"); + this.c.setResult(0); + this.c.finish(); + } + }); + } + } else if (i == 1) { + this.b = ProcessUtil.generateAsyncIpcHandlerFromIntent(getIntent()); + if (str.c()) { + str.a((Context)this, getString(2097741825)); + finish(); + } else { + MiniAppService.inst().getBaseLibDepend().c(this, getIntent()); + } + } else if (i == 2) { + this.b = ProcessUtil.generateAsyncIpcHandlerFromIntent(getIntent()); + if (str.c()) { + str.a((Context)this, getString(2097741825)); + finish(); + } else { + MiniAppService.inst().getBaseLibDepend().a(this, getIntent()); + } + } else if (i == 3) { + str = getIntent().getStringExtra("micro_app_schema"); + String str1 = getIntent().getStringExtra("enter_from"); + Bundle bundle = new Bundle(); + bundle.putParcelable("share_package", getIntent().getParcelableExtra("share_package")); + this.b = ProcessUtil.generateAsyncIpcHandlerFromIntent(getIntent()); + MiniAppService.inst().getBaseLibDepend().a((Context)this, bundle, new e(this, str, str1) { + public final void a(a param1a) { + if ("doLogin".equals(param1a.getType())) { + f.a(this.a, this.b, "mp_login_success"); + if (f.a((Context)this.c, this.a)) + ActivityUtil.moveMiniAppActivityToFront(this.c, d.a(this.a)); + } + if (this.c.b != null) + this.c.b.callback(CrossProcessDataEntity.Builder.create().put("proxy_result", Boolean.valueOf(param1a.isSuccess())).build()); + this.c.finish(); + } + }); + } else if (i == 4) { + str = getIntent().getStringExtra("game_pay_url"); + l l = MiniAppService.inst().getRouterDepend(); + (c.a()).f = new c.a(this, l, str) { + + }; + } else if (i == 5) { + this.b = ProcessUtil.generateAsyncIpcHandlerFromIntent(getIntent()); + MiniAppService.inst().getBaseLibDepend().a(this, "applet_authorize", null, new c(this) { + public final void a(int param1Int1, int param1Int2, Object param1Object) { + if (this.a.b == null) + return; + MiniAppService.inst().getConstantDepend(); + if (param1Int1 == 7) { + MiniAppService.inst().getConstantDepend(); + if (param1Int2 == 1) { + this.a.b.callback(CrossProcessDataEntity.Builder.create().put("bindPhoneNumberResult", Boolean.valueOf(true)).build()); + return; + } + this.a.b.callback(CrossProcessDataEntity.Builder.create().put("bindPhoneNumberResult", Boolean.valueOf(false)).build()); + } + } + }); + } else if (i == 6) { + if (b.a((Context)this, "android.permission.READ_CONTACTS") == 0) { + a((DialogInterface)null, true); + } else { + this.f = str.a((Context)this, new DialogInterface.OnClickListener(this) { + public final void onClick(DialogInterface param1DialogInterface, int param1Int) { + if (-1 == param1Int) { + b.a(this.a, new String[] { "android.permission.READ_CONTACTS" }, 1); + param1DialogInterface.dismiss(); + return; + } + this.a.a(param1DialogInterface, false); + } + }); + Dialog dialog = this.f; + if (dialog != null) { + dialog.setOnCancelListener(new DialogInterface.OnCancelListener(this) { + public final void onCancel(DialogInterface param1DialogInterface) { + this.a.a(param1DialogInterface, false); + } + }); + this.f.show(); + } else { + a((DialogInterface)null, false); + } + } + } + } + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.views.MainProcessProxyActivity", "onCreate", false); + } + + protected void onDestroy() { + super.onDestroy(); + if (!this.c && this.b != null) { + int i = this.d; + if (i == 2 || i == 1) { + this.b.callback(CrossProcessDataEntity.Builder.create().put("proxy_result", Boolean.valueOf(false)).build()); + AppBrandLogger.i(a, new Object[] { "onDestroy_publishResult: false" }); + } + } + if (MiniAppService.inst().getBaseLibDepend() != null) { + MiniAppService.inst().getBaseLibDepend().a("video_publish"); + AppBrandLogger.i(a, new Object[] { "onDestroy_unregister" }); + } + } + + public void onRequestPermissionsResult(int paramInt, String[] paramArrayOfString, int[] paramArrayOfint) { + boolean bool = true; + if (1 == paramInt && paramArrayOfString.length > 0 && TextUtils.equals("android.permission.READ_CONTACTS", paramArrayOfString[0])) { + if (paramArrayOfint[0] != 0) + bool = false; + a((DialogInterface)null, bool); + return; + } + super.onRequestPermissionsResult(paramInt, paramArrayOfString, paramArrayOfint); + } + + protected void onResume() { + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.views.MainProcessProxyActivity", "onResume", true); + super.onResume(); + if (this.e) { + this.e = false; + } else { + this.e = true; + if (!isFinishing()) { + if (this.d == 3) + finish(); + if (this.d == 4) { + c c = c.a(); + if (c.g != null) { + Intent intent = new Intent(); + intent.putExtra("pay_key_result_params", (Serializable)c.g); + setResult(-1, intent); + } + finish(); + } + if (this.d == 5) + finish(); + if (this.d == 0) + finish(); + if (this.d == 1) { + AppBrandLogger.i(a, new Object[] { "onResume_videoRecord_finish" }); + finish(); + } + if (this.d == 2) { + AppBrandLogger.i(a, new Object[] { "onResume_videoCut_finish" }); + finish(); + } + if (this.d == 6) { + a((DialogInterface)this.f, false); + finish(); + } + } + } + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.views.MainProcessProxyActivity", "onResume", false); + } + + public void onWindowFocusChanged(boolean paramBoolean) { + ActivityAgent.onTrace("com.ss.android.ugc.aweme.miniapp.views.MainProcessProxyActivity", "onWindowFocusChanged", true); + super.onWindowFocusChanged(paramBoolean); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\ss\androi\\ugc\aweme\miniapp\views\MainProcessProxyActivity.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tencent/appbrand/mmkv/MMKV.java b/df_miniapp/classes/com/tencent/appbrand/mmkv/MMKV.java new file mode 100644 index 0000000..e781729 --- /dev/null +++ b/df_miniapp/classes/com/tencent/appbrand/mmkv/MMKV.java @@ -0,0 +1,1023 @@ +package com.tencent.appbrand.mmkv; + +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Parcel; +import android.os.Parcelable; +import java.util.Arrays; +import java.util.EnumMap; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public class MMKV implements SharedPreferences, SharedPreferences.Editor { + private static MMKVHandler gCallbackHandler; + + private static b gContentChangeNotify; + + private static boolean gWantLogReDirecting; + + private static c[] index2LogLevel; + + private static boolean isInit; + + private static EnumMap logLevel2Index; + + private static final HashMap> mCreators; + + private static EnumMap recoverIndex; + + private static String rootDir; + + private boolean isClose; + + private long nativeHandle; + + static { + EnumMap enumMap = new EnumMap(d.class); + recoverIndex = (EnumMap)enumMap; + d d1 = d.OnErrorDiscard; + Integer integer1 = Integer.valueOf(0); + enumMap.put(d1, integer1); + EnumMap enumMap1 = recoverIndex; + d d2 = d.OnErrorRecover; + Integer integer2 = Integer.valueOf(1); + enumMap1.put(d2, integer2); + enumMap1 = (EnumMap)new EnumMap(c.class); + logLevel2Index = (EnumMap)enumMap1; + enumMap1.put(c.LevelDebug, integer1); + logLevel2Index.put(c.LevelInfo, integer2); + logLevel2Index.put(c.LevelWarning, Integer.valueOf(2)); + logLevel2Index.put(c.LevelError, Integer.valueOf(3)); + logLevel2Index.put(c.LevelNone, Integer.valueOf(4)); + index2LogLevel = new c[] { c.LevelDebug, c.LevelInfo, c.LevelWarning, c.LevelError, c.LevelNone }; + rootDir = null; + mCreators = new HashMap>(); + gWantLogReDirecting = false; + } + + private MMKV(long paramLong) { + this.nativeHandle = paramLong; + } + + private native String[] allKeys(); + + public static String byteToString(byte[] paramArrayOfbyte, String paramString) { + return (paramArrayOfbyte == null || paramArrayOfbyte.length <= 0) ? "" : byteToStringNative(paramArrayOfbyte, paramString); + } + + private static native String byteToStringNative(byte[] paramArrayOfbyte, String paramString); + + private native void clearAll(); + + private native void clearMemoryCache(); + + private native void close(); + + private native boolean containsKey(long paramLong, String paramString); + + private native long count(long paramLong); + + private static native long createNB(int paramInt); + + public static e createNativeBuffer(int paramInt) { + long l = createNB(paramInt); + return (l <= 0L) ? null : new e(l, paramInt); + } + + private native boolean decodeBool(long paramLong, String paramString, boolean paramBoolean); + + private native byte[] decodeBytes(long paramLong, String paramString); + + private native double decodeDouble(long paramLong, String paramString, double paramDouble); + + private native float decodeFloat(long paramLong, String paramString, float paramFloat); + + private native int decodeInt(long paramLong, String paramString, int paramInt); + + private native long decodeLong(long paramLong1, String paramString, long paramLong2); + + private native String decodeString(long paramLong, String paramString1, String paramString2); + + private native String[] decodeStringSet(long paramLong, String paramString); + + public static MMKV defaultMMKV() { + if (rootDir != null) + return new MMKV(getDefaultMMKV(1, null)); + throw new IllegalStateException("You should Call MMKV.initialize() first."); + } + + public static MMKV defaultMMKV(int paramInt, String paramString) { + if (rootDir != null) + return new MMKV(getDefaultMMKV(paramInt, paramString)); + throw new IllegalStateException("You should Call MMKV.initialize() first."); + } + + private static native void destroyNB(long paramLong, int paramInt); + + public static void destroyNativeBuffer(e parame) { + destroyNB(parame.a, parame.b); + } + + private native boolean encodeBool(long paramLong, String paramString, boolean paramBoolean); + + private native boolean encodeBytes(long paramLong, String paramString, byte[] paramArrayOfbyte); + + private native boolean encodeDouble(long paramLong, String paramString, double paramDouble); + + private native boolean encodeFloat(long paramLong, String paramString, float paramFloat); + + private native boolean encodeInt(long paramLong, String paramString, int paramInt); + + private native boolean encodeLong(long paramLong1, String paramString, long paramLong2); + + private native boolean encodeSet(long paramLong, String paramString, String[] paramArrayOfString); + + private native boolean encodeString(long paramLong, String paramString1, String paramString2); + + private static native long getDefaultMMKV(int paramInt, String paramString); + + private static native long getMMKVWithAshmemFD(String paramString1, int paramInt1, int paramInt2, String paramString2); + + private static native long getMMKVWithID(String paramString1, int paramInt, String paramString2, String paramString3); + + private static native long getMMKVWithIDAndSize(String paramString1, int paramInt1, int paramInt2, String paramString2); + + public static String getRootDir() { + return rootDir; + } + + public static String initialize(Context paramContext) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramContext.getFilesDir().getAbsolutePath()); + stringBuilder.append("/mmkv"); + return initialize(stringBuilder.toString(), null, c.LevelInfo); + } + + public static String initialize(Context paramContext, c paramc) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramContext.getFilesDir().getAbsolutePath()); + stringBuilder.append("/mmkv"); + return initialize(stringBuilder.toString(), null, paramc); + } + + public static String initialize(String paramString) { + return initialize(paramString, null, c.LevelInfo); + } + + public static String initialize(String paramString, a parama) { + return initialize(paramString, parama, c.LevelInfo); + } + + public static String initialize(String paramString, a parama, c paramc) { + if (parama != null) { + parama.loadLibrary("appbrand-mmkv"); + } else { + a.a("appbrand-mmkv"); + } + rootDir = paramString; + jniInitialize(paramString, logLevel2Int(paramc)); + isInit = true; + return paramString; + } + + public static String initialize(String paramString, c paramc) { + return initialize(paramString, null, paramc); + } + + private boolean isClose() { + return this.isClose; + } + + public static native boolean isFileValid(String paramString); + + public static boolean isInit() { + return isInit; + } + + private static native void jniInitialize(String paramString, int paramInt); + + private static int logLevel2Int(c paramc) { + int i = null.a[paramc.ordinal()]; + byte b1 = 4; + if (i != 1) { + if (i != 2) { + if (i != 3) { + if (i != 4) { + if (i != 5) + return 1; + } else { + return 3; + } + } else { + return 2; + } + } else { + return 1; + } + } else { + b1 = 0; + } + return b1; + } + + private static void mmkvLogImp(int paramInt1, String paramString1, int paramInt2, String paramString2, String paramString3) { + MMKVHandler mMKVHandler = gCallbackHandler; + if (mMKVHandler != null && gWantLogReDirecting) { + mMKVHandler.mmkvLog(index2LogLevel[paramInt1], paramString1, paramInt2, paramString2, paramString3); + return; + } + index2LogLevel[paramInt1].ordinal(); + } + + public static MMKV mmkvWithAshmemFD(String paramString1, int paramInt1, int paramInt2, String paramString2) { + return new MMKV(getMMKVWithAshmemFD(paramString1, paramInt1, paramInt2, paramString2)); + } + + public static MMKV mmkvWithAshmemID(Context paramContext, String paramString1, int paramInt1, int paramInt2, String paramString2) { + // Byte code: + // 0: getstatic com/tencent/appbrand/mmkv/MMKV.rootDir : Ljava/lang/String; + // 3: ifnull -> 432 + // 6: aload_0 + // 7: invokestatic myPid : ()I + // 10: invokestatic a : (Landroid/content/Context;I)Ljava/lang/String; + // 13: astore #5 + // 15: aconst_null + // 16: astore #7 + // 18: aconst_null + // 19: astore #6 + // 21: aload #5 + // 23: ifnull -> 421 + // 26: aload #5 + // 28: invokevirtual length : ()I + // 31: ifne -> 37 + // 34: goto -> 421 + // 37: aload #5 + // 39: ldc_w ':' + // 42: invokevirtual contains : (Ljava/lang/CharSequence;)Z + // 45: ifeq -> 393 + // 48: getstatic com/tencent/appbrand/mmkv/MMKVContentProvider.a : Landroid/net/Uri; + // 51: ifnull -> 62 + // 54: getstatic com/tencent/appbrand/mmkv/MMKVContentProvider.a : Landroid/net/Uri; + // 57: astore #5 + // 59: goto -> 121 + // 62: aload_0 + // 63: ifnonnull -> 72 + // 66: aconst_null + // 67: astore #5 + // 69: goto -> 121 + // 72: aload_0 + // 73: invokestatic a : (Landroid/content/Context;)Ljava/lang/String; + // 76: astore #5 + // 78: aload #5 + // 80: ifnonnull -> 86 + // 83: goto -> 66 + // 86: new java/lang/StringBuilder + // 89: dup + // 90: ldc_w 'content://' + // 93: invokespecial : (Ljava/lang/String;)V + // 96: astore #8 + // 98: aload #8 + // 100: aload #5 + // 102: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 105: pop + // 106: aload #8 + // 108: invokevirtual toString : ()Ljava/lang/String; + // 111: invokestatic parse : (Ljava/lang/String;)Landroid/net/Uri; + // 114: astore #5 + // 116: aload #5 + // 118: putstatic com/tencent/appbrand/mmkv/MMKVContentProvider.a : Landroid/net/Uri; + // 121: aload #5 + // 123: ifnonnull -> 137 + // 126: getstatic com/tencent/appbrand/mmkv/c.LevelError : Lcom/tencent/appbrand/mmkv/c; + // 129: ldc_w 'MMKVContentProvider has invalid authority' + // 132: invokestatic simpleLog : (Lcom/tencent/appbrand/mmkv/c;Ljava/lang/String;)V + // 135: aconst_null + // 136: areturn + // 137: getstatic com/tencent/appbrand/mmkv/c.LevelInfo : Lcom/tencent/appbrand/mmkv/c; + // 140: astore #8 + // 142: new java/lang/StringBuilder + // 145: dup + // 146: ldc_w 'getting parcelable mmkv in process, Uri = ' + // 149: invokespecial : (Ljava/lang/String;)V + // 152: astore #9 + // 154: aload #9 + // 156: aload #5 + // 158: invokevirtual append : (Ljava/lang/Object;)Ljava/lang/StringBuilder; + // 161: pop + // 162: aload #8 + // 164: aload #9 + // 166: invokevirtual toString : ()Ljava/lang/String; + // 169: invokestatic simpleLog : (Lcom/tencent/appbrand/mmkv/c;Ljava/lang/String;)V + // 172: new android/os/Bundle + // 175: dup + // 176: invokespecial : ()V + // 179: astore #8 + // 181: aload #8 + // 183: ldc_w 'KEY_SIZE' + // 186: iload_2 + // 187: invokevirtual putInt : (Ljava/lang/String;I)V + // 190: aload #8 + // 192: ldc_w 'KEY_MODE' + // 195: iload_3 + // 196: invokevirtual putInt : (Ljava/lang/String;I)V + // 199: aload #4 + // 201: ifnull -> 214 + // 204: aload #8 + // 206: ldc_w 'KEY_CRYPT' + // 209: aload #4 + // 211: invokevirtual putString : (Ljava/lang/String;Ljava/lang/String;)V + // 214: aload_0 + // 215: invokevirtual getContentResolver : ()Landroid/content/ContentResolver; + // 218: aload #5 + // 220: ldc_w 'mmkvFromAshmemID' + // 223: aload_1 + // 224: aload #8 + // 226: invokevirtual call : (Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle; + // 229: astore_0 + // 230: aload #7 + // 232: astore_1 + // 233: aload_0 + // 234: ifnull -> 391 + // 237: aload_0 + // 238: ldc_w com/tencent/appbrand/mmkv/ParcelableMMKV + // 241: invokevirtual getClassLoader : ()Ljava/lang/ClassLoader; + // 244: invokevirtual setClassLoader : (Ljava/lang/ClassLoader;)V + // 247: aload_0 + // 248: ldc_w 'KEY' + // 251: invokevirtual getParcelable : (Ljava/lang/String;)Landroid/os/Parcelable; + // 254: checkcast com/tencent/appbrand/mmkv/ParcelableMMKV + // 257: astore #4 + // 259: aload #7 + // 261: astore_1 + // 262: aload #4 + // 264: ifnull -> 391 + // 267: aload #6 + // 269: astore_0 + // 270: aload #4 + // 272: getfield b : I + // 275: iflt -> 313 + // 278: aload #6 + // 280: astore_0 + // 281: aload #4 + // 283: getfield c : I + // 286: iflt -> 313 + // 289: aload #4 + // 291: getfield a : Ljava/lang/String; + // 294: aload #4 + // 296: getfield b : I + // 299: aload #4 + // 301: getfield c : I + // 304: aload #4 + // 306: getfield d : Ljava/lang/String; + // 309: invokestatic mmkvWithAshmemFD : (Ljava/lang/String;IILjava/lang/String;)Lcom/tencent/appbrand/mmkv/MMKV; + // 312: astore_0 + // 313: aload_0 + // 314: astore_1 + // 315: aload_0 + // 316: ifnull -> 391 + // 319: getstatic com/tencent/appbrand/mmkv/c.LevelInfo : Lcom/tencent/appbrand/mmkv/c; + // 322: astore_1 + // 323: new java/lang/StringBuilder + // 326: dup + // 327: invokespecial : ()V + // 330: astore #4 + // 332: aload #4 + // 334: aload_0 + // 335: invokevirtual mmapID : ()Ljava/lang/String; + // 338: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 341: pop + // 342: aload #4 + // 344: ldc_w ' fd = ' + // 347: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 350: pop + // 351: aload #4 + // 353: aload_0 + // 354: invokevirtual ashmemFD : ()I + // 357: invokevirtual append : (I)Ljava/lang/StringBuilder; + // 360: pop + // 361: aload #4 + // 363: ldc_w ', meta fd = ' + // 366: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 369: pop + // 370: aload #4 + // 372: aload_0 + // 373: invokevirtual ashmemMetaFD : ()I + // 376: invokevirtual append : (I)Ljava/lang/StringBuilder; + // 379: pop + // 380: aload_1 + // 381: aload #4 + // 383: invokevirtual toString : ()Ljava/lang/String; + // 386: invokestatic simpleLog : (Lcom/tencent/appbrand/mmkv/c;Ljava/lang/String;)V + // 389: aload_0 + // 390: astore_1 + // 391: aload_1 + // 392: areturn + // 393: getstatic com/tencent/appbrand/mmkv/c.LevelInfo : Lcom/tencent/appbrand/mmkv/c; + // 396: ldc_w 'getting mmkv in main process' + // 399: invokestatic simpleLog : (Lcom/tencent/appbrand/mmkv/c;Ljava/lang/String;)V + // 402: new com/tencent/appbrand/mmkv/MMKV + // 405: dup + // 406: aload_1 + // 407: iload_2 + // 408: iload_3 + // 409: bipush #8 + // 411: ior + // 412: aload #4 + // 414: invokestatic getMMKVWithIDAndSize : (Ljava/lang/String;IILjava/lang/String;)J + // 417: invokespecial : (J)V + // 420: areturn + // 421: getstatic com/tencent/appbrand/mmkv/c.LevelError : Lcom/tencent/appbrand/mmkv/c; + // 424: ldc_w 'process name detect fail, try again later' + // 427: invokestatic simpleLog : (Lcom/tencent/appbrand/mmkv/c;Ljava/lang/String;)V + // 430: aconst_null + // 431: areturn + // 432: new java/lang/IllegalStateException + // 435: dup + // 436: ldc 'You should Call MMKV.initialize() first.' + // 438: invokespecial : (Ljava/lang/String;)V + // 441: astore_0 + // 442: goto -> 447 + // 445: aload_0 + // 446: athrow + // 447: goto -> 445 + } + + public static MMKV mmkvWithID(String paramString) { + if (rootDir != null) + return new MMKV(getMMKVWithID(paramString, 1, null, null)); + throw new IllegalStateException("You should Call MMKV.initialize() first."); + } + + public static MMKV mmkvWithID(String paramString, int paramInt) { + if (rootDir != null) + return new MMKV(getMMKVWithID(paramString, paramInt, null, null)); + throw new IllegalStateException("You should Call MMKV.initialize() first."); + } + + public static MMKV mmkvWithID(String paramString1, int paramInt, String paramString2) { + if (rootDir != null) + return new MMKV(getMMKVWithID(paramString1, paramInt, paramString2, null)); + throw new IllegalStateException("You should Call MMKV.initialize() first."); + } + + public static MMKV mmkvWithID(String paramString1, int paramInt, String paramString2, String paramString3) { + if (rootDir != null) { + long l = getMMKVWithID(paramString1, paramInt, paramString2, paramString3); + return (l == 0L) ? null : new MMKV(l); + } + throw new IllegalStateException("You should Call MMKV.initialize() first."); + } + + public static MMKV mmkvWithID(String paramString1, String paramString2) { + if (rootDir != null) { + long l = getMMKVWithID(paramString1, 1, null, paramString2); + return (l == 0L) ? null : new MMKV(l); + } + throw new IllegalStateException("You should Call MMKV.initialize() first."); + } + + private static void onContentChangedByOuterProcess(String paramString) {} + + public static native void onExit(); + + private static int onMMKVCRCCheckFail(String paramString) { + d d = d.OnErrorDiscard; + MMKVHandler mMKVHandler = gCallbackHandler; + if (mMKVHandler != null) + d = mMKVHandler.onMMKVCRCCheckFail(paramString); + c c1 = c.LevelInfo; + StringBuilder stringBuilder = new StringBuilder("Recover strategic for "); + stringBuilder.append(paramString); + stringBuilder.append(" is "); + stringBuilder.append(d); + simpleLog(c1, stringBuilder.toString()); + Integer integer = recoverIndex.get(d); + return (integer == null) ? 0 : integer.intValue(); + } + + private static int onMMKVFileLengthError(String paramString) { + d d = d.OnErrorDiscard; + MMKVHandler mMKVHandler = gCallbackHandler; + if (mMKVHandler != null) + d = mMKVHandler.onMMKVFileLengthError(paramString); + c c1 = c.LevelInfo; + StringBuilder stringBuilder = new StringBuilder("Recover strategic for "); + stringBuilder.append(paramString); + stringBuilder.append(" is "); + stringBuilder.append(d); + simpleLog(c1, stringBuilder.toString()); + Integer integer = recoverIndex.get(d); + return (integer == null) ? 0 : integer.intValue(); + } + + public static native int pageSize(); + + public static void registerContentChangeNotify(b paramb) { + boolean bool; + gContentChangeNotify = paramb; + if (paramb != null) { + bool = true; + } else { + bool = false; + } + setWantsContentChangeNotify(bool); + } + + public static void registerHandler(MMKVHandler paramMMKVHandler) { + gCallbackHandler = paramMMKVHandler; + if (paramMMKVHandler.wantLogRedirecting()) { + setLogReDirecting(true); + gWantLogReDirecting = true; + return; + } + setLogReDirecting(false); + gWantLogReDirecting = false; + } + + private native void removeValueForKey(long paramLong, String paramString); + + private native void removeValuesForKeys(String[] paramArrayOfString); + + private static native void setLogLevel(int paramInt); + + public static void setLogLevel(c paramc) { + setLogLevel(logLevel2Int(paramc)); + } + + private static native void setLogReDirecting(boolean paramBoolean); + + private static native void setWantsContentChangeNotify(boolean paramBoolean); + + private static void simpleLog(c paramc, String paramString) { + int i; + StackTraceElement[] arrayOfStackTraceElement = Thread.currentThread().getStackTrace(); + StackTraceElement stackTraceElement = arrayOfStackTraceElement[arrayOfStackTraceElement.length - 1]; + Integer integer = logLevel2Index.get(paramc); + if (integer == null) { + i = 0; + } else { + i = integer.intValue(); + } + mmkvLogImp(i, stackTraceElement.getFileName(), stackTraceElement.getLineNumber(), stackTraceElement.getMethodName(), paramString); + } + + private native void sync(boolean paramBoolean); + + private native long totalSize(long paramLong); + + private native void trim(); + + public static void unregisterContentChangeNotify() { + gContentChangeNotify = null; + setWantsContentChangeNotify(false); + } + + public static void unregisterHandler() { + gCallbackHandler = null; + setLogReDirecting(false); + gWantLogReDirecting = false; + } + + private native int valueSize(long paramLong, String paramString, boolean paramBoolean); + + private native int writeValueToNB(long paramLong1, String paramString, long paramLong2, int paramInt); + + public String[] allKeysMMKV() { + return isClose() ? new String[0] : allKeys(); + } + + public void apply() { + if (!isClose()) { + sync(false); + return; + } + simpleLog(c.LevelError, "mmkv is close, data is not get/set in expectations"); + } + + public native int ashmemFD(); + + public native int ashmemMetaFD(); + + public void async() { + if (!isClose()) + sync(false); + } + + public native void checkContentChangedByOuterProcess(); + + public native void checkReSetCryptKey(String paramString); + + public SharedPreferences.Editor clear() { + if (!isClose()) + clearAll(); + return this; + } + + public void clearAllMMKV() { + if (isClose()) + return; + clearAll(); + } + + public void clearMemoryCacheMMKV() { + if (isClose()) + return; + clearMemoryCache(); + } + + public void closeMMKV() { + this.isClose = true; + close(); + } + + public boolean commit() { + if (!isClose()) { + sync(true); + return true; + } + simpleLog(c.LevelError, "mmkv is close, data is not get/set in expectations"); + return true; + } + + public boolean contains(String paramString) { + return isClose() ? false : containsKey(paramString); + } + + public boolean containsKey(String paramString) { + return isClose() ? false : containsKey(this.nativeHandle, paramString); + } + + public long count() { + return isClose() ? 0L : count(this.nativeHandle); + } + + public native String cryptKey(); + + public boolean decodeBool(String paramString) { + return isClose() ? false : decodeBool(this.nativeHandle, paramString, false); + } + + public boolean decodeBool(String paramString, boolean paramBoolean) { + return isClose() ? paramBoolean : decodeBool(this.nativeHandle, paramString, paramBoolean); + } + + public byte[] decodeBytes(String paramString) { + return isClose() ? null : decodeBytes(paramString, (byte[])null); + } + + public byte[] decodeBytes(String paramString, byte[] paramArrayOfbyte) { + if (isClose()) + return paramArrayOfbyte; + byte[] arrayOfByte = decodeBytes(this.nativeHandle, paramString); + return (arrayOfByte != null) ? arrayOfByte : paramArrayOfbyte; + } + + public double decodeDouble(String paramString) { + return isClose() ? 0.0D : decodeDouble(this.nativeHandle, paramString, 0.0D); + } + + public double decodeDouble(String paramString, double paramDouble) { + return isClose() ? paramDouble : decodeDouble(this.nativeHandle, paramString, paramDouble); + } + + public float decodeFloat(String paramString) { + return isClose() ? 0.0F : decodeFloat(this.nativeHandle, paramString, 0.0F); + } + + public float decodeFloat(String paramString, float paramFloat) { + return isClose() ? paramFloat : decodeFloat(this.nativeHandle, paramString, paramFloat); + } + + public int decodeInt(String paramString) { + return isClose() ? 0 : decodeInt(this.nativeHandle, paramString, 0); + } + + public int decodeInt(String paramString, int paramInt) { + return isClose() ? paramInt : decodeInt(this.nativeHandle, paramString, paramInt); + } + + public long decodeLong(String paramString) { + return isClose() ? 0L : decodeLong(this.nativeHandle, paramString, 0L); + } + + public long decodeLong(String paramString, long paramLong) { + return isClose() ? paramLong : decodeLong(this.nativeHandle, paramString, paramLong); + } + + public T decodeParcelable(String paramString, Class paramClass) { + return isClose() ? null : decodeParcelable(paramString, paramClass, null); + } + + public T decodeParcelable(String paramString, Class paramClass, T paramT) { + if (isClose()) + return paramT; + if (paramClass == null) + return paramT; + byte[] arrayOfByte = decodeBytes(this.nativeHandle, paramString); + if (arrayOfByte == null) + return paramT; + Parcel parcel = Parcel.obtain(); + parcel.unmarshall(arrayOfByte, 0, arrayOfByte.length); + parcel.setDataPosition(0); + try { + String str = paramClass.toString(); + synchronized (mCreators) { + Parcelable.Creator creator2 = mCreators.get(str); + Parcelable.Creator creator1 = creator2; + if (creator2 == null) { + Parcelable.Creator creator = (Parcelable.Creator)paramClass.getField("CREATOR").get(null); + creator1 = creator; + if (creator != null) { + mCreators.put(str, creator); + creator1 = creator; + } + } + if (creator1 != null) { + Parcelable parcelable = (Parcelable)creator1.createFromParcel(parcel); + parcel.recycle(); + return (T)parcelable; + } + StringBuilder stringBuilder = new StringBuilder("Parcelable protocol requires a non-null static Parcelable.Creator object called CREATOR on class "); + stringBuilder.append(str); + throw new Exception(stringBuilder.toString()); + } + } catch (Exception exception) { + simpleLog(c.LevelError, exception.toString()); + parcel.recycle(); + return paramT; + } finally {} + parcel.recycle(); + throw arrayOfByte; + } + + public String decodeString(String paramString) { + return isClose() ? null : decodeString(this.nativeHandle, paramString, null); + } + + public String decodeString(String paramString1, String paramString2) { + return isClose() ? paramString2 : decodeString(this.nativeHandle, paramString1, paramString2); + } + + public Set decodeStringSet(String paramString) { + return isClose() ? null : decodeStringSet(paramString, (Set)null); + } + + public Set decodeStringSet(String paramString, Set paramSet) { + return isClose() ? paramSet : decodeStringSet(paramString, paramSet, (Class)HashSet.class); + } + + public Set decodeStringSet(String paramString, Set paramSet, Class paramClass) { + if (isClose()) + return paramSet; + String[] arrayOfString = decodeStringSet(this.nativeHandle, paramString); + if (arrayOfString == null) + return paramSet; + try { + Set set = paramClass.newInstance(); + set.addAll(Arrays.asList(arrayOfString)); + return set; + } catch (IllegalAccessException|InstantiationException illegalAccessException) { + return paramSet; + } + } + + public SharedPreferences.Editor edit() { + return this; + } + + public boolean encode(String paramString, double paramDouble) { + return isClose() ? false : encodeDouble(this.nativeHandle, paramString, paramDouble); + } + + public boolean encode(String paramString, float paramFloat) { + return isClose() ? false : encodeFloat(this.nativeHandle, paramString, paramFloat); + } + + public boolean encode(String paramString, int paramInt) { + return isClose() ? false : encodeInt(this.nativeHandle, paramString, paramInt); + } + + public boolean encode(String paramString, long paramLong) { + return isClose() ? false : encodeLong(this.nativeHandle, paramString, paramLong); + } + + public boolean encode(String paramString, Parcelable paramParcelable) { + if (isClose()) + return false; + Parcel parcel = Parcel.obtain(); + paramParcelable.writeToParcel(parcel, paramParcelable.describeContents()); + byte[] arrayOfByte = parcel.marshall(); + parcel.recycle(); + return encodeBytes(this.nativeHandle, paramString, arrayOfByte); + } + + public boolean encode(String paramString1, String paramString2) { + return isClose() ? false : encodeString(this.nativeHandle, paramString1, paramString2); + } + + public boolean encode(String paramString, Set paramSet) { + return isClose() ? false : encodeSet(this.nativeHandle, paramString, paramSet.toArray(new String[0])); + } + + public boolean encode(String paramString, boolean paramBoolean) { + return isClose() ? false : encodeBool(this.nativeHandle, paramString, paramBoolean); + } + + public boolean encode(String paramString, byte[] paramArrayOfbyte) { + return isClose() ? false : encodeBytes(this.nativeHandle, paramString, paramArrayOfbyte); + } + + public Map getAll() { + throw new UnsupportedOperationException("use allKeys() instead, getAll() not implement because type-erasure inside mmkv"); + } + + public boolean getBoolean(String paramString, boolean paramBoolean) { + return isClose() ? paramBoolean : decodeBool(this.nativeHandle, paramString, paramBoolean); + } + + public byte[] getBytes(String paramString, byte[] paramArrayOfbyte) { + return isClose() ? paramArrayOfbyte : decodeBytes(paramString, paramArrayOfbyte); + } + + public float getFloat(String paramString, float paramFloat) { + return isClose() ? paramFloat : decodeFloat(this.nativeHandle, paramString, paramFloat); + } + + public int getInt(String paramString, int paramInt) { + return isClose() ? paramInt : decodeInt(this.nativeHandle, paramString, paramInt); + } + + public long getLong(String paramString, long paramLong) { + return isClose() ? paramLong : decodeLong(this.nativeHandle, paramString, paramLong); + } + + public String getString(String paramString1, String paramString2) { + return isClose() ? paramString2 : decodeString(this.nativeHandle, paramString1, paramString2); + } + + public Set getStringSet(String paramString, Set paramSet) { + return isClose() ? paramSet : decodeStringSet(paramString, paramSet); + } + + public int getValueActualSize(String paramString) { + return isClose() ? 0 : valueSize(this.nativeHandle, paramString, true); + } + + public int getValueSize(String paramString) { + return isClose() ? 0 : valueSize(this.nativeHandle, paramString, false); + } + + public int importFromSharedPreferences(SharedPreferences paramSharedPreferences) { + Map map = paramSharedPreferences.getAll(); + if (map == null || map.size() <= 0) + return 0; + for (Map.Entry entry : map.entrySet()) { + String str = (String)entry.getKey(); + entry = (Map.Entry)entry.getValue(); + if (str != null && entry != null) { + if (entry instanceof Boolean) { + encodeBool(this.nativeHandle, str, ((Boolean)entry).booleanValue()); + continue; + } + if (entry instanceof Integer) { + encodeInt(this.nativeHandle, str, ((Integer)entry).intValue()); + continue; + } + if (entry instanceof Long) { + encodeLong(this.nativeHandle, str, ((Long)entry).longValue()); + continue; + } + if (entry instanceof Float) { + encodeFloat(this.nativeHandle, str, ((Float)entry).floatValue()); + continue; + } + if (entry instanceof Double) { + encodeDouble(this.nativeHandle, str, ((Double)entry).doubleValue()); + continue; + } + if (entry instanceof String) { + encodeString(this.nativeHandle, str, (String)entry); + continue; + } + if (entry instanceof Set) { + encode(str, (Set)entry); + continue; + } + c c1 = c.LevelError; + StringBuilder stringBuilder = new StringBuilder("unknown type: "); + stringBuilder.append(entry.getClass()); + simpleLog(c1, stringBuilder.toString()); + } + } + return map.size(); + } + + public native void lock(); + + public native String mmapID(); + + public SharedPreferences.Editor putBoolean(String paramString, boolean paramBoolean) { + if (!isClose()) + encodeBool(this.nativeHandle, paramString, paramBoolean); + return this; + } + + public SharedPreferences.Editor putBytes(String paramString, byte[] paramArrayOfbyte) { + if (!isClose()) + encode(paramString, paramArrayOfbyte); + return this; + } + + public SharedPreferences.Editor putFloat(String paramString, float paramFloat) { + if (!isClose()) + encodeFloat(this.nativeHandle, paramString, paramFloat); + return this; + } + + public SharedPreferences.Editor putInt(String paramString, int paramInt) { + if (!isClose()) + encodeInt(this.nativeHandle, paramString, paramInt); + return this; + } + + public SharedPreferences.Editor putLong(String paramString, long paramLong) { + if (!isClose()) + encodeLong(this.nativeHandle, paramString, paramLong); + return this; + } + + public SharedPreferences.Editor putString(String paramString1, String paramString2) { + if (!isClose()) + encodeString(this.nativeHandle, paramString1, paramString2); + return this; + } + + public SharedPreferences.Editor putStringSet(String paramString, Set paramSet) { + if (!isClose()) + encode(paramString, paramSet); + return this; + } + + public native boolean reKey(String paramString); + + public void registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener paramOnSharedPreferenceChangeListener) { + throw new UnsupportedOperationException("Not implement in MMKV"); + } + + public SharedPreferences.Editor remove(String paramString) { + if (!isClose()) + removeValueForKey(paramString); + return this; + } + + public void removeValueForKey(String paramString) { + if (isClose()) + return; + removeValueForKey(this.nativeHandle, paramString); + } + + public void removeValuesForKeysMMKV(String[] paramArrayOfString) { + if (isClose()) + return; + removeValuesForKeys(paramArrayOfString); + } + + public void sync() { + if (!isClose()) + sync(true); + } + + public long totalSize() { + return isClose() ? 0L : totalSize(this.nativeHandle); + } + + public void trimMMKV() { + if (isClose()) + return; + trim(); + } + + public native boolean tryLock(); + + public native void unlock(); + + public void unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener paramOnSharedPreferenceChangeListener) { + throw new UnsupportedOperationException("Not implement in MMKV"); + } + + public int writeValueToNativeBuffer(String paramString, e parame) { + return writeValueToNB(this.nativeHandle, paramString, parame.a, parame.b); + } + + public static interface a { + void loadLibrary(String param1String); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tencent\appbrand\mmkv\MMKV.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tencent/appbrand/mmkv/MMKVContentProvider.java b/df_miniapp/classes/com/tencent/appbrand/mmkv/MMKVContentProvider.java new file mode 100644 index 0000000..256e0f3 --- /dev/null +++ b/df_miniapp/classes/com/tencent/appbrand/mmkv/MMKVContentProvider.java @@ -0,0 +1,96 @@ +package com.tencent.appbrand.mmkv; + +import android.app.ActivityManager; +import android.content.ComponentName; +import android.content.ContentProvider; +import android.content.ContentValues; +import android.content.Context; +import android.content.pm.PackageManager; +import android.content.pm.ProviderInfo; +import android.database.Cursor; +import android.net.Uri; +import android.os.Bundle; + +public class MMKVContentProvider extends ContentProvider { + static Uri a; + + static String a(Context paramContext) { + try { + ComponentName componentName = new ComponentName(paramContext, MMKVContentProvider.class.getName()); + PackageManager packageManager = paramContext.getPackageManager(); + if (packageManager != null) { + ProviderInfo providerInfo = packageManager.getProviderInfo(componentName, 0); + if (providerInfo != null) + return providerInfo.authority; + } + } catch (Exception exception) {} + return null; + } + + protected static String a(Context paramContext, int paramInt) { + ActivityManager activityManager = (ActivityManager)paramContext.getSystemService("activity"); + if (activityManager != null) + for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : activityManager.getRunningAppProcesses()) { + if (runningAppProcessInfo.pid == paramInt) + return runningAppProcessInfo.processName; + } + return ""; + } + + public Bundle call(String paramString1, String paramString2, Bundle paramBundle) { + if (paramString1.equals("mmkvFromAshmemID") && paramBundle != null) { + int i = paramBundle.getInt("KEY_SIZE"); + int j = paramBundle.getInt("KEY_MODE"); + paramString1 = paramBundle.getString("KEY_CRYPT"); + MMKV mMKV = MMKV.mmkvWithAshmemID(getContext(), paramString2, i, j, paramString1); + if (mMKV != null) { + ParcelableMMKV parcelableMMKV = new ParcelableMMKV(mMKV); + Bundle bundle = new Bundle(); + bundle.putParcelable("KEY", parcelableMMKV); + return bundle; + } + } + return null; + } + + public int delete(Uri paramUri, String paramString, String[] paramArrayOfString) { + throw new UnsupportedOperationException("Not implement in MMKV"); + } + + public String getType(Uri paramUri) { + return null; + } + + public Uri insert(Uri paramUri, ContentValues paramContentValues) { + throw new UnsupportedOperationException("Not implement in MMKV"); + } + + public boolean onCreate() { + Context context = getContext(); + if (context == null) + return false; + String str = a(context); + if (str == null) + return false; + if (a == null) { + StringBuilder stringBuilder = new StringBuilder("content://"); + stringBuilder.append(str); + a = Uri.parse(stringBuilder.toString()); + } + return true; + } + + public Cursor query(Uri paramUri, String[] paramArrayOfString1, String paramString1, String[] paramArrayOfString2, String paramString2) { + throw new UnsupportedOperationException("Not implement in MMKV"); + } + + public int update(Uri paramUri, ContentValues paramContentValues, String paramString, String[] paramArrayOfString) { + throw new UnsupportedOperationException("Not implement in MMKV"); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tencent\appbrand\mmkv\MMKVContentProvider.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tencent/appbrand/mmkv/MMKVHandler.java b/df_miniapp/classes/com/tencent/appbrand/mmkv/MMKVHandler.java new file mode 100644 index 0000000..d42bc96 --- /dev/null +++ b/df_miniapp/classes/com/tencent/appbrand/mmkv/MMKVHandler.java @@ -0,0 +1,17 @@ +package com.tencent.appbrand.mmkv; + +public interface MMKVHandler { + void mmkvLog(c paramc, String paramString1, int paramInt, String paramString2, String paramString3); + + d onMMKVCRCCheckFail(String paramString); + + d onMMKVFileLengthError(String paramString); + + boolean wantLogRedirecting(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tencent\appbrand\mmkv\MMKVHandler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tencent/appbrand/mmkv/ParcelableMMKV.java b/df_miniapp/classes/com/tencent/appbrand/mmkv/ParcelableMMKV.java new file mode 100644 index 0000000..119a559 --- /dev/null +++ b/df_miniapp/classes/com/tencent/appbrand/mmkv/ParcelableMMKV.java @@ -0,0 +1,60 @@ +package com.tencent.appbrand.mmkv; + +import android.os.Parcel; +import android.os.ParcelFileDescriptor; +import android.os.Parcelable; +import java.io.IOException; + +public final class ParcelableMMKV implements Parcelable { + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + + }; + + String a; + + int b = -1; + + int c = -1; + + String d; + + public ParcelableMMKV(MMKV paramMMKV) { + this.a = paramMMKV.mmapID(); + this.b = paramMMKV.ashmemFD(); + this.c = paramMMKV.ashmemMetaFD(); + this.d = paramMMKV.cryptKey(); + } + + private ParcelableMMKV(String paramString1, int paramInt1, int paramInt2, String paramString2) { + this.a = paramString1; + this.b = paramInt1; + this.c = paramInt2; + this.d = paramString2; + } + + public final int describeContents() { + return 1; + } + + public final void writeToParcel(Parcel paramParcel, int paramInt) { + try { + paramParcel.writeString(this.a); + ParcelFileDescriptor parcelFileDescriptor1 = ParcelFileDescriptor.fromFd(this.b); + ParcelFileDescriptor parcelFileDescriptor2 = ParcelFileDescriptor.fromFd(this.c); + paramInt |= 0x1; + parcelFileDescriptor1.writeToParcel(paramParcel, paramInt); + parcelFileDescriptor2.writeToParcel(paramParcel, paramInt); + if (this.d != null) + paramParcel.writeString(this.d); + return; + } catch (IOException iOException) { + return; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tencent\appbrand\mmkv\ParcelableMMKV.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tencent/appbrand/mmkv/b.java b/df_miniapp/classes/com/tencent/appbrand/mmkv/b.java new file mode 100644 index 0000000..cae4e92 --- /dev/null +++ b/df_miniapp/classes/com/tencent/appbrand/mmkv/b.java @@ -0,0 +1,9 @@ +package com.tencent.appbrand.mmkv; + +public interface b {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tencent\appbrand\mmkv\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tencent/appbrand/mmkv/c.java b/df_miniapp/classes/com/tencent/appbrand/mmkv/c.java new file mode 100644 index 0000000..b6c3dd8 --- /dev/null +++ b/df_miniapp/classes/com/tencent/appbrand/mmkv/c.java @@ -0,0 +1,17 @@ +package com.tencent.appbrand.mmkv; + +public enum c { + LevelDebug, LevelError, LevelInfo, LevelNone, LevelWarning; + + static { + LevelError = new c("LevelError", 3); + LevelNone = new c("LevelNone", 4); + a = new c[] { LevelDebug, LevelInfo, LevelWarning, LevelError, LevelNone }; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tencent\appbrand\mmkv\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tencent/appbrand/mmkv/d.java b/df_miniapp/classes/com/tencent/appbrand/mmkv/d.java new file mode 100644 index 0000000..1cfc5f7 --- /dev/null +++ b/df_miniapp/classes/com/tencent/appbrand/mmkv/d.java @@ -0,0 +1,11 @@ +package com.tencent.appbrand.mmkv; + +public enum d { + OnErrorDiscard, OnErrorRecover; +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tencent\appbrand\mmkv\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tencent/appbrand/mmkv/e.java b/df_miniapp/classes/com/tencent/appbrand/mmkv/e.java new file mode 100644 index 0000000..12a9f20 --- /dev/null +++ b/df_miniapp/classes/com/tencent/appbrand/mmkv/e.java @@ -0,0 +1,18 @@ +package com.tencent.appbrand.mmkv; + +public final class e { + public long a; + + public int b; + + public e(long paramLong, int paramInt) { + this.a = paramLong; + this.b = paramInt; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tencent\appbrand\mmkv\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/a/a.java b/df_miniapp/classes/com/tt/a/a.java new file mode 100644 index 0000000..87f89f7 --- /dev/null +++ b/df_miniapp/classes/com/tt/a/a.java @@ -0,0 +1,28 @@ +package com.tt.a; + +import android.app.Application; +import com.bytedance.d.a.b.b; +import com.bytedance.d.a.c.a.a; +import d.f.b.l; + +public final class a implements a { + public static final a a = new a(); + + private static final String b = "BDEventPlugin"; + + public final b a() { + return b.a.a(b); + } + + public final void a(Application paramApplication) { + l.b(paramApplication, "app"); + l.b(paramApplication, "app"); + com.bytedance.d.a.b.a.a.a((com.bytedance.d.a.b.a)this, paramApplication); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\a\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/a/b.java b/df_miniapp/classes/com/tt/a/b.java new file mode 100644 index 0000000..151ac56 --- /dev/null +++ b/df_miniapp/classes/com/tt/a/b.java @@ -0,0 +1,26 @@ +package com.tt.a; + +import android.app.Application; +import com.bytedance.d.a.b.a; +import com.bytedance.d.a.c.b.a; +import d.f.b.l; + +public final class b implements a { + public static final b a = new b(); + + public final com.bytedance.d.a.b.b a() { + return com.bytedance.d.a.b.b.a.a("BDLog"); + } + + public final void a(Application paramApplication) { + l.b(paramApplication, "app"); + l.b(paramApplication, "app"); + a.a.a((a)this, paramApplication); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\a\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/a/c.java b/df_miniapp/classes/com/tt/a/c.java new file mode 100644 index 0000000..078562f --- /dev/null +++ b/df_miniapp/classes/com/tt/a/c.java @@ -0,0 +1,45 @@ +package com.tt.a; + +import android.app.Application; +import com.bytedance.d.a.b.b; +import com.bytedance.d.a.c.c.a.a; +import d.f; +import d.f.b.l; +import d.f.b.m; +import d.f.b.u; +import d.f.b.v; +import d.f.b.x; +import d.g; +import d.k.d; +import d.k.h; +import okhttp3.y; + +public final class c implements a { + public static final c b = new c(); + + private static final String c = "OKHttp"; + + private static final f d = g.a(a.a); + + public final b a() { + return b.a.a("BDOkHttp"); + } + + public final void a(Application paramApplication) { + l.b(paramApplication, "app"); + } + + static final class a extends m implements d.f.a.a { + public static final a a = new a(); + + a() { + super(0); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\a\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/a/d.java b/df_miniapp/classes/com/tt/a/d.java new file mode 100644 index 0000000..0801ebb --- /dev/null +++ b/df_miniapp/classes/com/tt/a/d.java @@ -0,0 +1,31 @@ +package com.tt.a; + +import android.app.Application; +import android.os.Handler; +import android.os.Looper; +import com.bytedance.d.a.b.a; +import com.bytedance.d.a.b.b; +import com.bytedance.d.a.c.d.a; +import d.f.b.l; + +public final class d implements a { + public static final d a = new d(); + + private static final Handler b = new Handler(Looper.getMainLooper()); + + public final b a() { + return new b("BDThread"); + } + + public final void a(Application paramApplication) { + l.b(paramApplication, "app"); + l.b(paramApplication, "app"); + a.a.a((a)this, paramApplication); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\a\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/b/a.java b/df_miniapp/classes/com/tt/b/a.java new file mode 100644 index 0000000..0019f28 --- /dev/null +++ b/df_miniapp/classes/com/tt/b/a.java @@ -0,0 +1,13 @@ +package com.tt.b; + +public interface a { + void onFail(Exception paramException); + + void onSuccess(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\b\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/b/b.java b/df_miniapp/classes/com/tt/b/b.java new file mode 100644 index 0000000..613d4a6 --- /dev/null +++ b/df_miniapp/classes/com/tt/b/b.java @@ -0,0 +1,35 @@ +package com.tt.b; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import com.tt.miniapphost.entity.InitParamsEntity; +import com.tt.option.w.f; +import com.tt.option.w.g; +import com.tt.option.w.h; +import java.util.HashMap; +import java.util.List; + +public interface b { + InitParamsEntity createInitParams(); + + boolean handleActivityLoginResult(int paramInt1, int paramInt2, Intent paramIntent); + + boolean handleActivityShareResult(int paramInt1, int paramInt2, Intent paramIntent); + + void loadImage(Context paramContext, c paramc); + + boolean openLoginActivity(Activity paramActivity, HashMap paramHashMap); + + boolean share(Activity paramActivity, h paramh, g paramg); + + void showShareDialog(Activity paramActivity, f paramf); + + boolean startImagePreviewActivity(Activity paramActivity, String paramString, List paramList, int paramInt); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\b\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/b/c.java b/df_miniapp/classes/com/tt/b/c.java new file mode 100644 index 0000000..bff46e3 --- /dev/null +++ b/df_miniapp/classes/com/tt/b/c.java @@ -0,0 +1,99 @@ +package com.tt.b; + +import android.graphics.Bitmap; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.view.View; +import java.io.File; + +public final class c { + public Drawable a; + + public int b; + + public int c; + + public boolean d; + + public boolean e; + + public boolean f; + + public boolean g; + + public boolean h; + + public Bitmap.Config i = Bitmap.Config.RGB_565; + + public int j; + + public int k; + + public float l; + + public String m; + + public File n; + + public int o; + + public Uri p; + + public View q; + + public a r; + + public c(Uri paramUri) { + this.p = paramUri; + } + + public c(File paramFile) { + this.n = paramFile; + } + + public c(String paramString) { + this.m = paramString; + } + + public final c a() { + this.d = true; + return this; + } + + public final c a(int paramInt) { + this.c = 2097479705; + return this; + } + + public final c a(int paramInt1, int paramInt2) { + this.j = paramInt1; + this.k = paramInt2; + return this; + } + + public final c a(Drawable paramDrawable) { + this.a = paramDrawable; + return this; + } + + public final c a(View paramView) { + this.q = paramView; + return this; + } + + public final c a(a parama) { + this.r = parama; + return this; + } + + public final c b() { + this.f = true; + return this; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\b\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/c/a.java b/df_miniapp/classes/com/tt/c/a.java new file mode 100644 index 0000000..ede39e0 --- /dev/null +++ b/df_miniapp/classes/com/tt/c/a.java @@ -0,0 +1,11 @@ +package com.tt.c; + +public abstract class a { + public boolean a; +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\c\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/ApiCallResult.java b/df_miniapp/classes/com/tt/frontendapiinterface/ApiCallResult.java new file mode 100644 index 0000000..825e84d --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/ApiCallResult.java @@ -0,0 +1,177 @@ +package com.tt.frontendapiinterface; + +import android.os.Parcel; +import android.os.Parcelable; +import android.text.TextUtils; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.util.DebugUtil; +import java.util.HashMap; +import org.json.JSONException; +import org.json.JSONObject; + +public class ApiCallResult implements Parcelable { + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + + }; + + public final JSONObject a; + + private final String b; + + protected ApiCallResult(Parcel paramParcel) { + JSONObject jSONObject; + String str2 = paramParcel.readString(); + String str1 = str2; + if (str2 == null) { + DebugUtil.outputError("ApiCallResult", new Object[] { "读取到空的 Api 执行结果" }); + str1 = ""; + } + try { + jSONObject = new JSONObject(str1); + } catch (JSONException jSONException) { + jSONObject = new JSONObject(); + DebugUtil.outputError("ApiCallResult", new Object[] { "从执行结果解析为 JsonObject 时异常 result:", str1, jSONException }); + } + this.b = str1; + this.a = jSONObject; + } + + private ApiCallResult(JSONObject paramJSONObject, boolean paramBoolean) { + this.a = paramJSONObject; + this.b = this.a.toString(); + } + + public int describeContents() { + return 0; + } + + public String toString() { + return this.b; + } + + public void writeToParcel(Parcel paramParcel, int paramInt) { + paramParcel.writeString(this.b); + } + + public static final class a { + private final boolean a; + + private final String b; + + private final String c; + + private String d; + + private JSONObject e; + + private int f; + + public a(String param1String1, String param1String2) { + boolean bool; + this.b = param1String1; + this.c = param1String2; + if (param1String2 == "fail") { + bool = true; + } else { + bool = false; + } + this.a = bool; + } + + public static a a(String param1String) { + return new a(param1String, "ok"); + } + + public static a a(String param1String1, String param1String2, int param1Int) { + a a1 = (new a(param1String1, "fail")).d(param1String2); + a1.f = param1Int; + return a1; + } + + @Deprecated + public static a b(String param1String) { + return new a(param1String, "fail"); + } + + public static a c(String param1String) { + return new a(param1String, "cancel"); + } + + public final a a(String param1String, Object param1Object) { + if (this.e == null) + this.e = new JSONObject(); + try { + this.e.put(param1String, param1Object); + return this; + } catch (Exception exception) { + AppBrandLogger.e("ApiCallResult", new Object[] { "append", exception }); + return this; + } + } + + public final a a(Throwable param1Throwable) { + this.d = a.a(param1Throwable); + return this; + } + + public final a a(HashMap param1HashMap) { + this.e = a.a(param1HashMap); + return this; + } + + public final a a(JSONObject param1JSONObject) { + this.e = param1JSONObject; + return this; + } + + public final ApiCallResult a() { + JSONObject jSONObject = this.e; + if (jSONObject == null) + jSONObject = new JSONObject(); + try { + StringBuilder stringBuilder; + String str1 = this.b; + String str2 = this.c; + String str3 = this.d; + boolean bool = TextUtils.isEmpty(str3); + if (bool) { + stringBuilder = new StringBuilder(); + stringBuilder.append(str1); + stringBuilder.append(":"); + stringBuilder.append(str2); + str1 = stringBuilder.toString(); + } else { + StringBuilder stringBuilder1 = new StringBuilder(); + stringBuilder1.append(str1); + stringBuilder1.append(":"); + stringBuilder1.append(str2); + stringBuilder1.append(" "); + stringBuilder1.append((String)stringBuilder); + str1 = stringBuilder1.toString(); + } + jSONObject.put("errMsg", str1); + if (this.f != 0) + jSONObject.put("errCode", this.f); + } catch (Exception exception) { + AppBrandLogger.e("ApiCallResult", new Object[] { "build", exception }); + } + return new ApiCallResult(jSONObject, this.a); + } + + public final a d(String param1String) { + this.d = param1String; + return this; + } + + public final String toString() { + AppBrandLogger.e("ApiCallResult", new Object[] { "请避免使用 Builder 的 toString" }); + return a().toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\ApiCallResult.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/a.java b/df_miniapp/classes/com/tt/frontendapiinterface/a.java new file mode 100644 index 0000000..9d868c7 --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/a.java @@ -0,0 +1,106 @@ +package com.tt.frontendapiinterface; + +import android.text.TextUtils; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.util.DebugUtil; +import java.util.HashMap; +import org.json.JSONException; +import org.json.JSONObject; + +public final class a { + public static String a(String paramString) { + return com.a.a("illegal args:%s", new Object[] { paramString }); + } + + public static String a(Throwable paramThrowable) { + if (paramThrowable == null) + return "null throwable"; + if (DebugUtil.debug()) + AppBrandLogger.e("ApiCallResultHelper", new Object[] { "generateThrowableExtraInfo", paramThrowable }); + return com.a.a("native exception %s stack:%s", new Object[] { paramThrowable, a(paramThrowable, 0) }); + } + + private static String a(Throwable paramThrowable, int paramInt) { + StackTraceElement[] arrayOfStackTraceElement = paramThrowable.getStackTrace(); + StringBuilder stringBuilder = new StringBuilder(); + int j = paramInt + 5; + int i = j; + if (j > arrayOfStackTraceElement.length) + i = arrayOfStackTraceElement.length; + if (paramInt < i) { + stringBuilder.append(arrayOfStackTraceElement[paramInt]); + while (true) { + if (++paramInt < i) { + stringBuilder.append(" "); + stringBuilder.append(arrayOfStackTraceElement[paramInt]); + continue; + } + break; + } + } + return stringBuilder.toString(); + } + + public static String a(boolean paramBoolean, String... paramVarArgs) { + String str = com.a.a("permission denied, %s %s", new Object[] { paramVarArgs[0], paramVarArgs[1] }); + AppBrandLogger.e("ApiCallResultHelper", new Object[] { "PermissionDenyStr unsupported args length" }); + return TextUtils.isEmpty(str) ? str : str.trim(); + } + + public static String a(String... paramVarArgs) { + if (paramVarArgs.length == 2) + return com.a.a("permission denied, %s %s", new Object[] { paramVarArgs[0], paramVarArgs[1] }); + if (paramVarArgs.length == 3) + return com.a.a("permission denied, %s %s -> %s", new Object[] { paramVarArgs[0], paramVarArgs[1], paramVarArgs[2] }); + AppBrandLogger.e("ApiCallResultHelper", new Object[] { "PermissionDenyStr unsupported args length" }); + return ""; + } + + public static JSONObject a(HashMap paramHashMap) { + if (paramHashMap != null) { + JSONObject jSONObject = new JSONObject(); + for (String str : paramHashMap.keySet()) { + try { + jSONObject.put(str, paramHashMap.get(str)); + } catch (JSONException jSONException) { + AppBrandLogger.e("ApiCallResultHelper", new Object[] { "generateJsonObjectResponseData", jSONException }); + } + } + return jSONObject; + } + return null; + } + + public static String b(String paramString) { + return com.a.a("param:%s illegal", new Object[] { paramString }); + } + + public static String b(String... paramVarArgs) { + if (paramVarArgs.length == 1) + return com.a.a("no such file or directory %s", new Object[] { paramVarArgs[0] }); + if (paramVarArgs.length == 2) + return com.a.a("no such file or directory, %s %s", new Object[] { paramVarArgs[0], paramVarArgs[1] }); + if (paramVarArgs.length == 3) + return com.a.a("no such file or directory, %s %s -> %s", new Object[] { paramVarArgs[0], paramVarArgs[1], paramVarArgs[2] }); + AppBrandLogger.e("ApiCallResultHelper", new Object[] { "NoSuchFileStr unsupported args length" }); + return ""; + } + + public static String c(String paramString) { + return com.a.a("%s is null", new Object[] { paramString }); + } + + public static String d(String paramString) { + return com.a.a("unknown error on method %s stack:%s", new Object[] { paramString, a(new Throwable(), 1) }); + } + + public static String e(String paramString) { + return com.a.a("file not exist path:%s", new Object[] { paramString }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\a.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/b.java b/df_miniapp/classes/com/tt/frontendapiinterface/b.java new file mode 100644 index 0000000..4671bed --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/b.java @@ -0,0 +1,195 @@ +package com.tt.frontendapiinterface; + +import android.content.Intent; +import android.text.TextUtils; +import com.tt.miniapp.business.frontendapihandle.base.ApiCallbackHandler; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.extra.ICrossProcessOperator; +import com.tt.miniapphost.process.helper.AsyncIpcHandler; +import com.tt.miniapphost.util.DebugUtil; +import com.tt.option.e.e; +import java.util.HashMap; +import org.json.JSONObject; + +@Deprecated +public abstract class b extends ApiCallbackHandler implements ICrossProcessOperator { + @Deprecated + public static final String API_CALLBACK_ERRMSG = "errMsg"; + + @Deprecated + public static final String API_CALLBACK_ERRSTACK = "errStack"; + + @Deprecated + public static final String API_CALLBACK_EXCEPTION = "exception"; + + public e mApiHandlerCallback; + + public String mArgs; + + public int mCallBackId; + + public b(String paramString, int paramInt, e parame) { + this.mArgs = paramString; + this.mCallBackId = paramInt; + this.mApiHandlerCallback = parame; + } + + private void apiHandlerCallback(String paramString) { + this.mApiHandlerCallback.callback(this.mCallBackId, paramString); + onApiHandlerCallback(); + } + + @Deprecated + public static String buildErrorMsg(String paramString1, String paramString2) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramString1); + stringBuilder.append(":"); + stringBuilder.append(paramString2); + return stringBuilder.toString(); + } + + protected abstract void act(); + + public void callbackApiHandleResult(ApiCallResult paramApiCallResult) { + apiHandlerCallback(paramApiCallResult.toString()); + } + + public final void callbackAppUnSupportFeature() { + callbackFail("feature is not supported in app"); + } + + @Deprecated + public void callbackDefaultMsg(boolean paramBoolean) { + callbackMsg(paramBoolean, (HashMap)null, (String)null); + } + + @Deprecated + public void callbackException(Throwable paramThrowable) { + doCallbackByApiHandler(makeMsgByResult(false, (HashMap)null, "exception", paramThrowable).toString()); + } + + @Deprecated + public void callbackExtraInfoMsg(boolean paramBoolean, String paramString) { + callbackMsg(paramBoolean, (HashMap)null, paramString); + } + + public final void callbackIllegalParam(String paramString) { + callbackFail(a.b(paramString)); + } + + @Deprecated + public void callbackMsg(boolean paramBoolean, HashMap paramHashMap, String paramString) { + doCallbackByApiHandler(makeMsgByResult(paramBoolean, paramHashMap, paramString).toString()); + } + + public final void callbackOnOriginProcess(String paramString) { + if (paramString == null) { + callbackFail("get empty remote process result"); + return; + } + apiHandlerCallback(paramString); + } + + @Deprecated + public void callbackOtherExtraMsg(boolean paramBoolean, HashMap paramHashMap) { + callbackMsg(paramBoolean, paramHashMap, (String)null); + } + + public final void doAct() { + if (shouldHandleActivityResult()) + (c.a()).a.add(this); + try { + return; + } finally { + Exception exception = null; + DebugUtil.logOrThrow("ApiHandler", new Object[] { "ApiHandler act", exception }); + callbackFail(exception); + } + } + + @Deprecated + public void doCallbackByApiHandler(String paramString) { + apiHandlerCallback(paramString); + } + + public abstract String getActionName(); + + public final String getApiName() { + return getActionName(); + } + + protected String[] getNeededPermissions() { + return null; + } + + public boolean handleActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + return false; + } + + public final boolean isSwitchProcessOperateAsync() { + return true; + } + + @Deprecated + public JSONObject makeMsgByResult(boolean paramBoolean, HashMap paramHashMap, String paramString) { + return makeMsgByResult(paramBoolean, paramHashMap, paramString, (Throwable)null); + } + + @Deprecated + public JSONObject makeMsgByResult(boolean paramBoolean, HashMap paramHashMap, String paramString, Throwable paramThrowable) { + if (paramBoolean) { + ApiCallResult.a a1 = ApiCallResult.a.a(getActionName()); + if (!TextUtils.isEmpty(paramString)) { + a1.d(paramString); + } else if (paramThrowable != null) { + a1.a(paramThrowable); + } + a1.a(paramHashMap); + return (a1.a()).a; + } + ApiCallResult.a a = ApiCallResult.a.b(getActionName()); + if (!TextUtils.isEmpty(paramString)) { + a.d(paramString); + } else if (paramThrowable != null) { + a.a(paramThrowable); + } + a.a(paramHashMap); + return (a.a()).a; + } + + public final boolean onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + return handleActivityResult(paramInt1, paramInt2, paramIntent); + } + + protected void onApiHandlerCallback() {} + + public final void operateFinishOnGoalProcess(String paramString, AsyncIpcHandler paramAsyncIpcHandler) { + paramAsyncIpcHandler.callback(CrossProcessDataEntity.Builder.create().put("apiExecuteResult", paramString).build(), true); + } + + public String operateProcessIdentify() { + return "miniAppProcess"; + } + + @Deprecated + protected String paramIllegalMsg(String paramString) { + StringBuilder stringBuilder = new StringBuilder("param:"); + stringBuilder.append(paramString); + stringBuilder.append(" illegal"); + return stringBuilder.toString(); + } + + public boolean shouldHandleActivityResult() { + return false; + } + + public void unRegesterResultHandler() { + (c.a()).a.remove(this); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\b.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/c.java b/df_miniapp/classes/com/tt/frontendapiinterface/c.java new file mode 100644 index 0000000..977a76a --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/c.java @@ -0,0 +1,30 @@ +package com.tt.frontendapiinterface; + +import java.util.ArrayList; +import java.util.List; + +public final class c { + public List a = new ArrayList(); + + public b b; + + private c() {} + + public static c a() { + return a.a; + } + + public final void b() { + this.a.clear(); + } + + static final class a { + static c a = new c(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\c.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/d.java b/df_miniapp/classes/com/tt/frontendapiinterface/d.java new file mode 100644 index 0000000..c7ca474 --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/d.java @@ -0,0 +1,31 @@ +package com.tt.frontendapiinterface; + +import android.text.TextUtils; + +public final class d { + public final boolean a; + + public final String b; + + private d(boolean paramBoolean, String paramString) { + this.a = paramBoolean; + String str = paramString; + if (TextUtils.isEmpty(paramString)) + str = ""; + this.b = str; + } + + public static d a() { + return new d(true, ""); + } + + public static d a(String paramString) { + return new d(false, paramString); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\d.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/e.java b/df_miniapp/classes/com/tt/frontendapiinterface/e.java new file mode 100644 index 0000000..69de92a --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/e.java @@ -0,0 +1,17 @@ +package com.tt.frontendapiinterface; + +public interface e { + void goback(); + + void registerKeyboardListener(k paramk); + + void setKeepScreenOn(boolean paramBoolean); + + void unRegisterKeyboardListener(k paramk); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\e.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/f.java b/df_miniapp/classes/com/tt/frontendapiinterface/f.java new file mode 100644 index 0000000..3aa6436 --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/f.java @@ -0,0 +1,9 @@ +package com.tt.frontendapiinterface; + +public interface f {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\f.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/g.java b/df_miniapp/classes/com/tt/frontendapiinterface/g.java new file mode 100644 index 0000000..18d2042 --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/g.java @@ -0,0 +1,9 @@ +package com.tt.frontendapiinterface; + +public interface g {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\g.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/h.java b/df_miniapp/classes/com/tt/frontendapiinterface/h.java new file mode 100644 index 0000000..ac063dc --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/h.java @@ -0,0 +1,11 @@ +package com.tt.frontendapiinterface; + +public interface h { + boolean onBackPressed(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\h.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/i.java b/df_miniapp/classes/com/tt/frontendapiinterface/i.java new file mode 100644 index 0000000..9d354df --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/i.java @@ -0,0 +1,56 @@ +package com.tt.frontendapiinterface; + +import android.app.Activity; +import android.view.View; +import android.webkit.WebView; +import com.tt.miniapp.component.nativeview.NativeViewManager; +import com.tt.miniapp.view.webcore.NativeNestWebView; +import com.tt.option.n.c; + +public interface i { + Activity getCurrentActivity(); + + c getFileChooseHandler(); + + NativeNestWebView getNativeNestWebView(); + + NativeViewManager getNativeViewManager(); + + int getRenderHeight(); + + int getRenderWidth(); + + View getRootView(); + + int getTitleBarHeight(); + + WebView getWebView(); + + int getWebViewId(); + + void hideNavigationBarHomeButton(); + + void onNativeWebViewPageFinished(boolean paramBoolean); + + void onStartPullDownRefresh(); + + void onStopPullDownRefresh(); + + void setLoadAsWebView(); + + void setNavigationBarColor(String paramString1, String paramString2); + + void setNavigationBarLoading(boolean paramBoolean); + + void setNavigationBarTitle(String paramString); + + void showKeyboard(int paramInt); + + void updateWebTitle(String paramString, boolean paramBoolean); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\i.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/j.java b/df_miniapp/classes/com/tt/frontendapiinterface/j.java new file mode 100644 index 0000000..89e3a7b --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/j.java @@ -0,0 +1,25 @@ +package com.tt.frontendapiinterface; + +public interface j { + void invokeApi(String paramString, g paramg, int paramInt); + + void onHide(); + + void onShow(); + + void returnAsyncResult(int paramInt, String paramString); + + void sendMsgToJsCore(String paramString1, String paramString2); + + void sendMsgToJsCore(String paramString1, String paramString2, int paramInt); + + void sendMsgToJsCore(String paramString1, String paramString2, int paramInt, boolean paramBoolean); + + void sendMsgToJsCore2(String paramString, g paramg); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\j.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/frontendapiinterface/k.java b/df_miniapp/classes/com/tt/frontendapiinterface/k.java new file mode 100644 index 0000000..52783fb --- /dev/null +++ b/df_miniapp/classes/com/tt/frontendapiinterface/k.java @@ -0,0 +1,11 @@ +package com.tt.frontendapiinterface; + +public interface k { + void onKeyboardHeightChanged(int paramInt1, int paramInt2); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\frontendapiinterface\k.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/AppConfig.java b/df_miniapp/classes/com/tt/miniapp/AppConfig.java new file mode 100644 index 0000000..999d4b7 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/AppConfig.java @@ -0,0 +1,785 @@ +package com.tt.miniapp; + +import android.text.TextUtils; +import com.storage.async.Action; +import com.tt.miniapp.launchcache.meta.AppInfoHelper; +import com.tt.miniapp.thread.ThreadPools; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.game.GameModuleController; +import com.tt.miniapphost.util.DebugUtil; +import com.tt.miniapphost.util.UIUtils; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class AppConfig { + private static final Map sReplaceKeyPartWithExtMap = new HashMap() { + + }; + + public Global global; + + public boolean isBackToHome = false; + + public HashMap loadpages = new HashMap(); + + private JSONObject mAppConfigJson; + + private AuthorizeDescription mAuthorizeDescription; + + public String mEntryPath; + + private JSONObject mExtConfigJson; + + private LaunchAppConfig mLaunchAppConfig; + + private NetworkTimeout mNetworkTimeout; + + private TabBar mTabBar; + + public Set naviToAppInfoList = new HashSet(); + + public Set naviToAppList = new HashSet(); + + public Page page; + + private ArrayList pageList = new ArrayList(); + + public String screenOrientation; + + public static String cutHtmlSuffix(String paramString) { + String str = paramString; + if (!TextUtils.isEmpty(paramString)) { + str = paramString; + if (paramString.endsWith(".html")) + str = paramString.substring(0, paramString.length() - 5); + } + return str; + } + + private static JSONObject getExtConfigJson() { + AppInfoEntity appInfoEntity = AppbrandApplication.getInst().getAppInfo(); + if (appInfoEntity != null) { + String str = appInfoEntity.mExtJson; + if (!TextUtils.isEmpty(str)) + try { + return new JSONObject(str); + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(6, "tma_AppConfig", jSONException.getStackTrace()); + } + } + return null; + } + + private static JSONArray getJSONArrayFromConfig(JSONObject paramJSONObject1, JSONObject paramJSONObject2, String paramString) { + if (paramJSONObject2 != null && paramJSONObject2.has(paramString)) { + JSONArray jSONArray = paramJSONObject2.optJSONArray(paramString); + } else { + paramJSONObject2 = null; + } + return (JSONArray)merge(paramJSONObject1.optJSONArray(paramString), paramJSONObject2, paramString, paramString); + } + + private static JSONObject getJSONObjectFromConfig(JSONObject paramJSONObject1, JSONObject paramJSONObject2, String paramString) { + return getJSONObjectFromConfig(paramJSONObject1, paramJSONObject2, paramString, paramString); + } + + private static JSONObject getJSONObjectFromConfig(JSONObject paramJSONObject1, JSONObject paramJSONObject2, String paramString1, String paramString2) { + if (paramJSONObject2 != null && paramJSONObject2.has(paramString2)) { + paramJSONObject2 = paramJSONObject2.optJSONObject(paramString2); + } else { + paramJSONObject2 = null; + } + return merge(paramJSONObject1.optJSONObject(paramString1), paramJSONObject2, paramString1, paramString2); + } + + private static void getNaviToAppMeta(final AppConfig appConfig) { + ThreadUtil.runOnWorkThread(new Action() { + public final void act() { + Iterator iterator = appConfig.naviToAppList.iterator(); + while (iterator.hasNext()) { + AppInfoEntity appInfoEntity = AppInfoHelper.requestMeta(iterator.next()); + if (appInfoEntity != null) + appConfig.naviToAppInfoList.add(appInfoEntity); + } + } + }, ThreadPools.longIO()); + } + + public static String getPagePath(String paramString) { + String str = paramString; + if (!TextUtils.isEmpty(paramString)) { + int i = paramString.indexOf("?"); + str = paramString; + if (i > 0) + str = paramString.substring(0, i); + } + return cutHtmlSuffix(str); + } + + private static String getStringFromConfig(JSONObject paramJSONObject1, JSONObject paramJSONObject2, String paramString) { + if (paramJSONObject2 != null && paramJSONObject2.has(paramString)) { + String str = paramJSONObject2.optString(paramString); + } else { + paramJSONObject2 = null; + } + return (String)merge(paramJSONObject1.optString(paramString), paramJSONObject2, paramString, paramString); + } + + private static T merge(T paramT1, T paramT2, String paramString1, String paramString2) { + JSONObject jSONObject; + JSONArray jSONArray; + if (paramT1 == null) + return paramT2; + if (paramT2 == null) + return paramT1; + boolean bool = paramT1 instanceof JSONObject; + int i = 0; + if (bool) { + StringBuilder stringBuilder; + if (!(paramT2 instanceof JSONObject)) { + stringBuilder = new StringBuilder(" merge JSONObject 类型不匹配。 appConfigValue:"); + stringBuilder.append(paramT1); + stringBuilder.append(" extConfigValue:"); + stringBuilder.append(paramT2); + DebugUtil.outputError("tma_AppConfig", new Object[] { stringBuilder.toString() }); + return paramT2; + } + JSONObject jSONObject1 = (JSONObject)paramT1; + jSONObject = preHandleExtValueBeforeMerge(paramString2, (JSONObject)paramT2); + List list = sReplaceKeyPartWithExtMap.get(stringBuilder); + Iterator iterator = jSONObject.keys(); + while (iterator.hasNext()) { + String str = iterator.next(); + Object object = jSONObject.opt(str); + if (list != null && list.contains(str)) { + try { + jSONObject1.put(str, object); + } catch (JSONException jSONException) { + AppBrandLogger.e("tma_AppConfig", new Object[] { "mergeJsonObject", jSONException }); + } + continue; + } + try { + jSONObject1.put((String)jSONException, merge(jSONObject1.opt((String)jSONException), object, null, null)); + } catch (JSONException jSONException1) { + AppBrandLogger.e("tma_AppConfig", new Object[] { "mergeJsonObject", jSONException1 }); + } + } + return paramT1; + } + if (paramT1 instanceof JSONArray) { + if (!(jSONObject instanceof JSONArray)) { + StringBuilder stringBuilder = new StringBuilder(" merge JSONArray 类型不匹配。 appConfigValue:"); + stringBuilder.append(paramT1); + stringBuilder.append(" extConfigValue:"); + stringBuilder.append(jSONObject); + DebugUtil.outputError("tma_AppConfig", new Object[] { stringBuilder.toString() }); + return (T)jSONObject; + } + JSONArray jSONArray1 = (JSONArray)paramT1; + jSONArray = (JSONArray)jSONObject; + int j = jSONArray.length(); + while (i < j) { + jSONArray1.put(jSONArray.opt(i)); + i++; + } + return paramT1; + } + return (T)jSONArray; + } + + public static AppConfig parseAppConfig(String paramString) throws JSONException { + JSONObject jSONObject1; + AppBrandLogger.i("tma_AppConfig", new Object[] { "appJson = ", paramString }); + AppConfig appConfig = new AppConfig(); + JSONObject jSONObject3 = getExtConfigJson(); + AppBrandLogger.d("tma_AppConfig", new Object[] { "extConfigJson", jSONObject3 }); + appConfig.mExtConfigJson = jSONObject3; + JSONObject jSONObject4 = new JSONObject(paramString); + appConfig.mAppConfigJson = jSONObject4; + appConfig.mEntryPath = getStringFromConfig(jSONObject4, jSONObject3, "entryPagePath"); + appConfig.mEntryPath = cutHtmlSuffix(appConfig.mEntryPath); + AppBrandLogger.d("tma_AppConfig", new Object[] { "appConfig.mEntryPath = ", appConfig.mEntryPath }); + JSONArray jSONArray2 = getJSONArrayFromConfig(jSONObject4, jSONObject3, "pages"); + if (jSONArray2 != null) { + int j = jSONArray2.length(); + for (int i = 0; i < j; i++) + appConfig.pageList.add(jSONArray2.optString(i)); + } + JSONObject jSONObject2 = getJSONObjectFromConfig(jSONObject4, jSONObject3, "loadPage"); + if (jSONObject2 != null) + for (String str : appConfig.pageList) + appConfig.loadpages.put(str, jSONObject2.optString(str)); + if (AppbrandApplicationImpl.getInst().getAppInfo().isGame()) { + JSONArray jSONArray = jSONObject4.optJSONArray("ttNavigateToMiniGameAppIdList"); + GameModuleController.inst().onGameInstall(jSONArray); + } + JSONArray jSONArray1 = jSONObject4.optJSONArray("navigateToMiniProgramAppIdList"); + if (jSONArray1 != null) { + int j = jSONArray1.length(); + for (int i = 0; i < j; i++) + appConfig.naviToAppList.add(jSONArray1.optString(i)); + getNaviToAppMeta(appConfig); + } + JSONObject jSONObject5 = jSONObject4.optJSONObject("global"); + jSONArray1 = null; + if (jSONObject5 == null) { + if (jSONObject3 != null) + jSONObject1 = jSONObject3.getJSONObject("window"); + } else { + jSONObject1 = getJSONObjectFromConfig(jSONObject5, jSONObject3, "window"); + } + appConfig.global = Global.parseGlobal(jSONObject1); + appConfig.page = Page.parsePage(getJSONObjectFromConfig(jSONObject4, jSONObject3, "page", "extPages")); + appConfig.screenOrientation = getStringFromConfig(jSONObject4, jSONObject3, "deviceOrientation"); + if (TextUtils.isEmpty(appConfig.screenOrientation)) + appConfig.screenOrientation = "portrait"; + AppBrandLogger.d("tma_AppConfig", new Object[] { "appConfig", appConfig }); + return appConfig; + } + + private static T preHandleExtValueBeforeMerge(String paramString, T paramT) { + JSONObject jSONObject; + if (TextUtils.equals(paramString, "extPages") && paramT instanceof JSONObject) { + JSONObject jSONObject1 = new JSONObject(); + jSONObject = (JSONObject)paramT; + Iterator iterator = jSONObject.keys(); + while (iterator.hasNext()) { + String str = iterator.next(); + JSONObject jSONObject2 = new JSONObject(); + try { + jSONObject2.put("window", jSONObject.opt(str)); + jSONObject1.put(str, jSONObject2); + } catch (JSONException jSONException) { + AppBrandLogger.d("tma_AppConfig", new Object[] { "preHandleExtValueBeforeMerge", jSONException }); + } + } + return (T)jSONObject1; + } + return (T)jSONObject; + } + + public AuthorizeDescription getAuthorizeDescription() { + if (this.mAuthorizeDescription == null) + this.mAuthorizeDescription = AuthorizeDescription.parseAuthorizeDescription(this.mAppConfigJson.optJSONObject("permission")); + return this.mAuthorizeDescription; + } + + public LaunchAppConfig getLaunchAppConfig() { + if (this.mLaunchAppConfig == null) + this.mLaunchAppConfig = LaunchAppConfig.parseLaunchAppConfig(getJSONObjectFromConfig(this.mAppConfigJson, this.mExtConfigJson, "ttLaunchApp")); + return this.mLaunchAppConfig; + } + + public Set getNaviToAppInfoList() { + return this.naviToAppInfoList; + } + + public Set getNaviToAppList() { + return this.naviToAppList; + } + + public NetworkTimeout getNetworkTimeout() { + if (this.mNetworkTimeout == null) + this.mNetworkTimeout = NetworkTimeout.parseNetworkTimeout(this.mAppConfigJson.optJSONObject("networkTimeout")); + return this.mNetworkTimeout; + } + + public ArrayList getPageList() { + return this.pageList; + } + + public JSONObject getPrefetches() { + return this.mAppConfigJson.optJSONObject("prefetches"); + } + + public TabBar getTabBar() { + if (this.mTabBar == null) + this.mTabBar = TabBar.parseTabBar(getJSONObjectFromConfig(this.mAppConfigJson, this.mExtConfigJson, "tabBar")); + return this.mTabBar; + } + + public static class AuthorizeDescription { + private String address; + + private String album; + + private String camera; + + private String record; + + private String userLocation; + + public static AuthorizeDescription parseAuthorizeDescription(JSONObject param1JSONObject) { + AuthorizeDescription authorizeDescription = new AuthorizeDescription(); + if (param1JSONObject != null) { + JSONObject jSONObject = param1JSONObject.optJSONObject("scope.userLocation"); + if (jSONObject != null) + authorizeDescription.userLocation = jSONObject.optString("desc", null); + jSONObject = param1JSONObject.optJSONObject("scope.address"); + if (jSONObject != null) + authorizeDescription.address = jSONObject.optString("desc", null); + jSONObject = param1JSONObject.optJSONObject("scope.record"); + if (jSONObject != null) + authorizeDescription.record = jSONObject.optString("desc", null); + jSONObject = param1JSONObject.optJSONObject("scope.album"); + if (jSONObject != null) + authorizeDescription.album = jSONObject.optString("desc", null); + param1JSONObject = param1JSONObject.optJSONObject("scope.camera"); + if (param1JSONObject != null) + authorizeDescription.camera = param1JSONObject.optString("desc", null); + } + return authorizeDescription; + } + + public String getAddress() { + return this.address; + } + + public String getAlbum() { + return this.album; + } + + public String getCamera() { + return this.camera; + } + + public String getRecord() { + return this.record; + } + + public String getUserLocation() { + return this.userLocation; + } + } + + public static class Global { + public AppConfig.Window window; + + public static Global parseGlobal(JSONObject param1JSONObject) { + Global global = new Global(); + if (param1JSONObject == null) + return global; + global.window = AppConfig.Window.parseWindow(param1JSONObject); + return global; + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("{window: "); + stringBuilder.append(this.window); + stringBuilder.append("}"); + return stringBuilder.toString(); + } + } + + public static class LaunchAppConfig { + public String appName; + + public String packageName; + + public static LaunchAppConfig parseLaunchAppConfig(JSONObject param1JSONObject) { + LaunchAppConfig launchAppConfig = new LaunchAppConfig(); + if (param1JSONObject != null) { + launchAppConfig.appName = param1JSONObject.optString("appName"); + launchAppConfig.packageName = param1JSONObject.optString("androidPackageName"); + } + return launchAppConfig; + } + } + + public static class NetworkTimeout { + public long connectSocket = 60000L; + + public long downloadFile = 60000L; + + public long request = 60000L; + + public long uploadFile = 60000L; + + public static NetworkTimeout parseNetworkTimeout(JSONObject param1JSONObject) { + NetworkTimeout networkTimeout = new NetworkTimeout(); + if (param1JSONObject != null) { + long l1 = param1JSONObject.optLong("request"); + long l2 = param1JSONObject.optLong("uploadFile"); + long l3 = param1JSONObject.optLong("downloadFile"); + long l4 = param1JSONObject.optLong("connectSocket"); + if (l1 > 0L && l1 < 60000L) + networkTimeout.request = l1; + if (l2 > 0L && l2 < 60000L) + networkTimeout.uploadFile = l2; + if (l3 > 0L && l3 < 60000L) + networkTimeout.downloadFile = l3; + if (l4 > 0L && l4 < 60000L) + networkTimeout.connectSocket = l4; + } + return networkTimeout; + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("{request: "); + stringBuilder.append(this.request); + stringBuilder.append("uploadFile: "); + stringBuilder.append(this.uploadFile); + stringBuilder.append("downloadFile: "); + stringBuilder.append(this.downloadFile); + stringBuilder.append("connectSocket: "); + stringBuilder.append(this.connectSocket); + stringBuilder.append("}"); + return stringBuilder.toString(); + } + } + + public static class Page { + private JSONObject mJsonObject; + + private Map pageConfig = new ConcurrentHashMap(); + + private Page(JSONObject param1JSONObject) { + this.mJsonObject = param1JSONObject; + } + + public static Page parsePage(JSONObject param1JSONObject) { + return new Page(param1JSONObject); + } + + public AppConfig.Window getWindow(String param1String) { + JSONObject jSONObject = this.mJsonObject; + if (jSONObject == null) + return null; + jSONObject = jSONObject.optJSONObject(param1String); + if (jSONObject == null) + return null; + AppConfig.Window window = AppConfig.Window.parseWindow(jSONObject.optJSONObject("window")); + this.pageConfig.put(AppConfig.cutHtmlSuffix(param1String), window); + return window; + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("{pageConfig: "); + stringBuilder.append(this.pageConfig); + stringBuilder.append("}"); + return stringBuilder.toString(); + } + } + + public static class TabBar { + public String backgroundColor; + + public String borderStyle; + + public String color; + + public String selectedColor; + + public ArrayList tabs; + + public static TabBar parseTabBar(JSONObject param1JSONObject) { + TabBar tabBar = new TabBar(); + if (param1JSONObject != null) { + tabBar.color = UIUtils.rgbaToFullARGBStr(param1JSONObject.optString("color"), "#222222"); + tabBar.selectedColor = UIUtils.rgbaToFullARGBStr(param1JSONObject.optString("selectedColor"), "#F85959"); + tabBar.borderStyle = param1JSONObject.optString("borderStyle"); + tabBar.backgroundColor = UIUtils.rgbaToFullARGBStr(param1JSONObject.optString("backgroundColor"), "#ffffff"); + JSONArray jSONArray = param1JSONObject.optJSONArray("list"); + if (jSONArray != null) { + tabBar.tabs = new ArrayList(); + int i = 0; + int j = jSONArray.length(); + while (i < j) { + JSONObject jSONObject = jSONArray.optJSONObject(i); + if (jSONObject != null) { + TabContent tabContent = new TabContent(); + tabBar.tabs.add(tabContent); + tabContent.pagePath = jSONObject.optString("pagePath"); + tabContent.pagePath = AppConfig.cutHtmlSuffix(tabContent.pagePath); + tabContent.iconPath = jSONObject.optString("iconPath"); + tabContent.selectedIconPath = jSONObject.optString("selectedIconPath"); + tabContent.text = jSONObject.optString("text"); + } + i++; + } + } + } + return tabBar; + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("{color: "); + stringBuilder.append(this.color); + stringBuilder.append(", selectedColor: "); + stringBuilder.append(this.selectedColor); + stringBuilder.append(", borderStyle: "); + stringBuilder.append(this.borderStyle); + stringBuilder.append(", backgroundColor: "); + stringBuilder.append(this.backgroundColor); + stringBuilder.append(", tabs: "); + stringBuilder.append(this.tabs); + stringBuilder.append("}"); + return stringBuilder.toString(); + } + + public static class TabContent { + public String iconPath; + + public String pagePath; + + public String selectedIconPath; + + public String text; + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("{pagePath: "); + stringBuilder.append(this.pagePath); + stringBuilder.append(", iconPath: "); + stringBuilder.append(this.iconPath); + stringBuilder.append(", selectedIconPath: "); + stringBuilder.append(this.selectedIconPath); + stringBuilder.append(", text: "); + stringBuilder.append(this.text); + stringBuilder.append("}"); + return stringBuilder.toString(); + } + } + } + + public static class TabContent { + public String iconPath; + + public String pagePath; + + public String selectedIconPath; + + public String text; + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("{pagePath: "); + stringBuilder.append(this.pagePath); + stringBuilder.append(", iconPath: "); + stringBuilder.append(this.iconPath); + stringBuilder.append(", selectedIconPath: "); + stringBuilder.append(this.selectedIconPath); + stringBuilder.append(", text: "); + stringBuilder.append(this.text); + stringBuilder.append("}"); + return stringBuilder.toString(); + } + } + + public static class Window { + public String backgroundColor; + + public String backgroundTextStyle; + + public boolean disableScroll; + + public boolean disableSwipeBack; + + public boolean enablePullDownRefresh; + + public HashMap extend = new HashMap(); + + public boolean hasBackgroundColor; + + public boolean hasBackgroundTextStyle; + + public boolean hasDisableScroll; + + public boolean hasDisableSwipeBack; + + public boolean hasEnablePullDownRefresh; + + public boolean hasExtend; + + public boolean hasNavigationBarBackgroundColor; + + public boolean hasNavigationBarTextStyle; + + public boolean hasNavigationBarTitleText; + + public boolean hasNavigationStyle; + + public boolean hasTransparentTitle; + + public String navigationBarBackgroundColor; + + public String navigationBarTextStyle; + + public String navigationBarTitleText; + + public String navigationStyle; + + public String transparentTitle; + + private static void coverWindow(String param1String, Window param1Window) { + StringBuilder stringBuilder; + if (param1String == null) + return; + Window window = param1Window.extend.get(param1String); + if (window == null) { + stringBuilder = new StringBuilder("小程序无"); + stringBuilder.append(param1String); + stringBuilder.append("的window配置"); + AppBrandLogger.e("tma_AppConfig", new Object[] { stringBuilder.toString() }); + return; + } + if (window.hasNavigationBarBackgroundColor) { + ((Window)stringBuilder).navigationBarBackgroundColor = UIUtils.rgbaToFullARGBStr(window.navigationBarBackgroundColor, "#000000"); + ((Window)stringBuilder).hasNavigationBarBackgroundColor = true; + } + if (window.hasNavigationBarTextStyle) { + ((Window)stringBuilder).navigationBarTextStyle = window.navigationBarTextStyle; + ((Window)stringBuilder).hasNavigationBarTextStyle = true; + } + if (window.hasNavigationBarTitleText) { + ((Window)stringBuilder).navigationBarTitleText = window.navigationBarTitleText; + ((Window)stringBuilder).hasNavigationBarTitleText = true; + } + if (window.hasEnablePullDownRefresh) { + ((Window)stringBuilder).enablePullDownRefresh = window.enablePullDownRefresh; + ((Window)stringBuilder).hasEnablePullDownRefresh = true; + } + if (window.hasBackgroundColor) { + ((Window)stringBuilder).backgroundColor = UIUtils.rgbaToFullARGBStr(window.backgroundColor, "#ffffff"); + ((Window)stringBuilder).hasBackgroundColor = true; + } + if (window.hasBackgroundTextStyle) { + ((Window)stringBuilder).backgroundTextStyle = window.backgroundTextStyle; + ((Window)stringBuilder).hasBackgroundTextStyle = true; + } + if (window.hasNavigationStyle) { + ((Window)stringBuilder).navigationStyle = window.navigationStyle; + ((Window)stringBuilder).hasNavigationStyle = true; + } + if (window.hasDisableScroll) { + ((Window)stringBuilder).disableScroll = window.disableScroll; + ((Window)stringBuilder).hasDisableScroll = true; + } + if (window.hasDisableSwipeBack) { + ((Window)stringBuilder).disableSwipeBack = window.disableSwipeBack; + ((Window)stringBuilder).hasDisableSwipeBack = true; + } + if (window.hasTransparentTitle) { + ((Window)stringBuilder).transparentTitle = window.transparentTitle; + ((Window)stringBuilder).hasTransparentTitle = true; + } + } + + public static Window parseWindow(JSONObject param1JSONObject) { + if (param1JSONObject == null) + return null; + Window window = new Window(); + window.hasNavigationBarBackgroundColor = param1JSONObject.has("navigationBarBackgroundColor"); + if (window.hasNavigationBarBackgroundColor) { + String str2 = UIUtils.rgbaToFullARGBStr(param1JSONObject.optString("navigationBarBackgroundColor"), "#000000"); + String str1 = str2; + if (str2.length() == 9) { + StringBuilder stringBuilder = new StringBuilder("#"); + stringBuilder.append(str2.substring(3)); + str1 = stringBuilder.toString(); + } + window.navigationBarBackgroundColor = str1; + } + window.hasNavigationBarTextStyle = param1JSONObject.has("navigationBarTextStyle"); + if (window.hasNavigationBarTextStyle) + window.navigationBarTextStyle = param1JSONObject.optString("navigationBarTextStyle"); + if (TextUtils.isEmpty(window.navigationBarTextStyle)) + window.navigationBarTextStyle = "white"; + window.hasNavigationBarTitleText = param1JSONObject.has("navigationBarTitleText"); + if (window.hasNavigationBarTitleText) + window.navigationBarTitleText = param1JSONObject.optString("navigationBarTitleText"); + window.hasEnablePullDownRefresh = param1JSONObject.has("enablePullDownRefresh"); + if (window.hasEnablePullDownRefresh) + window.enablePullDownRefresh = param1JSONObject.optBoolean("enablePullDownRefresh"); + window.hasBackgroundColor = param1JSONObject.has("backgroundColor"); + if (window.hasBackgroundColor) + window.backgroundColor = UIUtils.rgbaToFullARGBStr(param1JSONObject.optString("backgroundColor"), "#ffffff"); + window.hasBackgroundTextStyle = param1JSONObject.has("backgroundTextStyle"); + if (window.hasBackgroundTextStyle) + window.backgroundTextStyle = param1JSONObject.optString("backgroundTextStyle"); + window.hasNavigationStyle = param1JSONObject.has("navigationStyle"); + if (window.hasNavigationStyle) { + window.navigationStyle = param1JSONObject.optString("navigationStyle"); + } else { + window.navigationStyle = "default"; + } + window.hasDisableScroll = param1JSONObject.has("disableScroll"); + if (window.hasDisableScroll) + window.disableScroll = param1JSONObject.optBoolean("disableScroll"); + window.hasDisableSwipeBack = param1JSONObject.has("disableSwipeBack"); + if (window.hasDisableSwipeBack) + window.disableSwipeBack = param1JSONObject.optBoolean("disableSwipeBack"); + window.hasExtend = param1JSONObject.has("extend"); + if (window.hasExtend) { + JSONObject jSONObject = param1JSONObject.optJSONObject("extend"); + Iterator iterator = jSONObject.keys(); + while (iterator.hasNext()) { + String str = iterator.next(); + window.extend.put(str, parseWindow(jSONObject.optJSONObject(str))); + } + } + window.hasTransparentTitle = param1JSONObject.has("transparentTitle"); + if (window.hasTransparentTitle) { + window.transparentTitle = param1JSONObject.optString("transparentTitle"); + } else { + window.transparentTitle = "none"; + } + coverWindow(AppbrandContext.getInst().getInitParams().getAppName(), window); + return window; + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("{navigationBarBackgroundColor: "); + stringBuilder.append(this.navigationBarBackgroundColor); + stringBuilder.append(", navigationBarTextStyle: "); + stringBuilder.append(this.navigationBarTextStyle); + stringBuilder.append(", navigationBarTitleText: "); + stringBuilder.append(this.navigationBarTitleText); + stringBuilder.append(", enablePullDownRefresh: "); + stringBuilder.append(this.enablePullDownRefresh); + stringBuilder.append(", backgroundColor: "); + stringBuilder.append(this.backgroundColor); + stringBuilder.append(", backgroundTextStyle: "); + stringBuilder.append(this.backgroundTextStyle); + stringBuilder.append(", navigationStyle: "); + stringBuilder.append(this.navigationStyle); + stringBuilder.append(", disableScroll: "); + stringBuilder.append(this.disableScroll); + stringBuilder.append(", disableSwipeBack: "); + stringBuilder.append(this.disableSwipeBack); + stringBuilder.append(", transparentTitle: "); + stringBuilder.append(this.transparentTitle); + stringBuilder.append(", extend: {"); + stringBuilder = new StringBuilder(stringBuilder.toString()); + for (String str : this.extend.keySet()) { + StringBuilder stringBuilder1 = new StringBuilder(); + stringBuilder1.append(str); + stringBuilder1.append(": "); + stringBuilder1.append(((Window)this.extend.get(str)).toString()); + stringBuilder.append(stringBuilder1.toString()); + } + stringBuilder.append("}"); + stringBuilder.append("}"); + return stringBuilder.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\AppConfig.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/AppbrandApplicationImpl.java b/df_miniapp/classes/com/tt/miniapp/AppbrandApplicationImpl.java new file mode 100644 index 0000000..2a5ed36 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/AppbrandApplicationImpl.java @@ -0,0 +1,571 @@ +package com.tt.miniapp; + +import android.app.Activity; +import android.app.Application; +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.support.v4.f.a; +import android.webkit.WebView; +import com.storage.async.Action; +import com.storage.async.Scheduler; +import com.tt.frontendapiinterface.e; +import com.tt.frontendapiinterface.j; +import com.tt.miniapp.audio.AudioManager; +import com.tt.miniapp.audio.background.BgAudioManagerClient; +import com.tt.miniapp.autotest.AutoTestManager; +import com.tt.miniapp.badcase.BlockPageManager; +import com.tt.miniapp.base.IActivityFetcher; +import com.tt.miniapp.base.MiniAppContextWrapper; +import com.tt.miniapp.call.PhoneCallImpl; +import com.tt.miniapp.component.nativeview.NativeViewManager; +import com.tt.miniapp.component.nativeview.NativeWebView; +import com.tt.miniapp.debug.PerformanceService; +import com.tt.miniapp.debug.SwitchManager; +import com.tt.miniapp.dialog.ActionSheetImpl; +import com.tt.miniapp.dialog.DialogImpl; +import com.tt.miniapp.favorite.FavoriteGuideWidget; +import com.tt.miniapp.jsbridge.ApiPermissionManager; +import com.tt.miniapp.jsbridge.JsRuntimeManager; +import com.tt.miniapp.launch.MiniAppLaunchConfig; +import com.tt.miniapp.launchcache.meta.MetaService; +import com.tt.miniapp.launchcache.pkg.PkgService; +import com.tt.miniapp.launchschedule.LaunchScheduler; +import com.tt.miniapp.manager.AppConfigManager; +import com.tt.miniapp.manager.AppbrandBroadcastService; +import com.tt.miniapp.manager.ForeBackgroundManager; +import com.tt.miniapp.manager.HostSnapShotManager; +import com.tt.miniapp.manager.MainMessageLoggerManager; +import com.tt.miniapp.manager.StorageManager; +import com.tt.miniapp.preload.PreloadManager; +import com.tt.miniapp.process.AppProcessManager; +import com.tt.miniapp.process.bridge.InnerHostProcessBridge; +import com.tt.miniapp.route.PageRouter; +import com.tt.miniapp.route.RouteEventCtrl; +import com.tt.miniapp.shortcut.ShortcutService; +import com.tt.miniapp.streamloader.FileAccessLogger; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.titlemenu.item.FavoriteMiniAppMenuItem; +import com.tt.miniapp.toast.HideToastImpl; +import com.tt.miniapp.toast.ToastImpl; +import com.tt.miniapp.toast.ToastManager; +import com.tt.miniapp.util.RenderSnapShotManager; +import com.tt.miniapp.util.TimeLineReporter; +import com.tt.miniapp.util.TimeLogger; +import com.tt.miniapp.util.timeline.MpTimeLineReporter; +import com.tt.miniapp.view.webcore.LoadPathInterceptor; +import com.tt.miniapp.webapp.WebAppPreloadManager; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.IAppbrandApplication; +import com.tt.miniapphost.LaunchThreadPool; +import com.tt.miniapphost.ModeManager; +import com.tt.miniapphost.NativeModule; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.game.GameModuleController; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.preload.IPreload; +import com.tt.miniapphost.process.HostProcessBridge; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; + +public class AppbrandApplicationImpl implements IAppbrandApplication { + private static AppbrandApplicationImpl sInstance; + + private boolean isOpenedSchema = false; + + private boolean jumpToApp = false; + + private e mActivityLife; + + private AppInfoEntity mAppInfo; + + private a mCurrentPageHideShareMenuArrayMap = new a(); + + private String mCurrentPagePath; + + private String mCurrentPageType; + + private String mCurrentPageUrl; + + private int mCurrentWebViewId; + + private final ForeBackgroundManager mForeBackgroundManager; + + private MiniAppLaunchConfig mMiniAppLaunchConfig = MiniAppLaunchConfig.DEFAULT; + + private boolean mNeedNotifyPreloadEmptyProcess = false; + + protected List mObservers = new CopyOnWriteArrayList(); + + private RouteEventCtrl mRouteEventCtrl; + + private String mSchema; + + private AppbrandServiceManager mServiceManager = new AppbrandServiceManager(this); + + private String mStopReason = ""; + + private Handler mainHandler = new Handler(Looper.getMainLooper()); + + private MiniAppContextWrapper miniAppContextWrapper; + + private AppInfoEntity updateAppInfo; + + private AppbrandApplicationImpl() { + GameModuleController.inst().registerService(this.mServiceManager); + this.mServiceManager.register(WebViewManager.class); + this.mServiceManager.register(TimeLineReporter.class); + this.mServiceManager.register(JsRuntimeManager.class); + this.mServiceManager.register(PerformanceService.class); + this.mServiceManager.register(PreloadManager.class); + this.mServiceManager.register(SwitchManager.class); + this.mServiceManager.register(MpTimeLineReporter.class); + this.mServiceManager.register(FileAccessLogger.class); + this.mServiceManager.register(AppConfigManager.class); + this.mServiceManager.register(ShortcutService.class); + this.mServiceManager.register(LaunchScheduler.class); + this.mServiceManager.register(LoadPathInterceptor.class); + this.mServiceManager.register(TimeLogger.class); + this.mServiceManager.register(AppbrandBroadcastService.class); + this.mServiceManager.register(PageRouter.class); + this.mServiceManager.register(HostSnapShotManager.class); + this.mServiceManager.register(RenderSnapShotManager.class); + this.mServiceManager.register(BlockPageManager.class); + this.mServiceManager.register(FavoriteGuideWidget.class); + this.mServiceManager.register(WebAppPreloadManager.class); + this.mServiceManager.register(AutoTestManager.class); + this.mServiceManager.register(MetaService.class); + this.mServiceManager.register(PkgService.class); + this.mServiceManager.register(MainMessageLoggerManager.class); + this.mForeBackgroundManager = new ForeBackgroundManager(); + } + + public static AppbrandApplicationImpl getInst() { + // Byte code: + // 0: ldc com/tt/miniapp/AppbrandApplicationImpl + // 2: monitorenter + // 3: invokestatic isBdpProcess : ()Z + // 6: ifne -> 23 + // 9: ldc 'tma_AppbrandApplicationImpl' + // 11: iconst_1 + // 12: anewarray java/lang/Object + // 15: dup + // 16: iconst_0 + // 17: ldc '这个类只应该在小程序、小游戏、UC进程里被使用' + // 19: aastore + // 20: invokestatic logOrThrow : (Ljava/lang/String;[Ljava/lang/Object;)V + // 23: getstatic com/tt/miniapp/AppbrandApplicationImpl.sInstance : Lcom/tt/miniapp/AppbrandApplicationImpl; + // 26: ifnonnull -> 60 + // 29: ldc com/tt/miniapp/AppbrandApplicationImpl + // 31: monitorenter + // 32: getstatic com/tt/miniapp/AppbrandApplicationImpl.sInstance : Lcom/tt/miniapp/AppbrandApplicationImpl; + // 35: ifnonnull -> 48 + // 38: new com/tt/miniapp/AppbrandApplicationImpl + // 41: dup + // 42: invokespecial : ()V + // 45: putstatic com/tt/miniapp/AppbrandApplicationImpl.sInstance : Lcom/tt/miniapp/AppbrandApplicationImpl; + // 48: ldc com/tt/miniapp/AppbrandApplicationImpl + // 50: monitorexit + // 51: goto -> 60 + // 54: astore_0 + // 55: ldc com/tt/miniapp/AppbrandApplicationImpl + // 57: monitorexit + // 58: aload_0 + // 59: athrow + // 60: getstatic com/tt/miniapp/AppbrandApplicationImpl.sInstance : Lcom/tt/miniapp/AppbrandApplicationImpl; + // 63: astore_0 + // 64: ldc com/tt/miniapp/AppbrandApplicationImpl + // 66: monitorexit + // 67: aload_0 + // 68: areturn + // 69: astore_0 + // 70: ldc com/tt/miniapp/AppbrandApplicationImpl + // 72: monitorexit + // 73: aload_0 + // 74: athrow + // Exception table: + // from to target type + // 3 23 69 finally + // 23 32 69 finally + // 32 48 54 finally + // 48 51 54 finally + // 55 58 54 finally + // 58 60 69 finally + // 60 64 69 finally + } + + public void finish() { + this.mForeBackgroundManager.clear(); + } + + public e getActivityLife() { + return this.mActivityLife; + } + + public AppConfig getAppConfig() { + return ((AppConfigManager)getService(AppConfigManager.class)).getAppConfig(); + } + + public AppInfoEntity getAppInfo() { + return this.mAppInfo; + } + + public a getCurrentPageHideShareMenuArrayMap() { + return this.mCurrentPageHideShareMenuArrayMap; + } + + public String getCurrentPagePath() { + return this.mCurrentPagePath; + } + + public String getCurrentPageType() { + return this.mCurrentPageType; + } + + public String getCurrentPageUrl() { + return this.mCurrentPageUrl; + } + + public int getCurrentWebViewId() { + return this.mCurrentWebViewId; + } + + public String getCurrentWebViewUrl() { + WebViewManager webViewManager = getWebViewManager(); + if (webViewManager != null) { + WebViewManager.IRender iRender = webViewManager.getCurrentIRender(); + if (iRender != null) { + NativeViewManager nativeViewManager = iRender.getNativeViewManager(); + if (nativeViewManager != null) { + NativeWebView nativeWebView = nativeViewManager.getCurrentNativeWebView(); + if (nativeWebView != null) { + WebView webView = nativeWebView.getWebView(); + if (webView != null) + return webView.getUrl(); + } + } + } + } + return null; + } + + public ForeBackgroundManager getForeBackgroundManager() { + return this.mForeBackgroundManager; + } + + public j getJsBridge() { + return ((JsRuntimeManager)getService(JsRuntimeManager.class)).getJsBridge(); + } + + public boolean getJumToApp() { + return this.jumpToApp; + } + + public LifeCycleManager getLifeCycleManager() { + return this.mServiceManager.get(LifeCycleManager.class); + } + + public Handler getMainHandler() { + return this.mainHandler; + } + + public MiniAppContextWrapper getMiniAppContext() { + // Byte code: + // 0: aload_0 + // 1: getfield miniAppContextWrapper : Lcom/tt/miniapp/base/MiniAppContextWrapper; + // 4: ifnonnull -> 50 + // 7: aload_0 + // 8: monitorenter + // 9: aload_0 + // 10: getfield miniAppContextWrapper : Lcom/tt/miniapp/base/MiniAppContextWrapper; + // 13: ifnonnull -> 40 + // 16: aload_0 + // 17: new com/tt/miniapp/AppbrandApplicationImpl$1 + // 20: dup + // 21: aload_0 + // 22: invokespecial : (Lcom/tt/miniapp/AppbrandApplicationImpl;)V + // 25: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 28: invokevirtual getApplicationContext : ()Landroid/app/Application; + // 31: invokestatic create : (Lcom/tt/miniapp/base/IActivityFetcher;Landroid/content/Context;)Lcom/tt/miniapp/base/MiniAppContextWrapper$Builder; + // 34: invokevirtual build : ()Lcom/tt/miniapp/base/MiniAppContextWrapper; + // 37: putfield miniAppContextWrapper : Lcom/tt/miniapp/base/MiniAppContextWrapper; + // 40: aload_0 + // 41: monitorexit + // 42: goto -> 50 + // 45: astore_1 + // 46: aload_0 + // 47: monitorexit + // 48: aload_1 + // 49: athrow + // 50: aload_0 + // 51: getfield miniAppContextWrapper : Lcom/tt/miniapp/base/MiniAppContextWrapper; + // 54: areturn + // Exception table: + // from to target type + // 9 40 45 finally + // 40 42 45 finally + // 46 48 45 finally + } + + public MiniAppLaunchConfig getMiniAppLaunchConfig() { + return this.mMiniAppLaunchConfig; + } + + public IPreload getPreloadManager() { + return (IPreload)getService(PreloadManager.class); + } + + public String getRequestRefer() { + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append("https://tmaservice.developer.toutiao.com"); + AppInfoEntity appInfoEntity = this.mAppInfo; + if (appInfoEntity != null && appInfoEntity.appId != null && this.mAppInfo.version != null) { + stringBuffer.append("?appid="); + stringBuffer.append(this.mAppInfo.appId); + stringBuffer.append("&version="); + stringBuffer.append(this.mAppInfo.version); + } + return stringBuffer.toString(); + } + + public RouteEventCtrl getRouteEventCtrl() { + return this.mRouteEventCtrl; + } + + public String getSchema() { + return this.mSchema; + } + + public T getService(Class paramClass) { + return this.mServiceManager.get(paramClass); + } + + public String getStopReason() { + return this.mStopReason; + } + + public AppInfoEntity getUpdateAppInfo() { + return this.updateAppInfo; + } + + public WebViewManager getWebViewManager() { + return getService(WebViewManager.class); + } + + public AppConfig initAppConfig() { + return ((AppConfigManager)getService(AppConfigManager.class)).initAppConfig(); + } + + public void invokeHandler(int paramInt1, int paramInt2, String paramString) { + WebViewManager webViewManager = getWebViewManager(); + if (webViewManager != null) + webViewManager.invokeHandler(paramInt1, paramInt2, paramString); + } + + public void markNeedPreload() { + this.mNeedNotifyPreloadEmptyProcess = true; + } + + public void notifyPreloadEmptyProcess() { + if (this.mNeedNotifyPreloadEmptyProcess) { + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + InnerHostProcessBridge.notifyPreloadEmptyProcess(); + } + }, (Scheduler)LaunchThreadPool.getInst()); + this.mNeedNotifyPreloadEmptyProcess = false; + } + } + + public void onCreate() { + getLifeCycleManager().notifyAppCreate(); + AppBrandLogger.d("tma_AppbrandApplicationImpl", new Object[] { "--------onCreate---- " }); + this.mRouteEventCtrl = new RouteEventCtrl(); + AppbrandContext.getInst().getApplicationContext().registerActivityLifecycleCallbacks(new AppbrandActivityLifeCycleCallback(this)); + ArrayList arrayList = new ArrayList(); + arrayList.add(new ActionSheetImpl(AppbrandContext.getInst())); + arrayList.add(new DialogImpl(AppbrandContext.getInst())); + arrayList.add(new ToastImpl(AppbrandContext.getInst())); + arrayList.add(new HideToastImpl(AppbrandContext.getInst())); + arrayList.add(new PhoneCallImpl(AppbrandContext.getInst())); + arrayList.add(new FavoriteMiniAppMenuItem.FavoriteModule(AppbrandContext.getInst())); + for (NativeModule nativeModule : arrayList) + ModeManager.getInst().register(nativeModule.getName(), nativeModule); + List list = HostDependManager.getInst().createNativeModules(AppbrandContext.getInst()); + if (list != null) + for (NativeModule nativeModule : list) + ModeManager.getInst().register(nativeModule.getName(), nativeModule); + } + + public void onError(String paramString) {} + + public void onHide() { + AppBrandLogger.d("tma_AppbrandApplicationImpl", new Object[] { "onHide" }); + HostDependManager.getInst().getMiniAppLifeCycleInstance(); + this.mForeBackgroundManager.onBackground(); + ToastManager.clearToast(); + AudioManager.getInst().onEnterBackground(); + GameModuleController.inst().onHide(); + getLifeCycleManager().notifyAppHide(); + j j = getJsBridge(); + if (j != null) { + j.onHide(); + } else { + RouteEventCtrl routeEventCtrl = getRouteEventCtrl(); + if (routeEventCtrl != null) + routeEventCtrl.onAppHide(); + } + if (!this.isOpenedSchema && !InnerHostProcessBridge.isInJumpList((getAppInfo()).appId) && !BgAudioManagerClient.getInst().needKeepAlive()) { + AppBrandLogger.i("tma_AppbrandApplicationImpl", new Object[] { "小程序进入后台等待 5 分钟后被 SDK 逻辑杀死" }); + AppProcessManager.getProcessHandler().sendEmptyMessageDelayed(1, 300000L); + } else { + AppBrandLogger.i("tma_AppbrandApplicationImpl", new Object[] { "小程序进入后台时保活,不会被 SDK 逻辑自动杀死" }); + } + Iterator iterator = this.mObservers.iterator(); + while (iterator.hasNext()) + ((ILifecycleObserver)iterator.next()).onHide(); + StorageManager.reportDiskOccupy(); + } + + public void onShow() { + HostDependManager.getInst().getMiniAppLifeCycleInstance(); + this.mForeBackgroundManager.onForeground(); + AudioManager.getInst().onEnterForeground(); + GameModuleController.inst().onShow(); + getLifeCycleManager().notifyAppShow(); + AppBrandLogger.d("tma_AppbrandApplicationImpl", new Object[] { "onShow" }); + this.isOpenedSchema = false; + j j = getJsBridge(); + if (j != null) { + j.onShow(); + } else { + RouteEventCtrl routeEventCtrl = getRouteEventCtrl(); + if (routeEventCtrl != null) + routeEventCtrl.onAppShow(); + } + InnerHostProcessBridge.setTmaLaunchFlag(); + AppProcessManager.getProcessHandler().removeMessages(1); + Iterator iterator = this.mObservers.iterator(); + while (iterator.hasNext()) + ((ILifecycleObserver)iterator.next()).onShow(); + } + + public void publish(int paramInt, String paramString1, String paramString2) { + WebViewManager webViewManager = getWebViewManager(); + if (webViewManager != null) + webViewManager.publish(paramInt, paramString1, paramString2); + } + + public void registerLifecycleObserver(ILifecycleObserver paramILifecycleObserver) { + this.mObservers.add(paramILifecycleObserver); + } + + public void setActivityLife(e parame) { + this.mActivityLife = parame; + } + + public void setAppInfo(final AppInfoEntity appInfo) { + this.mAppInfo = appInfo; + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + ApiPermissionManager.initApiWhiteList(appInfo.ttSafeCode); + ApiPermissionManager.initApiBlackList(appInfo.ttBlackCode); + ApiPermissionManager.initHostMethodWhiteList(appInfo.encryptextra); + appInfo.parseDomain(); + } + }, (Scheduler)LaunchThreadPool.getInst()); + } + + public void setCurrentPageHideShareMenuArrayMap(a parama) { + this.mCurrentPageHideShareMenuArrayMap = parama; + } + + public void setCurrentPagePath(String paramString) { + this.mCurrentPagePath = paramString; + } + + public void setCurrentPageType(String paramString) { + this.mCurrentPageType = paramString; + } + + public void setCurrentPageUrl(String paramString) { + this.mCurrentPageUrl = paramString; + } + + public void setCurrentWebViewId(int paramInt) { + this.mCurrentWebViewId = paramInt; + } + + public void setJumpToApp(boolean paramBoolean) { + this.jumpToApp = paramBoolean; + } + + public void setMiniAppLaunchConfig(MiniAppLaunchConfig paramMiniAppLaunchConfig) { + this.mMiniAppLaunchConfig = paramMiniAppLaunchConfig; + } + + public void setOpenedSchema(boolean paramBoolean) { + this.isOpenedSchema = paramBoolean; + } + + public void setSchema(String paramString) { + this.mSchema = paramString; + } + + public void setStopReason(String paramString) { + this.mStopReason = paramString; + } + + public void setUpdateAppInfo(AppInfoEntity paramAppInfoEntity) { + this.updateAppInfo = paramAppInfoEntity; + } + + public void ungisterLifecycleObserver(ILifecycleObserver paramILifecycleObserver) { + this.mObservers.remove(paramILifecycleObserver); + } + + static class AppbrandActivityLifeCycleCallback implements Application.ActivityLifecycleCallbacks { + AppbrandActivityLifeCycleCallback(AppbrandApplicationImpl param1AppbrandApplicationImpl) {} + + public void onActivityCreated(Activity param1Activity, Bundle param1Bundle) { + HostProcessBridge.callHostLifecycleAction(param1Activity, "onCreate"); + } + + public void onActivityDestroyed(Activity param1Activity) {} + + public void onActivityPaused(Activity param1Activity) { + AppBrandLogger.d("tma_AppbrandApplicationImpl", new Object[] { "onActivityPaused" }); + HostProcessBridge.callHostLifecycleAction(param1Activity, "onPause"); + } + + public void onActivityResumed(Activity param1Activity) { + HostProcessBridge.callHostLifecycleAction(param1Activity, "onResume"); + AppBrandLogger.d("tma_AppbrandApplicationImpl", new Object[] { "onActivityResumed" }); + } + + public void onActivitySaveInstanceState(Activity param1Activity, Bundle param1Bundle) { + AppBrandLogger.d("tma_AppbrandApplicationImpl", new Object[] { "onActivitySaveInstanceState" }); + } + + public void onActivityStarted(Activity param1Activity) {} + + public void onActivityStopped(Activity param1Activity) { + AppBrandLogger.d("tma_AppbrandApplicationImpl", new Object[] { "onActivityStopped" }); + } + } + + public static interface ILifecycleObserver { + void onHide(); + + void onShow(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\AppbrandApplicationImpl.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/AppbrandConstant.java b/df_miniapp/classes/com/tt/miniapp/AppbrandConstant.java new file mode 100644 index 0000000..c2e9818 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/AppbrandConstant.java @@ -0,0 +1,684 @@ +package com.tt.miniapp; + +import android.app.Application; +import android.content.Context; +import android.text.TextUtils; +import com.tt.miniapp.event.InnerEventHelper; +import com.tt.miniapp.manager.basebundle.BaseBundleManager; +import com.tt.miniapp.storage.filestorge.FileManager; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.util.AppbrandUtil; +import java.io.File; +import java.io.IOException; + +public class AppbrandConstant { + public static String PreEditManager_OUTPUT_FILE_NAME = "preEditedShareVideo.mp4"; + + private static File sMiniAppDownloadDir; + + public static File sMiniAppRootDir; + + public static File getJsBundleDir(Context paramContext) { + String str2 = BaseBundleManager.getInst().getSdkCurrentVersionStr(paramContext); + String str1 = str2; + if (TextUtils.isEmpty(str2)) + str1 = "-1"; + File file = new File(AppbrandUtil.getAppServiceDir(paramContext), str1); + if (!file.exists()) + InnerEventHelper.mpBaseBundleFileNotFound(file.getAbsolutePath()); + return file; + } + + public static File getJsBundleDir(Context paramContext, String paramString) { + File file = new File(AppbrandUtil.getAppServiceDir(paramContext), paramString); + if (!file.exists()) + InnerEventHelper.mpBaseBundleFileNotFound(file.getAbsolutePath()); + return file; + } + + public static String getMergeVideoFilePath() { + try { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(FileManager.inst().getTempDir().getCanonicalPath()); + stringBuilder.append(File.separator); + stringBuilder.append("merged.mp4"); + return stringBuilder.toString(); + } catch (IOException iOException) { + AppBrandLogger.stacktrace(6, "AppbrandConstant", iOException.getStackTrace()); + return ""; + } + } + + public static File getMiniAppRootDir(Context paramContext) { + String str = HostDependManager.getInst().getPrefixPath(); + boolean bool = TextUtils.isEmpty(str); + if (sMiniAppRootDir == null) { + String str1 = "appbrand"; + if ((bool ^ true) != 0) { + StringBuilder stringBuilder = new StringBuilder("appbrand"); + stringBuilder.append(File.separator); + stringBuilder.append(str); + str1 = stringBuilder.toString(); + } + sMiniAppRootDir = new File(paramContext.getFilesDir(), str1); + } + if (!sMiniAppRootDir.exists()) + sMiniAppRootDir.mkdir(); + return sMiniAppRootDir; + } + + public static File getOldBaseBundleDir() { + Application application = AppbrandContext.getInst().getApplicationContext(); + return (application != null) ? new File(getMiniAppRootDir((Context)application), "__dev__") : null; + } + + public static String getPreEditVideoPath() { + try { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(FileManager.inst().getTempDir().getCanonicalPath()); + stringBuilder.append(File.separator); + stringBuilder.append(PreEditManager_OUTPUT_FILE_NAME); + return stringBuilder.toString(); + } catch (IOException iOException) { + AppBrandLogger.e("PreEditManager", new Object[] { iOException }); + return ""; + } + } + + public static String getVideoFilePath() { + try { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(FileManager.inst().getTempDir().getCanonicalPath()); + stringBuilder.append(File.separator); + stringBuilder.append("shareVideo.mp4"); + return stringBuilder.toString(); + } catch (IOException iOException) { + AppBrandLogger.stacktrace(6, "AppbrandConstant", iOException.getStackTrace()); + return ""; + } + } + + public static class ApiErrorExtraMsg {} + + public static class AppApi { + @Deprecated + public static final String API_GET_SCREEN_BRIGHTNESS = "getScreenBrightness"; + + @Deprecated + public static final String API_SET_SCREEN_BRIGHTNESS = "setScreenBrightness"; + + public static class LIBRA_API { + public static final String API_DISABLE_POP_GESTURE = "disablePopGesture"; + + public static final String API_END_EDITING = "endEditing"; + + public static final String API_GETSYSTEMINFO = "getSystemInfo"; + + public static final String API_GET_LIBRA_API_LIST = "getLibraAPIList"; + + public static final String API_HIDETOAST = "hideToast"; + + public static final String API_OPENSCHEMA = "openSchema"; + + public static final String API_REPORT_ANALYTICS = "reportAnalytics"; + + public static final String API_REPORT_CUSTOM_EVENT = "reportCustomEvent"; + + public static final String API_SET_STATUSBAR_STYLE = "setStatusBarStyle"; + + public static final String API_SHOWTOAST = "showToast"; + } + } + + public static class LIBRA_API { + public static final String API_DISABLE_POP_GESTURE = "disablePopGesture"; + + public static final String API_END_EDITING = "endEditing"; + + public static final String API_GETSYSTEMINFO = "getSystemInfo"; + + public static final String API_GET_LIBRA_API_LIST = "getLibraAPIList"; + + public static final String API_HIDETOAST = "hideToast"; + + public static final String API_OPENSCHEMA = "openSchema"; + + public static final String API_REPORT_ANALYTICS = "reportAnalytics"; + + public static final String API_REPORT_CUSTOM_EVENT = "reportCustomEvent"; + + public static final String API_SET_STATUSBAR_STYLE = "setStatusBarStyle"; + + public static final String API_SHOWTOAST = "showToast"; + } + + public static class AppInfo { + public static final String VERSION_CODE = "version_code"; + } + + public static class AppInstall {} + + public static class AppPackage {} + + public static class AppRouter {} + + public static class Commond {} + + public static class Error_Code {} + + public static class Error_Msg {} + + public static class GameApi {} + + @Deprecated + public static class Http_Domain {} + + public static class Http_Result {} + + public static class InnerLaunchFrom {} + + public static class InnerLocation {} + + public static class Interval {} + + public static class JSType {} + + public static class JsApi {} + + public static class MGConstantUtil {} + + public static class MapParams {} + + public static class MonitorServiceName {} + + public static class MonitorStatus {} + + public static class NativeWebCommand {} + + public static class OpenApi { + private static volatile OpenApi sInst; + + private boolean isI18n; + + private String mCurrentBaseUrl = "https://developer-sg.toutiao.com"; + + private OpenApi() { + HostDependManager.getInst().isEnableI18nNetRequest(); + chooseDomain(true, HostDependManager.getInst().replaceOpenApiDomain()); + } + + private void chooseDomain(boolean param1Boolean, String param1String) { + if (!param1Boolean) { + this.mCurrentBaseUrl = "https://developer.toutiao.com"; + return; + } + this.mCurrentBaseUrl = "https://developer-sg.toutiao.com"; + if (!TextUtils.isEmpty(param1String)) + this.mCurrentBaseUrl = param1String; + } + + public static OpenApi getInst() { + // Byte code: + // 0: getstatic com/tt/miniapp/AppbrandConstant$OpenApi.sInst : Lcom/tt/miniapp/AppbrandConstant$OpenApi; + // 3: ifnonnull -> 37 + // 6: ldc com/tt/miniapp/AppbrandConstant$OpenApi + // 8: monitorenter + // 9: getstatic com/tt/miniapp/AppbrandConstant$OpenApi.sInst : Lcom/tt/miniapp/AppbrandConstant$OpenApi; + // 12: ifnonnull -> 25 + // 15: new com/tt/miniapp/AppbrandConstant$OpenApi + // 18: dup + // 19: invokespecial : ()V + // 22: putstatic com/tt/miniapp/AppbrandConstant$OpenApi.sInst : Lcom/tt/miniapp/AppbrandConstant$OpenApi; + // 25: ldc com/tt/miniapp/AppbrandConstant$OpenApi + // 27: monitorexit + // 28: goto -> 37 + // 31: astore_0 + // 32: ldc com/tt/miniapp/AppbrandConstant$OpenApi + // 34: monitorexit + // 35: aload_0 + // 36: athrow + // 37: getstatic com/tt/miniapp/AppbrandConstant$OpenApi.sInst : Lcom/tt/miniapp/AppbrandConstant$OpenApi; + // 40: areturn + // Exception table: + // from to target type + // 9 25 31 finally + // 25 28 31 finally + // 32 35 31 finally + } + + public String getABOUT_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/about?"); + return stringBuilder.toString(); + } + + public String getADD_MINIAPP_TO_COLLECTION_LIST() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/collect/addcollect"); + return stringBuilder.toString(); + } + + public String getAPI_BLACKLIST_V2() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/device/blacklist"); + return stringBuilder.toString(); + } + + public String getCHECK_FOLLOW_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/follow/state"); + return stringBuilder.toString(); + } + + public String getCHECK_ORDER_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/game/payment/query"); + return stringBuilder.toString(); + } + + public String getCLEAN_SHARE_MESSAGE() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/share/delete_share_token"); + return stringBuilder.toString(); + } + + public String getCUSTOMER_SERVICE_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/im/url/generate"); + return stringBuilder.toString(); + } + + public String getCurrentDomain() { + return this.mCurrentBaseUrl; + } + + public String getDO_FOLLOW_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/follow/media/follow"); + return stringBuilder.toString(); + } + + public String getFRIEND_CLOUD_STORAGE_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/storage/friend?"); + return stringBuilder.toString(); + } + + public String getFacialVerifyTicketUrl() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/facial_recognition/v1/get_ticket"); + return stringBuilder.toString(); + } + + public String getGET_MINIAPP_COLLECTION_LIST() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/collect/getcollectlist"); + return stringBuilder.toString(); + } + + public String getLOGIN_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/v2/login?appid="); + return stringBuilder.toString(); + } + + public String getNOT_SUPPORT_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/unsupported"); + return stringBuilder.toString(); + } + + public String getOFFLINE_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/appdown"); + return stringBuilder.toString(); + } + + public String getOPENID_TO_UID_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/user/uid?"); + return stringBuilder.toString(); + } + + public String getOpenIdUrl() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/user/openid"); + return stringBuilder.toString(); + } + + public String getPageFrameFakeURLHost() { + return HostDependManager.getInst().isEnableI18NRequestRefer() ? "https://tmaservice.developer-sg.byteoversea.com" : "https://tmaservice.developer.toutiao.com"; + } + + public String getQUERY_ACCOUNT_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/follow/media/get"); + return stringBuilder.toString(); + } + + public String getRANK_DATA_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/rank"); + return stringBuilder.toString(); + } + + public String getRECENT_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/history"); + return stringBuilder.toString(); + } + + public String getREMOVE_CLOUD_STORAGE_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/storage/remove"); + return stringBuilder.toString(); + } + + public String getREMOVE_MINIAPP_FROM_COLLECTION_LIST() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/collect/removecollect"); + return stringBuilder.toString(); + } + + public String getREQUEST_ORDER_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/game/payment/new"); + return stringBuilder.toString(); + } + + public String getRequestRefere() { + return HostDependManager.getInst().isEnableI18NRequestRefer() ? "https://tmaservice.developer-sg.byteoversea.com/" : "https://tmaservice.developer.toutiao.com/"; + } + + public String getSAVE_CLOUD_STORAGE_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/storage/user"); + return stringBuilder.toString(); + } + + public String getSAVE_PERMISSION_GRANT() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/authorization/set"); + return stringBuilder.toString(); + } + + public String getSET_USER_GROUP() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/user/group"); + return stringBuilder.toString(); + } + + public String getSHARE_MESSAGE() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/share/share_message"); + return stringBuilder.toString(); + } + + public String getSHARE_MESSAGE_DEFAULT() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/share/default_share_info"); + return stringBuilder.toString(); + } + + public String getSHARE_QUERY_OPEN_GID() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/share/query_open_gid"); + return stringBuilder.toString(); + } + + public String getSHARE_UPLOAD_IMG() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/share/upload_image"); + return stringBuilder.toString(); + } + + public String getSNAP_SHOT_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/snapshot"); + return stringBuilder.toString(); + } + + public String getSORT_COLLECTION_LIST() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/collect/sortcollect"); + return stringBuilder.toString(); + } + + public String getSUFFIX_META() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/suffix_meta"); + return stringBuilder.toString(); + } + + public String getSYSTEMDOWN() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/systemdown"); + return stringBuilder.toString(); + } + + public String getSchemaV2ValidationUrl() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/valid_schema"); + return stringBuilder.toString(); + } + + public String getTemplateMsgInfoUrl() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/subscribe_notification/user/v1/show"); + return stringBuilder.toString(); + } + + public String getUNSUPPORTED() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/unsupported"); + return stringBuilder.toString(); + } + + public String getUNSUPPORTED_MODEL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/unsupported?type=model_unsupported"); + return stringBuilder.toString(); + } + + public String getUNSUPPORTED_OS() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/unsupported?type=os_unsupported"); + return stringBuilder.toString(); + } + + public String getUSERINFO_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/v2/user/info?appid="); + return stringBuilder.toString(); + } + + public String getUSER_CLOUD_STORAGE_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/storage/user?"); + return stringBuilder.toString(); + } + + public String getUSER_LOCATION_URL() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/location/user"); + return stringBuilder.toString(); + } + + public String getUploadOrderInfoUrl() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/order/upload_order_info"); + return stringBuilder.toString(); + } + + public String getWrapFacialVerifyResultUrl() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/facial_recognition/v1/wrap_res"); + return stringBuilder.toString(); + } + + public String reportSubscribeMsgUrl() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/apps/subscribe_notification/user/v1/subscribe"); + return stringBuilder.toString(); + } + } + + public static class OpenSchemaExtra {} + + public static class OpenSchemaLaunchFlag {} + + public static class Open_Appbrand_Params {} + + public static class PackageName {} + + public static class PrivateApi {} + + public static class Repost {} + + public static class Scope {} + + public static class SharePreferences {} + + public static class SnssdkAPI { + private static volatile SnssdkAPI sInst; + + private String mCurrentBaseUrl = "https://i.snssdk.com"; + + private SnssdkAPI(boolean param1Boolean) { + if (param1Boolean) { + this.mCurrentBaseUrl = "https://i.sgsnssdk.com"; + String str = HostDependManager.getInst().replaceSnssdkApiDomain(); + if (!TextUtils.isEmpty(str)) + this.mCurrentBaseUrl = str; + return; + } + this.mCurrentBaseUrl = "https://i.snssdk.com"; + } + + public static SnssdkAPI getInst() { + // Byte code: + // 0: getstatic com/tt/miniapp/AppbrandConstant$SnssdkAPI.sInst : Lcom/tt/miniapp/AppbrandConstant$SnssdkAPI; + // 3: ifnonnull -> 43 + // 6: ldc com/tt/miniapp/AppbrandConstant$OpenApi + // 8: monitorenter + // 9: getstatic com/tt/miniapp/AppbrandConstant$SnssdkAPI.sInst : Lcom/tt/miniapp/AppbrandConstant$SnssdkAPI; + // 12: ifnonnull -> 31 + // 15: new com/tt/miniapp/AppbrandConstant$SnssdkAPI + // 18: dup + // 19: invokestatic getInst : ()Lcom/tt/miniapphost/host/HostDependManager; + // 22: invokevirtual isEnableI18nNetRequest : ()Z + // 25: invokespecial : (Z)V + // 28: putstatic com/tt/miniapp/AppbrandConstant$SnssdkAPI.sInst : Lcom/tt/miniapp/AppbrandConstant$SnssdkAPI; + // 31: ldc com/tt/miniapp/AppbrandConstant$OpenApi + // 33: monitorexit + // 34: goto -> 43 + // 37: astore_0 + // 38: ldc com/tt/miniapp/AppbrandConstant$OpenApi + // 40: monitorexit + // 41: aload_0 + // 42: athrow + // 43: getstatic com/tt/miniapp/AppbrandConstant$SnssdkAPI.sInst : Lcom/tt/miniapp/AppbrandConstant$SnssdkAPI; + // 46: areturn + // Exception table: + // from to target type + // 9 31 37 finally + // 31 34 37 finally + // 38 41 37 finally + } + + public String getFeedbackImageUpload() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/feedback/image/v1/upload/"); + return stringBuilder.toString(); + } + + public String getFeedbackQuestionList() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/feedback/2/common_feedback_list/"); + return stringBuilder.toString(); + } + + public String getFeedbackSubmit() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/feedback/2/post_message/"); + return stringBuilder.toString(); + } + + public String getReportContent() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/api/feedback/v1/report_content/"); + return stringBuilder.toString(); + } + + public String getReportOption() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.mCurrentBaseUrl); + stringBuilder.append("/feedback/2/report/option/"); + return stringBuilder.toString(); + } + } + + public static class TabConfig {} + + public static class TechType {} + + public static class TitleBarConfig {} + + public static class VideoAttribute {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\AppbrandConstant.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/AppbrandHostProcessImpl.java b/df_miniapp/classes/com/tt/miniapp/AppbrandHostProcessImpl.java new file mode 100644 index 0000000..6db8ff4 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/AppbrandHostProcessImpl.java @@ -0,0 +1,17 @@ +package com.tt.miniapp; + +import android.os.IBinder; +import com.tt.miniapphost.process.base.IHostProcessService; +import com.tt.miniapphost.process.base.MiniApp2HostBinderStub; + +public class AppbrandHostProcessImpl implements IHostProcessService { + public IBinder getHostProcessCrossProcessCallBinder() { + return (new MiniApp2HostBinderStub()).asBinder(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\AppbrandHostProcessImpl.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/AppbrandOpenImpl.java b/df_miniapp/classes/com/tt/miniapp/AppbrandOpenImpl.java new file mode 100644 index 0000000..a72dc12 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/AppbrandOpenImpl.java @@ -0,0 +1,673 @@ +package com.tt.miniapp; + +import android.app.Activity; +import android.app.Application; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.os.Parcelable; +import android.os.SystemClock; +import android.text.TextUtils; +import com.storage.async.Action; +import com.storage.async.Scheduler; +import com.storage.async.Schedulers; +import com.tt.miniapp.dialog.LoadHelper; +import com.tt.miniapp.errorcode.ErrorCode; +import com.tt.miniapp.event.Event; +import com.tt.miniapp.launch.MiniAppLaunchConfig; +import com.tt.miniapp.launchcache.LaunchCacheCleanDataManager; +import com.tt.miniapp.launchcache.RequestType; +import com.tt.miniapp.launchcache.meta.AppInfoHelper; +import com.tt.miniapp.launchcache.meta.AppInfoRequestResult; +import com.tt.miniapp.manager.HostActivityManager; +import com.tt.miniapp.manager.MiniAppPreloadManager; +import com.tt.miniapp.manager.SnapshotManager; +import com.tt.miniapp.manager.basebundle.BaseBundleManager; +import com.tt.miniapp.net.download.DownloadManager; +import com.tt.miniapp.process.AppProcessManager; +import com.tt.miniapp.process.bridge.InnerMiniAppProcessBridge; +import com.tt.miniapp.settings.data.SettingsDAO; +import com.tt.miniapp.settings.data.SettingsManager; +import com.tt.miniapp.settings.keys.Settings; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.toast.ToastManager; +import com.tt.miniapp.util.ActivityUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandConstants; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.EventHelper; +import com.tt.miniapphost.LaunchThreadPool; +import com.tt.miniapphost.appbase.IAppbrandSupport; +import com.tt.miniapphost.appbase.listener.MiniAppPreloadListCheckListener; +import com.tt.miniapphost.dynamic.IBundleManager; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.entity.DisableStateEntity; +import com.tt.miniapphost.entity.MiniAppPreloadConfigEntity; +import com.tt.miniapphost.entity.PreLoadAppEntity; +import com.tt.miniapphost.entity.PreloadExtSrcEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.language.LocaleManager; +import com.tt.miniapphost.language.LocaleUtils; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import com.tt.miniapphost.util.AppbrandUtil; +import com.tt.miniapphost.util.IOUtils; +import com.tt.miniapphost.util.StorageUtil; +import com.tt.miniapphost.util.TimeMeter; +import com.tt.option.q.f; +import com.tt.option.q.i; +import java.io.File; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.concurrent.Executor; +import okhttp3.ae; +import org.json.JSONObject; + +public class AppbrandOpenImpl implements IAppbrandSupport { + private long getEntranceClickTimestamp(Uri paramUri, long paramLong) { + if (paramUri == null) + return paramLong; + String str = paramUri.getQueryParameter("entranceClickTs"); + if (TextUtils.isEmpty(str)) + return paramLong; + try { + return Long.parseLong(str); + } catch (RuntimeException runtimeException) { + AppBrandLogger.eWithThrowable("tma_AppbrandOpenImpl", "load plugin & clickTs err", runtimeException); + return paramLong; + } + } + + private boolean isNeedDebugSnapShot(Uri paramUri) { + return (paramUri == null) ? false : (!TextUtils.isEmpty(paramUri.getQueryParameter("snapshot_compile_version"))); + } + + private void openMiniAppActivity(Context paramContext, AppInfoEntity paramAppInfoEntity, Uri paramUri, Bundle paramBundle) { + boolean bool2; + MiniAppLaunchConfig miniAppLaunchConfig; + int i = paramAppInfoEntity.type; + boolean bool1 = true; + if (i == 1) { + miniAppLaunchConfig = (MiniAppLaunchConfig)paramBundle.getParcelable("launchConfig"); + } else { + miniAppLaunchConfig = null; + } + if (miniAppLaunchConfig != null) { + bool2 = miniAppLaunchConfig.isLaunchWithFloatStyle(); + } else { + bool2 = false; + } + AppBrandLogger.i("tma_AppbrandOpenImpl", new Object[] { "openMiniAppActivity context:", paramContext }); + int j = AppProcessManager.isAppProcessExist(paramContext, paramAppInfoEntity.appId) ^ true; + Event.builder("mp_entrance_click", paramAppInfoEntity).kv("cold_launch", Boolean.valueOf(j)).flush(); + if (!TextUtils.isEmpty(paramAppInfoEntity.session) && !TextUtils.isEmpty(paramAppInfoEntity.gtoken) && !TextUtils.isEmpty(paramAppInfoEntity.roomid)) { + j = 0; + } else { + bool1 = false; + } + AppProcessManager.LaunchInfo launchInfo = AppProcessManager.getLaunchClass(paramContext, paramAppInfoEntity, new AppProcessManager.LaunchConfig(AppInfoHelper.isInHostStack(paramUri), bool2, bool1 ^ true, paramUri.getBooleanQueryParameter("forceColdBoot", false))); + if (launchInfo == null) { + EventHelper.mpInitResult(paramAppInfoEntity.appId, paramAppInfoEntity.launchFrom, paramAppInfoEntity.scene, paramAppInfoEntity.subScene, paramAppInfoEntity.isGame(), TimeMeter.nowDiff(paramBundle.getLong("entrance_click_timestamp")), "fail", "launchInfo is null"); + return; + } + if (!bool1) + AppProcessManager.finishServiceSticky(paramContext, launchInfo.getLaunchServiceClass()); + if (HostDependManager.getInst().getMiniAppLifeCycleInstance() != null) + launchInfo.isNeedClearTask(); + SnapshotManager.clearCacheSnapshot(); + LaunchCacheCleanDataManager.INSTANCE.manageCacheForNormalLaunch(paramContext, paramAppInfoEntity.appId); + if (j != 0) + if (!isNeedDebugSnapShot(paramUri)) { + doOnMainProcessBeforeColdLaunch(paramContext, launchInfo, paramAppInfoEntity, paramUri.toString(), paramBundle); + } else { + startMiniAppWithSnapshotIfHave(paramContext, paramUri, launchInfo, paramAppInfoEntity, paramBundle); + return; + } + startActivityInMainThread(paramContext, launchInfo, paramAppInfoEntity, paramUri, paramBundle); + } + + private void openUnityContainerActivity(Context paramContext, String paramString, Bundle paramBundle) { + try { + Intent intent = new Intent(paramContext, Class.forName("com.unity3d.player.UCUnityPlayerActivity")); + intent.putExtra("scheme", paramString); + intent.putExtra("extraInfo", paramBundle); + intent.addFlags(268435456); + HostDependManager.getInst().startMiniAppActivity(paramContext, intent); + return; + } catch (ClassNotFoundException classNotFoundException) { + ToastManager.showToast(paramContext, "open uc error", 1L); + return; + } + } + + private void startMiniAppWithSnapshotIfHave(final Context context, final Uri uri, final AppProcessManager.LaunchInfo launchInfo, final AppInfoEntity appInfoEntity, final Bundle launchExtraBundle) { + if (uri == null) + return; + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + // Byte code: + // 0: ldc '' + // 2: astore_3 + // 3: new java/lang/StringBuilder + // 6: dup + // 7: invokespecial : ()V + // 10: astore #4 + // 12: aload_0 + // 13: getfield val$appInfoEntity : Lcom/tt/miniapphost/entity/AppInfoEntity; + // 16: getfield token : Ljava/lang/String; + // 19: ldc 'utf-8' + // 21: invokestatic encode : (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + // 24: astore_1 + // 25: aload_0 + // 26: getfield val$appInfoEntity : Lcom/tt/miniapphost/entity/AppInfoEntity; + // 29: getfield startPage : Ljava/lang/String; + // 32: ldc 'utf-8' + // 34: invokestatic encode : (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + // 37: astore_2 + // 38: goto -> 47 + // 41: ldc '' + // 43: astore_1 + // 44: ldc '' + // 46: astore_2 + // 47: aload #4 + // 49: invokestatic getInst : ()Lcom/tt/miniapp/AppbrandConstant$OpenApi; + // 52: invokevirtual getSNAP_SHOT_URL : ()Ljava/lang/String; + // 55: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 58: pop + // 59: aload #4 + // 61: ldc '?appid=' + // 63: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 66: pop + // 67: aload #4 + // 69: aload_0 + // 70: getfield val$appInfoEntity : Lcom/tt/miniapphost/entity/AppInfoEntity; + // 73: getfield appId : Ljava/lang/String; + // 76: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 79: pop + // 80: aload #4 + // 82: ldc '&path=' + // 84: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 87: pop + // 88: aload #4 + // 90: aload_2 + // 91: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 94: pop + // 95: aload #4 + // 97: ldc '&token=' + // 99: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 102: pop + // 103: aload #4 + // 105: aload_1 + // 106: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 109: pop + // 110: aload #4 + // 112: ldc '&version=' + // 114: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 117: pop + // 118: aload #4 + // 120: aload_0 + // 121: getfield val$appInfoEntity : Lcom/tt/miniapphost/entity/AppInfoEntity; + // 124: getfield versionType : Ljava/lang/String; + // 127: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 130: pop + // 131: aload #4 + // 133: ldc '&device_id=' + // 135: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 138: pop + // 139: aload #4 + // 141: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 144: invokevirtual getInitParams : ()Lcom/tt/miniapphost/entity/InitParamsEntity; + // 147: invokevirtual getDeviceId : ()Ljava/lang/String; + // 150: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 153: pop + // 154: aload_0 + // 155: getfield val$appInfoEntity : Lcom/tt/miniapphost/entity/AppInfoEntity; + // 158: getfield snapShotCompileVersion : Ljava/lang/String; + // 161: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 164: ifne -> 188 + // 167: aload #4 + // 169: ldc '&snapshot_compile_version=' + // 171: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 174: pop + // 175: aload #4 + // 177: aload_0 + // 178: getfield val$appInfoEntity : Lcom/tt/miniapphost/entity/AppInfoEntity; + // 181: getfield snapShotCompileVersion : Ljava/lang/String; + // 184: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 187: pop + // 188: aload_0 + // 189: getfield val$appInfoEntity : Lcom/tt/miniapphost/entity/AppInfoEntity; + // 192: getfield sourceMd5 : Ljava/lang/String; + // 195: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 198: ifne -> 222 + // 201: aload #4 + // 203: ldc '&source_md5=' + // 205: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 208: pop + // 209: aload #4 + // 211: aload_0 + // 212: getfield val$appInfoEntity : Lcom/tt/miniapphost/entity/AppInfoEntity; + // 215: getfield sourceMd5 : Ljava/lang/String; + // 218: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 221: pop + // 222: invokestatic getInst : ()Lcom/tt/miniapp/manager/NetManager; + // 225: new com/tt/option/q/i + // 228: dup + // 229: aload #4 + // 231: invokevirtual toString : ()Ljava/lang/String; + // 234: ldc 'GET' + // 236: invokespecial : (Ljava/lang/String;Ljava/lang/String;)V + // 239: invokevirtual request : (Lcom/tt/option/q/i;)Lcom/tt/option/q/j; + // 242: invokevirtual a : ()Ljava/lang/String; + // 245: astore_1 + // 246: new org/json/JSONObject + // 249: dup + // 250: aload_1 + // 251: invokespecial : (Ljava/lang/String;)V + // 254: astore_1 + // 255: aload_1 + // 256: ldc 'error' + // 258: invokevirtual optInt : (Ljava/lang/String;)I + // 261: ifeq -> 287 + // 264: ldc 'tma_AppbrandOpenImpl' + // 266: iconst_1 + // 267: anewarray java/lang/Object + // 270: dup + // 271: iconst_0 + // 272: aload_1 + // 273: ldc 'message' + // 275: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 278: aastore + // 279: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 282: aload_3 + // 283: astore_1 + // 284: goto -> 326 + // 287: aload_1 + // 288: ldc 'data' + // 290: invokevirtual optJSONObject : (Ljava/lang/String;)Lorg/json/JSONObject; + // 293: astore_2 + // 294: aload_3 + // 295: astore_1 + // 296: aload_2 + // 297: ifnull -> 326 + // 300: aload_2 + // 301: ldc 'snapshot_url' + // 303: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 306: astore_1 + // 307: goto -> 326 + // 310: astore_1 + // 311: ldc 'tma_AppbrandOpenImpl' + // 313: iconst_1 + // 314: anewarray java/lang/Object + // 317: dup + // 318: iconst_0 + // 319: aload_1 + // 320: aastore + // 321: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 324: aload_3 + // 325: astore_1 + // 326: aload_0 + // 327: getfield this$0 : Lcom/tt/miniapp/AppbrandOpenImpl; + // 330: aload_1 + // 331: invokevirtual downloadSnapShot : (Ljava/lang/String;)Ljava/lang/String; + // 334: astore_1 + // 335: aload_0 + // 336: getfield val$launchExtraBundle : Landroid/os/Bundle; + // 339: ldc 'mp_extra_vdom' + // 341: aload_1 + // 342: invokevirtual putString : (Ljava/lang/String;Ljava/lang/String;)V + // 345: aload_0 + // 346: getfield this$0 : Lcom/tt/miniapp/AppbrandOpenImpl; + // 349: aload_0 + // 350: getfield val$context : Landroid/content/Context; + // 353: aload_0 + // 354: getfield val$launchInfo : Lcom/tt/miniapp/process/AppProcessManager$LaunchInfo; + // 357: aload_0 + // 358: getfield val$appInfoEntity : Lcom/tt/miniapphost/entity/AppInfoEntity; + // 361: aload_0 + // 362: getfield val$uri : Landroid/net/Uri; + // 365: invokevirtual toString : ()Ljava/lang/String; + // 368: aload_0 + // 369: getfield val$launchExtraBundle : Landroid/os/Bundle; + // 372: invokevirtual doOnMainProcessBeforeColdLaunch : (Landroid/content/Context;Lcom/tt/miniapp/process/AppProcessManager$LaunchInfo;Lcom/tt/miniapphost/entity/AppInfoEntity;Ljava/lang/String;Landroid/os/Bundle;)V + // 375: aload_0 + // 376: getfield this$0 : Lcom/tt/miniapp/AppbrandOpenImpl; + // 379: aload_0 + // 380: getfield val$context : Landroid/content/Context; + // 383: aload_0 + // 384: getfield val$launchInfo : Lcom/tt/miniapp/process/AppProcessManager$LaunchInfo; + // 387: aload_0 + // 388: getfield val$appInfoEntity : Lcom/tt/miniapphost/entity/AppInfoEntity; + // 391: aload_0 + // 392: getfield val$uri : Landroid/net/Uri; + // 395: aload_0 + // 396: getfield val$launchExtraBundle : Landroid/os/Bundle; + // 399: invokevirtual startActivityInMainThread : (Landroid/content/Context;Lcom/tt/miniapp/process/AppProcessManager$LaunchInfo;Lcom/tt/miniapphost/entity/AppInfoEntity;Landroid/net/Uri;Landroid/os/Bundle;)V + // 402: return + // 403: astore_1 + // 404: goto -> 41 + // 407: astore_2 + // 408: goto -> 44 + // Exception table: + // from to target type + // 12 25 403 java/io/UnsupportedEncodingException + // 25 38 407 java/io/UnsupportedEncodingException + // 246 282 310 org/json/JSONException + // 287 294 310 org/json/JSONException + // 300 307 310 org/json/JSONException + } + }, Schedulers.longIO()); + } + + public void cancelPreloadMiniApp(String paramString) { + MiniAppPreloadManager.cancelPreloadMiniApp(paramString); + } + + public void doOnMainProcessBeforeColdLaunch(final Context context, final AppProcessManager.LaunchInfo launchInfo, final AppInfoEntity appInfoEntity, final String schema, final Bundle extra) { + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + AppProcessManager.ProcessInfo processInfo = launchInfo.getProcessInfo(); + AppProcessManager.startMiniProcessMonitor(context, processInfo); + try { + InnerMiniAppProcessBridge.prepareLaunch(processInfo.mProcessIdentity, appInfoEntity, schema, extra); + } catch (Exception exception) { + AppBrandLogger.eWithThrowable("tma_AppbrandOpenImpl", "sendAppInfo", exception); + } + try { + if (SettingsDAO.getInt(context, 0, new Enum[] { (Enum)Settings.BDP_META_CONFIG, (Enum)Settings.BdpMetaConfig.MAIN_PROCESS_PREFETCH_KEY }) == 1) { + AppInfoRequestResult appInfoRequestResult = AppInfoHelper.request(context, appInfoEntity, RequestType.prefetch_host); + if (appInfoRequestResult != null) { + boolean bool = appInfoRequestResult.requestRecordList.isEmpty(); + if (!bool) + try { + InnerMiniAppProcessBridge.sendPrefetchedAppInfo(processInfo.mProcessIdentity, appInfoRequestResult); + return; + } catch (Exception exception) { + return; + } + } + } + return; + } catch (Exception exception) { + AppBrandLogger.eWithThrowable("tma_AppbrandOpenImpl", "prefetchAppInfo", exception); + return; + } + } + }(Scheduler)LaunchThreadPool.getInst()); + } + + public boolean doOpenSchema(Context paramContext, String paramString, Bundle paramBundle) { + StringBuilder stringBuilder; + byte b; + if (paramBundle == null) + paramBundle = new Bundle(); + String str4 = paramBundle.getString("mp_open_launch_id"); + String str3 = str4; + if (TextUtils.isEmpty(str4)) + str3 = AppbrandContext.getInst().getUniqueId(); + AppbrandContext.getInst().setLaunchId(str3); + paramBundle.putString("mp_open_launch_id", str3); + paramBundle.putLong("mp_open_app_schema_timestamp", System.currentTimeMillis()); + paramBundle.putLong("mp_open_app_schema_cputime", SystemClock.elapsedRealtime()); + long l = TimeMeter.currentMillis(); + Uri uri = Uri.parse(paramString); + l = getEntranceClickTimestamp(uri, l); + paramBundle.putLong("entrance_click_timestamp", l); + Locale locale = LocaleManager.getInst().getCurrentHostSetLocale(); + if (locale != null) + paramBundle.putString("lang", LocaleUtils.locale2String(locale)); + String str2 = uri.getHost(); + if (!TextUtils.equals(str2, "microapp") && !TextUtils.equals(str2, "microgame")) { + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { "scheme is not match" }); + EventHelper.mpInitResult(null, null, null, null, false, 0L, "fail", "scheme is not match"); + LoadHelper.handleHostProcessFail(paramContext, ErrorCode.MAIN.SCHEME_NOT_MATCH.getCode()); + return false; + } + IBundleManager iBundleManager = AppbrandConstants.getBundleManager(); + if (TextUtils.equals(str2, "microapp")) { + b = 1; + } else { + b = 2; + } + DisableStateEntity disableStateEntity = iBundleManager.checkMiniAppDisableState(b); + if (disableStateEntity != null) { + if (paramContext == null || TextUtils.isEmpty(paramString) || !HostDependManager.getInst().handleAppbrandDisablePage(paramContext, paramString)) + AppbrandUtil.handleAppbrandDisableState(paramContext, disableStateEntity); + stringBuilder = new StringBuilder("disable: "); + stringBuilder.append(disableStateEntity.getHintMessage()); + EventHelper.mpInitResult(null, null, null, null, false, 0L, "fail", stringBuilder.toString()); + LoadHelper.monitorErrorEvent(ErrorCode.MAIN.DEVICE_BLACK_LIST.getCode(), ErrorCode.MAIN.DEVICE_BLACK_LIST.getDesc()); + return false; + } + String str1 = uri.getQueryParameter("app_id"); + if (TextUtils.isEmpty(str1)) { + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { "scheme is not ok, appId is null" }); + EventHelper.mpInitResult(null, null, null, null, false, 0L, "fail", "app_id is empty"); + LoadHelper.handleHostProcessFail((Context)stringBuilder, ErrorCode.MAIN.SCHEME_APPID_NULL.getCode()); + return false; + } + try { + return true; + } finally { + paramBundle = null; + JSONObject jSONObject = new JSONObject(); + try { + StringBuilder stringBuilder2 = new StringBuilder("openMiniAppActivity 异常:"); + stringBuilder2.append(paramBundle.toString()); + jSONObject.put("errMsg", stringBuilder2.toString()); + } catch (Exception exception) { + AppBrandLogger.eWithThrowable("tma_AppbrandOpenImpl", "openMiniAppActivity", exception); + } + AppBrandMonitor.statusRate("mp_start_error", 5000, jSONObject); + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { "openMiniAppActivity", paramBundle }); + l = TimeMeter.nowDiff(l); + StringBuilder stringBuilder1 = new StringBuilder("openMiniAppActivity fail scheme:"); + stringBuilder1.append(paramString); + stringBuilder1.append(" error:"); + stringBuilder1.append(paramBundle.getMessage()); + EventHelper.mpInitResult(str1, null, null, null, false, l, "fail", stringBuilder1.toString()); + LoadHelper.handleHostProcessFail((Context)stringBuilder, ErrorCode.MAIN.START_MINI_APP_ERROR.getCode()); + } + } + + public String downloadSnapShot(String paramString) { + String str; + if (TextUtils.isEmpty(paramString)) { + AppBrandLogger.d("tma_AppbrandOpenImpl", new Object[] { "snapshot api response snapshot url is null" }); + return ""; + } + try { + paramString = URLDecoder.decode(paramString, "utf-8"); + } catch (UnsupportedEncodingException unsupportedEncodingException) { + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { unsupportedEncodingException }); + str = ""; + } + f f = new f(str, false); + f.a = StorageUtil.getExternalCacheDir((Context)AppbrandContext.getInst().getApplicationContext()).getPath(); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(System.currentTimeMillis()); + stringBuilder.append(".ooo"); + f.b = stringBuilder.toString(); + File file = DownloadManager.get().syncDownload(f.f(), ((i)f).f, f.a, f.b, new DownloadManager.OnDownloadListener() { + public void onDownloadFailed(String param1String, Throwable param1Throwable) {} + + public void onDownloadSuccess(ae param1ae) {} + + public void onDownloading(int param1Int, long param1Long1, long param1Long2) {} + }, null); + if (file == null) { + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { "snapshot download file is null" }); + return ""; + } + return IOUtils.readString(file.getAbsolutePath(), "utf-8"); + } + + public String getTmaJssdkVersion() { + try { + Application application = AppbrandContext.getInst().getApplicationContext(); + return BaseBundleManager.getInst().getSdkCurrentVersionStr((Context)application); + } catch (Exception exception) { + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { exception }); + return ""; + } + } + + public String getTmaJssdkVersion(Context paramContext) { + return getTmaJssdkVersion(); + } + + public boolean isSDKSupport() { + try { + return AppbrandConstants.getBundleManager().isSDKSupport(0); + } catch (Exception exception) { + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { exception }); + return false; + } + } + + public boolean isSDKSupport(Context paramContext) { + return isSDKSupport(); + } + + public boolean openAppbrand(String paramString) { + return openAppbrand(paramString, null); + } + + public boolean openAppbrand(final String scheme, final Bundle extra) { + AppBrandLogger.i("tma_AppbrandOpenImpl", new Object[] { "openAppbrand scheme == ", scheme }); + final Application context = AppbrandContext.getInst().getApplicationContext(); + if (TextUtils.isEmpty(scheme)) { + LoadHelper.handleHostProcessFail((Context)application, ErrorCode.MAIN.SCHEME_NULL_ERROR.getCode()); + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { "scheme is empty" }); + EventHelper.mpInitResult(null, null, null, null, false, 0L, "fail", "scheme is empty"); + return false; + } + if (!BaseBundleManager.getInst().isRealBaseBundleReadyNow()) { + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { "basebundle not ready,try download basebundle" }); + SettingsManager.getInstance().forceUpdateSettingsAndBasebundle(new BaseBundleManager.BaseBundleUpdateListener() { + public void onBaseBundleUpdate() { + AppbrandOpenImpl.this.doOpenSchema(context, scheme, extra); + } + }); + return true; + } + return doOpenSchema((Context)application, scheme, extra); + } + + public boolean openShortcut(Intent paramIntent) { + if (paramIntent == null) { + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { "shortcut intent is null" }); + return false; + } + Uri uri = paramIntent.getData(); + if (uri == null) { + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { "shortcut intent data null" }); + return false; + } + String str = uri.toString(); + if (TextUtils.isEmpty(str)) { + AppBrandLogger.e("tma_AppbrandOpenImpl", new Object[] { "shortcut intent schemaStr null" }); + return false; + } + openAppbrand(str); + return true; + } + + public void preloadEmptyProcess() { + AppbrandConstants.getProcessManager().preloadEmptyProcess(true); + } + + public void preloadMiniApp(List paramList, List paramList1) { + MiniAppPreloadManager.startPreloadMiniApp(paramList, null, null); + } + + public void preloadMiniApp(List paramList, Map paramMap, MiniAppPreloadListCheckListener paramMiniAppPreloadListCheckListener) { + MiniAppPreloadManager.startPreloadMiniApp(paramList, paramMap, paramMiniAppPreloadListCheckListener); + } + + public void preloadMiniApp(List paramList, Map paramMap, MiniAppPreloadListCheckListener paramMiniAppPreloadListCheckListener, Executor paramExecutor) { + MiniAppPreloadManager.startPreloadMiniApp(paramList, paramMap, paramMiniAppPreloadListCheckListener, paramExecutor); + } + + public void setMiniAppPreloadConfigEntity(MiniAppPreloadConfigEntity paramMiniAppPreloadConfigEntity) { + MiniAppPreloadManager.setMiniAppPreloadConfigEntity(paramMiniAppPreloadConfigEntity); + } + + public void startActivityInMainThread(final Context context, final AppProcessManager.LaunchInfo launchInfo, final AppInfoEntity appInfoEntity, final Uri uri, final Bundle launchExtraBundle) { + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + try { + return; + } finally { + Exception exception = null; + AppbrandOpenImpl.this.uploadOpenMiniAppError(context, exception, appInfoEntity, launchExtraBundle); + } + } + }); + } + + public void startMiniAppActivity(Context paramContext, Uri paramUri, AppProcessManager.LaunchInfo paramLaunchInfo, AppInfoEntity paramAppInfoEntity, Bundle paramBundle) { + boolean bool; + Activity activity = HostActivityManager.getHostTopActivity(); + if (Boolean.parseBoolean(paramUri.getQueryParameter("pluginLoading")) || paramLaunchInfo.isFloatStyle()) { + bool = true; + } else { + bool = false; + } + Intent intent = new Intent(); + intent.setClass(paramContext, paramLaunchInfo.getLaunchActivityClass()); + intent.putExtra("microapp_url", paramUri.toString()); + intent.putExtra("microapp_appinfo", (Parcelable)paramAppInfoEntity); + intent.putExtra("app_type", paramAppInfoEntity.type); + if (paramLaunchInfo.isInHostStack()) { + intent.addFlags(67108864); + if (!paramLaunchInfo.isNeedClearTask()) + intent.addFlags(536870912); + } else if (paramLaunchInfo.isNeedClearTask()) { + intent.addFlags(32768); + } + paramBundle.putLong("mp_start_activity_timestamp", System.currentTimeMillis()); + paramBundle.putLong("mp_start_activity_cputime", SystemClock.elapsedRealtime()); + intent.putExtra("mp_launch_extra", paramBundle); + intent.addFlags(268435456); + AppBrandLogger.i("tma_AppbrandOpenImpl", new Object[] { "startMiniAppActivity context:", paramContext }); + if (bool) + intent.addFlags(65536); + HostDependManager.getInst().startMiniAppActivity(paramContext, intent); + if (activity != null) { + if (bool) { + ActivityUtil.changeToSilentHideActivityAnimation(activity); + return; + } + HostDependManager.getInst().overridePendingTransition(activity, 2131034237, 2131034235, 1); + } + } + + public void switchLang(Locale paramLocale) { + AppbrandUtil.setLanguage(paramLocale); + } + + public void uploadOpenMiniAppError(Context paramContext, Throwable paramThrowable, AppInfoEntity paramAppInfoEntity, Bundle paramBundle) { + JSONObject jSONObject = new JSONObject(); + try { + StringBuilder stringBuilder = new StringBuilder("openMiniAppActivity 异常:"); + stringBuilder.append(paramThrowable.toString()); + jSONObject.put("errMsg", stringBuilder.toString()); + } catch (Exception exception) { + AppBrandLogger.eWithThrowable("tma_AppbrandOpenImpl", "openMiniAppActivity", exception); + } + AppBrandMonitor.statusRate("mp_start_error", 5000, jSONObject); + AppBrandLogger.eWithThrowable("tma_AppbrandOpenImpl", "openMiniAppActivity", paramThrowable); + EventHelper.mpInitResult(paramAppInfoEntity.appId, paramAppInfoEntity.launchFrom, paramAppInfoEntity.scene, paramAppInfoEntity.subScene, paramAppInfoEntity.isGame(), TimeMeter.nowDiff(paramBundle.getLong("entrance_click_timestamp")), "fail", "openMiniAppActivity exp"); + LoadHelper.handleHostProcessFail(paramContext, ErrorCode.MAIN.START_MINI_APP_ERROR.getCode()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\AppbrandOpenImpl.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/AppbrandServiceManager.java b/df_miniapp/classes/com/tt/miniapp/AppbrandServiceManager.java new file mode 100644 index 0000000..3265126 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/AppbrandServiceManager.java @@ -0,0 +1,61 @@ +package com.tt.miniapp; + +import com.tt.miniapphost.AppBrandLogger; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.util.HashMap; +import java.util.Map; + +public final class AppbrandServiceManager { + private AppbrandApplicationImpl mApp; + + private LifeCycleManager mLifeCycleManager; + + private Map mServiceMap; + + public AppbrandServiceManager(AppbrandApplicationImpl paramAppbrandApplicationImpl) { + this.mApp = paramAppbrandApplicationImpl; + this.mServiceMap = (Map)new HashMap, ServiceBase>(); + this.mLifeCycleManager = new LifeCycleManager(paramAppbrandApplicationImpl); + this.mServiceMap.put(LifeCycleManager.class, this.mLifeCycleManager); + } + + final T get(Class paramClass) { + return (T)this.mServiceMap.get(paramClass); + } + + public final T register(Class paramClass) { + try { + Constructor constructor = paramClass.getDeclaredConstructor(new Class[] { AppbrandApplicationImpl.class }); + constructor.setAccessible(true); + ServiceBase serviceBase = (ServiceBase)constructor.newInstance(new Object[] { this.mApp }); + this.mServiceMap.put(paramClass, serviceBase); + this.mLifeCycleManager.addLifeCycleListener(serviceBase); + return (T)serviceBase; + } catch (NoSuchMethodException noSuchMethodException) { + + } catch (IllegalAccessException illegalAccessException) { + + } catch (InstantiationException instantiationException) { + + } catch (InvocationTargetException invocationTargetException) {} + StringBuilder stringBuilder = new StringBuilder("Register service failed: "); + stringBuilder.append(paramClass.getSimpleName()); + AppBrandLogger.eWithThrowable("AppbrandServiceManager", stringBuilder.toString(), invocationTargetException); + return null; + } + + public static abstract class ServiceBase { + public AppbrandApplicationImpl mApp; + + public ServiceBase(AppbrandApplicationImpl param1AppbrandApplicationImpl) { + this.mApp = param1AppbrandApplicationImpl; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\AppbrandServiceManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/BaseActivityProxy.java b/df_miniapp/classes/com/tt/miniapp/BaseActivityProxy.java new file mode 100644 index 0000000..845c867 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/BaseActivityProxy.java @@ -0,0 +1,939 @@ +package com.tt.miniapp; + +import android.app.Activity; +import android.app.ActivityManager; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.GradientDrawable; +import android.os.Bundle; +import android.os.Debug; +import android.os.Looper; +import android.os.Process; +import android.support.v4.app.FragmentActivity; +import android.text.TextUtils; +import android.view.KeyEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.FrameLayout; +import com.storage.async.Action; +import com.storage.async.Function; +import com.storage.async.Observable; +import com.storage.async.Scheduler; +import com.storage.async.Schedulers; +import com.storage.async.Subscriber; +import com.tt.frontendapiinterface.d; +import com.tt.frontendapiinterface.h; +import com.tt.frontendapiinterface.j; +import com.tt.miniapp.adsite.AdSiteManager; +import com.tt.miniapp.autotest.AutoTestManager; +import com.tt.miniapp.database.usagerecord.UsageRecordInfo; +import com.tt.miniapp.dialog.LoadHelper; +import com.tt.miniapp.errorcode.ErrorCode; +import com.tt.miniapp.event.Event; +import com.tt.miniapp.event.InnerEventHelper; +import com.tt.miniapp.event.LoadStateManager; +import com.tt.miniapp.event.external.search.SearchEventHelper; +import com.tt.miniapp.event.origin.OriginHelper; +import com.tt.miniapp.favorite.FavoriteGuideModel; +import com.tt.miniapp.favorite.FavoriteGuideWidget; +import com.tt.miniapp.launch.MiniAppLaunchConfig; +import com.tt.miniapp.launchschedule.LaunchScheduler; +import com.tt.miniapp.manager.AppInfoManager; +import com.tt.miniapp.manager.DbManager; +import com.tt.miniapp.manager.ForeBackgroundManager; +import com.tt.miniapp.manager.SnapshotManager; +import com.tt.miniapp.manager.SynHistoryManager; +import com.tt.miniapp.msg.ad.BaseAdCtrl; +import com.tt.miniapp.mvp.TTAppbrandView; +import com.tt.miniapp.page.AppbrandSinglePage; +import com.tt.miniapp.page.AppbrandViewWindowBase; +import com.tt.miniapp.preload.PreloadManager; +import com.tt.miniapp.process.bridge.InnerHostProcessBridge; +import com.tt.miniapp.route.PageRouter; +import com.tt.miniapp.route.RouteEventCtrl; +import com.tt.miniapp.service.suffixmeta.SuffixMetaServiceInterface; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.time.CustomizeTimer; +import com.tt.miniapp.util.ActivityUtil; +import com.tt.miniapp.util.NetUtil; +import com.tt.miniapp.util.RenderSnapShotManager; +import com.tt.miniapp.util.TimeLogger; +import com.tt.miniapp.util.ToolUtils; +import com.tt.miniapp.util.timeline.MpTimeLineReporter; +import com.tt.miniapp.view.LaunchLoadingView; +import com.tt.miniapp.view.swipeback.EventParamsValue; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.AppbrandConstants; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.EventHelper; +import com.tt.miniapphost.IActivityProxy; +import com.tt.miniapphost.LaunchThreadPool; +import com.tt.miniapphost.MiniappHostBase; +import com.tt.miniapphost.ModeManager; +import com.tt.miniapphost.NativeModule; +import com.tt.miniapphost.ParamManager; +import com.tt.miniapphost.entity.AnchorConfig; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.entity.FeignHostConfig; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.language.LanguageUtils; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.process.bridge.ProcessCallControlBridge; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.util.TimeMeter; +import com.tt.miniapphost.util.UIUtils; +import com.tt.option.ad.g; +import com.tt.option.ad.h; +import com.tt.option.w.d; +import com.tt.option.w.g; +import com.tt.option.w.h; +import com.tt.option.y.b; +import java.io.File; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import org.json.JSONException; +import org.json.JSONObject; + +public abstract class BaseActivityProxy implements TTAppbrandView, IActivityProxy, g.a { + protected boolean isShowingLoadingView = true; + + public FragmentActivity mActivity; + + public AppbrandApplicationImpl mApp; + + private List> mBackPressedListenerWrList = new ArrayList>(); + + public TimeMeter mEntranceClickTimeMeter; + + protected boolean mHasActivityStoped = false; + + protected FrameLayout mHomeLayout; + + protected boolean mIsActivityRecreate = false; + + private boolean mIsCreated = false; + + protected long mLaunchDuration; + + public LaunchLoadingView mLaunchLoadingView; + + public CustomizeTimer mLaunchProfileTime = new CustomizeTimer(); + + public TimeMeter mLoadStartTime; + + protected CustomizeTimer mLoadingViewShowTimes = new CustomizeTimer(); + + public long mMicroAppStartShowTimes = 0L; + + private TimeMeter mOnActivityStartTime; + + public BaseActivityProxy(FragmentActivity paramFragmentActivity) { + this.mActivity = paramFragmentActivity; + this.mApp = AppbrandApplicationImpl.getInst(); + } + + private WeakReference getMatchBackPressedListenerWr(h paramh) { + for (WeakReference weakReference : this.mBackPressedListenerWrList) { + if ((h)weakReference.get() == paramh) + return weakReference; + } + return null; + } + + private void initMpValOnCreate(String paramString, Bundle paramBundle) { + throw new RuntimeException("d2j fail translate: java.lang.RuntimeException: can not merge I and Z\r\n\tat com.googlecode.dex2jar.ir.TypeClass.merge(TypeClass.java:100)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeRef.updateTypeClass(TypeTransformer.java:174)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.provideAs(TypeTransformer.java:780)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.e1expr(TypeTransformer.java:496)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:713)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.s1stmt(TypeTransformer.java:810)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.sxStmt(TypeTransformer.java:840)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.analyze(TypeTransformer.java:206)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer.transform(TypeTransformer.java:44)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:162)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:414)\r\n\tat com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:42)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:128)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:509)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:406)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:422)\r\n\tat com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:172)\r\n\tat com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:272)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:108)\r\n\tat com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)\r\n"); + } + + private void notifyLoadProgress(int paramInt) { + HostDependManager.getInst().getMiniAppLifeCycleInstance(); + this.mApp.getAppInfo(); + } + + private void overrideActivityInAnimation(boolean paramBoolean1, boolean paramBoolean2) { + if (!paramBoolean1) { + if (AppbrandApplicationImpl.getInst().getMiniAppLaunchConfig().isLaunchWithFloatStyle()) { + if (paramBoolean2) { + HostDependManager.getInst().overridePendingTransition((Activity)this.mActivity, 2131034237, 2131034235, 3); + return; + } + ActivityUtil.changeToSilentHideActivityAnimation((Activity)getActivity()); + return; + } + HostDependManager.getInst().overridePendingTransition((Activity)this.mActivity, 2131034237, 2131034235, 1); + } + } + + public static void recordMiniAppUsage(final AppInfoEntity entity, final long startTime) { + AppBrandLogger.d("BaseActivityProxy", new Object[] { "appid = ", entity.appId, "starttime = ", Long.valueOf(startTime) }); + Observable.create(new Action() { + public final void act() { + if (AppbrandContext.getInst().getApplicationContext() == null) { + AppBrandLogger.e("BaseActivityProxy", new Object[] { "recordMiniappUsage context == null" }); + return; + } + if (TextUtils.isEmpty(entity.appId)) + return; + UsageRecordInfo usageRecordInfo = new UsageRecordInfo(); + usageRecordInfo.appID = entity.appId; + usageRecordInfo.scene = entity.scene; + usageRecordInfo.subScene = entity.subScene; + long l2 = startTime; + long l1 = 0L; + if (l2 != 0L) + l1 = System.currentTimeMillis() - startTime; + usageRecordInfo.duration = Long.valueOf(l1); + usageRecordInfo.startTime = Long.valueOf(startTime); + DbManager.getInstance().getUsageRecordDao().insert(usageRecordInfo); + } + }).schudleOn(Schedulers.shortIO()).subscribeSimple(); + } + + private void runOnUIThreadQuickly(Runnable paramRunnable) { + if (Looper.getMainLooper() == Looper.myLooper()) { + paramRunnable.run(); + return; + } + AppbrandContext.mainHandler.postAtFrontOfQueue(paramRunnable); + } + + private void updateAnchorBtn(AnchorConfig paramAnchorConfig, Button paramButton) { + ViewGroup.LayoutParams layoutParams = paramButton.getLayoutParams(); + if (layoutParams instanceof ViewGroup.MarginLayoutParams) { + int i; + ViewGroup.MarginLayoutParams marginLayoutParams = (ViewGroup.MarginLayoutParams)layoutParams; + if ((this.mApp.getAppInfo()).isLandScape) { + i = 2097414147; + } else { + i = 2097414148; + } + marginLayoutParams.bottomMargin = this.mActivity.getResources().getDimensionPixelSize(i); + paramButton.setLayoutParams(layoutParams); + } + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setColor(paramAnchorConfig.getBackgroundColor()); + gradientDrawable.setCornerRadius(UIUtils.dip2Px((Context)this.mActivity, 27.0F)); + paramButton.setBackground((Drawable)gradientDrawable); + paramButton.setText(paramAnchorConfig.getTitle()); + if ("ADD".equals(paramAnchorConfig.getAction()) || "REMOVE".equals(paramAnchorConfig.getAction()) || "REPLACE".equals(paramAnchorConfig.getAction())) { + int i; + paramButton.setVisibility(0); + if ("ADD".equals(paramAnchorConfig.getAction()) || "REPLACE".equals(paramAnchorConfig.getAction())) { + i = 2097479688; + } else { + i = 2097479689; + } + paramButton.setCompoundDrawablesWithIntrinsicBounds(i, 0, 0, 0); + return; + } + paramButton.setVisibility(4); + } + + private void updateLaunchType(AppInfoEntity paramAppInfoEntity) { + if (this.mIsActivityRecreate) + paramAppInfoEntity.launchType = "resume"; + } + + public final void afterOnCreate(Bundle paramBundle) { + AppBrandLogger.i("BaseActivityProxy", new Object[] { "afterOnCreate" }); + ((LaunchScheduler)this.mApp.getService(LaunchScheduler.class)).bindView(this); + this.mActivity.getWindow().setBackgroundDrawable((Drawable)new ColorDrawable(0)); + this.mActivity.getWindow().getDecorView().setBackgroundDrawable(null); + this.mHomeLayout = (FrameLayout)((PreloadManager)this.mApp.getService(PreloadManager.class)).getPreloadedView(5); + ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(-1, -1); + this.mHomeLayout.setLayoutParams(layoutParams); + ((MpTimeLineReporter)this.mApp.getService(MpTimeLineReporter.class)).addPoint("activity_on_create_end"); + ((AutoTestManager)this.mApp.getService(AutoTestManager.class)).addEvent("afterOnCreate"); + } + + public final boolean beforeOnCreate(Bundle paramBundle) { + ((AutoTestManager)this.mApp.getService(AutoTestManager.class)).addEvent("beforeOnCreate"); + paramBundle = this.mActivity.getIntent().getBundleExtra("mp_launch_extra"); + if (paramBundle != null) { + MiniAppLaunchConfig miniAppLaunchConfig = (MiniAppLaunchConfig)paramBundle.getParcelable("launchConfig"); + if (miniAppLaunchConfig != null) + AppbrandApplicationImpl.getInst().setMiniAppLaunchConfig(miniAppLaunchConfig); + } + overrideActivityInAnimation(false, false); + AppBrandLogger.i("BaseActivityProxy", new Object[] { "beforeOnCreate" }); + this.mOnActivityStartTime = new TimeMeter(); + Intent intent = this.mActivity.getIntent(); + if (intent == null || !intent.hasExtra("microapp_url")) { + AppBrandLogger.e("BaseActivityProxy", new Object[] { "onCreate fail, intent == ", intent }); + EventParamsValue.PARAMS_EXIT_TYPE = "others"; + EventParamsValue.IS_OTHER_FLAG = true; + EventHelper.mpInitResult(null, null, null, null, false, 0L, "fail", "error intent"); + return false; + } + return true; + } + + protected boolean consumeBackPress() { + for (WeakReference weakReference : this.mBackPressedListenerWrList) { + if (weakReference != null) { + h h = weakReference.get(); + if (h != null && h.onBackPressed()) + return true; + } + } + return false; + } + + public void dismissFavoriteGuide() { + dismissFavoriteGuide(0); + } + + public void dismissFavoriteGuide(int paramInt) { + FavoriteGuideWidget favoriteGuideWidget = this.mApp.getService(FavoriteGuideWidget.class); + if (paramInt != 0) { + if (paramInt != 1) { + if (paramInt != 2) + return; + favoriteGuideWidget.dismissBar(); + return; + } + favoriteGuideWidget.dismissTip(); + return; + } + favoriteGuideWidget.dismissAll(); + } + + public FragmentActivity getActivity() { + return this.mActivity; + } + + public void getAnchorShareInfo(final AnchorConfig anchorConfig) { + HostDependManager.getInst().getShareBaseInfo(anchorConfig.getChannel(), new d() { + public void onFail() { + BaseActivityProxy.this.shareResultEvent("fail", anchorConfig.getChannel()); + HostDependManager.getInst().showToast((Context)BaseActivityProxy.this.mActivity, null, UIUtils.getString(2097741862), 0L, null); + } + + public void onSuccess(final h shareInfoModel, g param1g) { + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + if (BaseActivityProxy.this.mApp != null && !BaseActivityProxy.this.mApp.getAppInfo().isGame()) { + AppbrandViewWindowBase appbrandViewWindowBase = (AppbrandViewWindowBase)((PageRouter)BaseActivityProxy.this.mApp.getService(PageRouter.class)).getViewWindowRoot().getTopView(); + if (appbrandViewWindowBase != null) { + AppbrandSinglePage appbrandSinglePage = appbrandViewWindowBase.getCurrentPage(); + appbrandSinglePage.getTitleBar().setTitleBarCapsuleVisible(false); + appbrandSinglePage.getTitleBar().setPageCloseButtonVisible(false); + } + } + final Button anchorBtn = (Button)BaseActivityProxy.this.mActivity.findViewById(2097545246); + if (button != null) + button.setVisibility(4); + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + Bitmap bitmap = SnapshotManager.getSnapshot((Activity)BaseActivityProxy.this.mActivity); + File file = SnapshotManager.saveSnapshotFile((Activity)BaseActivityProxy.this.mActivity, SnapshotManager.compressSnapshot(bitmap)); + anchorConfig.setSnapshotUrl(file.getAbsolutePath()); + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + if (BaseActivityProxy.this.mApp != null && !BaseActivityProxy.this.mApp.getAppInfo().isGame()) { + AppbrandViewWindowBase appbrandViewWindowBase = (AppbrandViewWindowBase)((PageRouter)BaseActivityProxy.this.mApp.getService(PageRouter.class)).getViewWindowRoot().getTopView(); + if (appbrandViewWindowBase != null) { + AppbrandSinglePage appbrandSinglePage = appbrandViewWindowBase.getCurrentPage(); + appbrandSinglePage.getTitleBar().setTitleBarCapsuleVisible(true); + appbrandSinglePage.getTitleBar().setPageCloseButtonVisible(true); + } + } + if (anchorBtn != null && !success) + anchorBtn.setVisibility(0); + } + }); + } + }(Scheduler)LaunchThreadPool.getInst()); + } + }); + } + }); + } + + protected AppConfig getAppConfig() { + return this.mApp.getAppConfig(); + } + + public long getLaunchDuration() { + return this.mLaunchDuration; + } + + public LaunchScheduler getLaunchScheduler() { + return this.mApp.getService(LaunchScheduler.class); + } + + public abstract FrameLayout getRootView(); + + public int getScreenOrientation() { + return (this.mApp.getAppInfo()).isLandScape ? 0 : 1; + } + + public Integer getScreenOrientationFromAppConfig() { + boolean bool = AdSiteManager.getInstance().isAdSiteBrowser(); + Integer integer = Integer.valueOf(0); + return bool ? integer : ((getAppConfig() != null) ? ("portrait".equals((getAppConfig()).screenOrientation) ? integer : Integer.valueOf(1)) : null); + } + + public void hideAnchorButton() { + FragmentActivity fragmentActivity = this.mActivity; + if (fragmentActivity == null) + return; + Button button = (Button)fragmentActivity.findViewById(2097545246); + if (button == null) + return; + button.setVisibility(4); + } + + public void initAnchor() { + FragmentActivity fragmentActivity = this.mActivity; + if (fragmentActivity == null) + return; + final Button anchorBtn = (Button)fragmentActivity.findViewById(2097545246); + if (button == null) + return; + if (TextUtils.isEmpty(this.mApp.getSchema()) || this.mApp.getAppInfo() == null) { + button.setVisibility(4); + return; + } + final AnchorConfig anchorConfig = HostDependManager.getInst().getAnchorConfig(this.mApp.getSchema()); + if (anchorConfig == null) { + button.setVisibility(4); + return; + } + button.setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + if ("REPLACE".equals(anchorConfig.getAction())) { + HostDependManager.getInst().showModal((Activity)BaseActivityProxy.this.mActivity, "", "", anchorConfig.getReplaceTitle(), true, "取消", "", "添加", "", new NativeModule.NativeModuleCallback() { + public void onNativeModuleCall(Integer param2Integer) { + int i = param2Integer.intValue(); + if (i != 0) { + if (i != 1) + return; + BaseActivityProxy.this.getAnchorShareInfo(anchorConfig); + } + } + }); + return; + } + if ("ADD".equals(anchorConfig.getAction())) { + BaseActivityProxy.this.getAnchorShareInfo(anchorConfig); + return; + } + if ("REMOVE".endsWith(anchorConfig.getAction()) && BaseActivityProxy.this.sendShareInfoToMainProcess(null, anchorConfig)) + anchorBtn.setVisibility(4); + } + }); + updateAnchorBtn(anchorConfig, button); + } + + public void metaExpired() { + AppBrandLogger.d("BaseActivityProxy", new Object[] { "metaExpired" }); + InnerEventHelper.mpLoadResult(TimeMeter.stop(this.mLoadStartTime), "qr_code_expired", "qr_code_expired", this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + if (!this.mApp.getAppInfo().isGame()) + SearchEventHelper.loadDetailEvent(false, false, TimeMeter.stop(this.mLoadStartTime), 0, SearchEventHelper.failReasonClient("qr_code_expired")); + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logTimeDuration(new String[] { "BaseActivityProxy_MetaExpired" }); + getLaunchScheduler().stopListenLaunchStatus(); + LoadHelper.monitorErrorEvent(ErrorCode.META.QRCODE_EXPIRED.getCode(), ErrorCode.META.QRCODE_EXPIRED.getDesc()); + runOnUIThreadQuickly(new Runnable() { + public void run() { + LoadHelper.handleMiniProcessFail(ErrorCode.META.QRCODE_EXPIRED.getCode()); + } + }); + } + + public void miniAppDownloadInstallFail(String paramString1, String paramString2) { + getLaunchScheduler().stopListenLaunchStatus(); + updateProgressTv(8, 0); + long l = TimeMeter.stop(this.mLoadStartTime); + StringBuilder stringBuilder = new StringBuilder("miniAppDownloadInstallFail "); + stringBuilder.append(paramString2); + InnerEventHelper.mpLoadResult(l, "download_fail", stringBuilder.toString(), this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + if (TextUtils.isEmpty(this.mApp.getSchema()) || !HostDependManager.getInst().handleAppbrandDisablePage((Context)this.mActivity, this.mApp.getSchema())) + LoadHelper.handleMiniProcessFail(paramString1); + } + + public void mismatchHost() { + AppBrandLogger.d("BaseActivityProxy", new Object[] { "mismatchHost" }); + InnerEventHelper.mpLoadResult(TimeMeter.stop(this.mLoadStartTime), "mismatch_host", "mismatch_host", this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logError(new String[] { "BaseActivityProxy_NotSupport" }); + getLaunchScheduler().stopListenLaunchStatus(); + LoadHelper.monitorErrorEvent(ErrorCode.META.HOST_MISMATCH.getCode(), ErrorCode.META.HOST_MISMATCH.getDesc()); + HostDependManager.getInst().showUnSupportView((Activity)this.mActivity, this.mApp.getSchema(), new b.g() { + public void proceed() { + if (BaseActivityProxy.this.mActivity != null) { + EventParamsValue.PARAMS_EXIT_TYPE = "others"; + EventParamsValue.IS_OTHER_FLAG = true; + ToolUtils.onActivityExit((Activity)BaseActivityProxy.this.mActivity, 6); + } + } + }); + } + + public void noPermission() { + AppBrandLogger.d("BaseActivityProxy", new Object[] { "noPermission " }); + InnerEventHelper.mpLoadResult(TimeMeter.stop(this.mLoadStartTime), "no_permission", "no_permission", this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + if (!this.mApp.getAppInfo().isGame()) + SearchEventHelper.loadDetailEvent(false, false, TimeMeter.stop(this.mLoadStartTime), 0, SearchEventHelper.failReasonClient("no_permission")); + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logError(new String[] { "BaseActivityProxy_NoPermission" }); + getLaunchScheduler().stopListenLaunchStatus(); + LoadHelper.monitorErrorEvent(ErrorCode.META.PERMISSION_DENY.getCode(), ErrorCode.META.PERMISSION_DENY.getDesc()); + runOnUIThreadQuickly(new Runnable() { + public void run() { + LoadHelper.handleMiniProcessFail(ErrorCode.META.PERMISSION_DENY.getCode()); + } + }); + } + + public void offline() { + AppBrandLogger.d("BaseActivityProxy", new Object[] { "offline" }); + InnerEventHelper.mpLoadResult(TimeMeter.stop(this.mLoadStartTime), "mp_offline", "mp_offline", this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + if (!this.mApp.getAppInfo().isGame()) + SearchEventHelper.loadDetailEvent(false, false, TimeMeter.stop(this.mLoadStartTime), 0, SearchEventHelper.failReasonClient("mp_offline")); + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logError(new String[] { "BaseActivityProxy_offline" }); + getLaunchScheduler().stopListenLaunchStatus(); + LoadHelper.monitorErrorEvent(ErrorCode.META.OFFLINE.getCode(), ErrorCode.META.OFFLINE.getDesc()); + if (this.mActivity != null) { + EventParamsValue.PARAMS_EXIT_TYPE = "others"; + EventParamsValue.IS_OTHER_FLAG = true; + String str = this.mApp.getSchema(); + if (this.mActivity == null || TextUtils.isEmpty(str) || !HostDependManager.getInst().handleAppbrandDisablePage((Context)this.mActivity, str)) { + HostDependManager hostDependManager = HostDependManager.getInst(); + FragmentActivity fragmentActivity = this.mActivity; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(AppbrandConstant.OpenApi.getInst().getOFFLINE_URL()); + stringBuilder.append("?"); + stringBuilder.append(LanguageUtils.appendLanguageQueryParam()); + hostDependManager.jumpToWebView((Context)fragmentActivity, stringBuilder.toString(), this.mActivity.getResources().getString(2097741961), true); + } + ToolUtils.onActivityExit((Activity)this.mActivity, 5); + } + } + + public void onAdStateChanged(String paramString1, String paramString2) { + BaseAdCtrl.notifyStateChanged(paramString1, paramString2); + } + + public abstract void onAddVideoFragment(); + + public void onCreate(Bundle paramBundle) { + boolean bool = true; + AppBrandLogger.i("BaseActivityProxy", new Object[] { "onCreate" }); + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logTimeDuration(new String[] { "baseActivityProxy onCreate" }); + this.mLoadStartTime = TimeMeter.newAndStart(); + LoadStateManager.getIns().setLoadStartTime(this.mLoadStartTime); + Intent intent = this.mActivity.getIntent(); + if (paramBundle == null) + bool = false; + this.mIsActivityRecreate = bool; + String str = intent.getStringExtra("microapp_url"); + Bundle bundle = intent.getBundleExtra("mp_launch_extra"); + initMpValOnCreate(str, bundle); + MpTimeLineReporter mpTimeLineReporter = this.mApp.getService(MpTimeLineReporter.class); + mpTimeLineReporter.addPoint("parse_schema_begin"); + AppInfoEntity appInfoEntity2 = (AppInfoEntity)intent.getParcelableExtra("microapp_appinfo"); + AppInfoEntity appInfoEntity1 = appInfoEntity2; + if (appInfoEntity2 == null) + appInfoEntity1 = AppInfoManager.generateInitAppInfo(str); + if (appInfoEntity1 != null) { + mpTimeLineReporter.addPoint("parse_schema_end"); + updateLaunchType(appInfoEntity1); + ((RenderSnapShotManager)this.mApp.getService(RenderSnapShotManager.class)).flushOnUIThread(); + ((LaunchScheduler)this.mApp.getService(LaunchScheduler.class)).startLaunch(appInfoEntity1, str, null, bundle); + HostDependManager.getInst().getMiniAppLifeCycleInstance(); + EventHelper.mpInitResult(appInfoEntity1.appId, appInfoEntity1.launchFrom, appInfoEntity1.scene, appInfoEntity1.subScene, appInfoEntity1.isGame(), LoadStateManager.getIns().getTotalDuration(), "success", "success"); + ((SuffixMetaServiceInterface)this.mApp.getMiniAppContext().getService(SuffixMetaServiceInterface.class)).requestSuffixMeta(); + return; + } + StringBuilder stringBuilder = new StringBuilder("AppInfo is null, intent = "); + stringBuilder.append(intent); + throw new NullPointerException(stringBuilder.toString()); + } + + public boolean onCreateBannerView(h paramh) { + return false; + } + + public boolean onCreateVideoAd(h paramh) { + return false; + } + + public void onDestroy() { + ((LaunchScheduler)this.mApp.getService(LaunchScheduler.class)).onDestroy(); + } + + public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent) { + return false; + } + + public void onMemoryWarning(int paramInt) { + StringBuilder stringBuilder = new StringBuilder("onMemoryWarning:"); + stringBuilder.append(paramInt); + AppBrandLogger.d("BaseActivityProxy", new Object[] { stringBuilder.toString() }); + try { + boolean bool; + JSONObject jSONObject = new JSONObject(); + jSONObject.put("level", String.valueOf(paramInt)); + this.mApp.getJsBridge().sendMsgToJsCore("onMemoryWarning", jSONObject.toString()); + Debug.MemoryInfo[] arrayOfMemoryInfo = ((ActivityManager)this.mActivity.getSystemService("activity")).getProcessMemoryInfo(new int[] { Process.myPid() }); + if (arrayOfMemoryInfo != null && arrayOfMemoryInfo.length > 0) { + bool = arrayOfMemoryInfo[0].getTotalPss(); + } else { + bool = false; + } + Event.builder("mp_memorywarning_report").kv("usedMemory", Integer.valueOf(bool)).kv("type", Integer.valueOf(1)).kv("level", Integer.valueOf(paramInt)).flush(); + return; + } catch (Exception exception) { + StringBuilder stringBuilder1 = new StringBuilder("onMemoryWarning error:"); + stringBuilder1.append(paramInt); + AppBrandLogger.e("BaseActivityProxy", new Object[] { stringBuilder1.toString() }); + return; + } + } + + public void onNewIntent(Intent paramIntent) { + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logTimeDuration(new String[] { "BaseActivityProxy_onNewIntent" }); + this.mApp.getForeBackgroundManager().pauseBackgroundOverLimitTimeStrategy(); + overrideActivityInAnimation(ActivityUtil.isMoveActivityToFrontSilentIntent(paramIntent), true); + if (paramIntent == null || !paramIntent.hasExtra("microapp_url")) { + AppBrandLogger.e("BaseActivityProxy", new Object[] { "onNewIntent fail, intent == ", paramIntent }); + return; + } + updateAppInfoOnNewIntent(paramIntent); + SynHistoryManager.getInstance().addToRecentApps(this.mApp.getAppInfo()); + if (!AdSiteManager.getInstance().isAdSiteBrowser()) + initAnchor(); + RouteEventCtrl routeEventCtrl = this.mApp.getRouteEventCtrl(); + if (routeEventCtrl != null) + routeEventCtrl.updateLaunchOption(this.mApp.getAppInfo()); + } + + public boolean onOperateBannerView(h paramh) { + return false; + } + + public String onOperateInterstitialAd(h paramh) { + return null; + } + + public boolean onOperateVideoAd(h paramh) { + return false; + } + + public void onPause() { + AppBrandLogger.i("BaseActivityProxy", new Object[] { "onPause" }); + dismissFavoriteGuide(); + } + + public void onPostCreate(Bundle paramBundle) {} + + public abstract void onRemoveVideoFragment(); + + public void onRequestPermissionsResult(int paramInt, String[] paramArrayOfString, int[] paramArrayOfint) { + AppBrandLogger.d("BaseActivityProxy", new Object[] { "requestCode ", Integer.valueOf(paramInt) }); + } + + public void onResume() { + AppBrandLogger.i("BaseActivityProxy", new Object[] { "onResume" }); + ForeBackgroundManager foreBackgroundManager = this.mApp.getForeBackgroundManager(); + if (!foreBackgroundManager.isBackground()) { + foreBackgroundManager.resumeBackgroundOverLimitTimeStrategy(); + AppBrandLogger.i("BaseActivityProxy", new Object[] { "resumeWhenForeground" }); + j j = AppbrandApplication.getInst().getJsBridge(); + if (j != null) + j.sendMsgToJsCore("onBackFromFloatPage", (new JSONObject()).toString()); + return; + } + this.mApp.onShow(); + final AppInfoEntity appInfo = this.mApp.getAppInfo(); + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + InnerHostProcessBridge.updateJumpList(appInfo.appId, appInfo.isGame(), appInfo.isSpecial()); + } + }Schedulers.shortIO()); + this.mOnActivityStartTime.start(); + this.mLoadingViewShowTimes.begin(); + ParamManager.newSession(); + Event.builder("mp_enter").kv("launch_type", appInfoEntity.launchType).flush(); + if (!this.isShowingLoadingView) { + startModule(); + HostProcessBridge.onMiniAppStart(appInfoEntity, appInfoEntity.isGame(), getScreenOrientationFromAppConfig()); + this.mMicroAppStartShowTimes = System.currentTimeMillis(); + } + if (this.mIsCreated) { + AppbrandConstants.getBundleManager().checkUpdateBaseBundle((Context)AppbrandContext.getInst().getApplicationContext()); + } else { + this.mIsCreated = true; + } + startModule(); + } + + public void onStartActivityForResult(Intent paramIntent, int paramInt) { + AppBrandLogger.i("BaseActivityProxy", new Object[] { "onStartActivityForResult" }); + this.mApp.getForeBackgroundManager().pauseBackgroundOverLimitTimeStrategy(); + } + + public void onStop() { + AppBrandLogger.i("BaseActivityProxy", new Object[] { "onStop" }); + if (this.mApp.getForeBackgroundManager().isBackground()) { + AppBrandLogger.i("BaseActivityProxy", new Object[] { "stopWhenBackground" }); + return; + } + this.mApp.onHide(); + Map map = ModeManager.getInst().getModules(); + if (map != null) { + Iterator iterator = map.values().iterator(); + while (iterator.hasNext()) + ((NativeModule)iterator.next()).onStop(); + } + if (EventParamsValue.IS_OTHER_FLAG && !TextUtils.equals(EventParamsValue.PARAMS_EXIT_TYPE, "others")) + EventParamsValue.PARAMS_EXIT_TYPE = "others"; + Event.builder("mp_exit").kv("page_path", this.mApp.getCurrentPageUrl()).kv("exit_type", EventParamsValue.PARAMS_EXIT_TYPE).kv("launch_type", (this.mApp.getAppInfo()).launchType).kv("duration", Long.valueOf(TimeMeter.stop(this.mOnActivityStartTime))).kv("load_state", LoadStateManager.getIns().getLoadState()).kv("progress", Integer.valueOf(getLaunchScheduler().getLaunchProgress())).addKVJsonObject(OriginHelper.getOriginJson()).flush(); + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + if (!appInfoEntity.isGame()) + SearchEventHelper.stayPageEvent(false); + this.mHasActivityStoped = true; + EventParamsValue.IS_OTHER_FLAG = true; + HostProcessBridge.onMiniAppStop(appInfoEntity, appInfoEntity.isGame(), getScreenOrientationFromAppConfig(), this.mApp.getStopReason()); + recordMiniAppUsage(appInfoEntity, this.mMicroAppStartShowTimes); + this.mApp.setStopReason(""); + this.mLoadingViewShowTimes.pause(); + AppbrandConstants.getBundleManager().checkUpdateBaseBundle((Context)AppbrandContext.getInst().getApplicationContext()); + AppBrandMonitor.flush(); + AppBrandLogger.flush(); + } + + public boolean onUpdateBannerView(h paramh) { + return false; + } + + public void onWindowFocusChanged(boolean paramBoolean) {} + + public void overrideActivityExitAnimation() { + if (AppbrandApplicationImpl.getInst().getMiniAppLaunchConfig().isLaunchWithFloatStyle()) { + HostDependManager.getInst().overridePendingTransition((Activity)this.mActivity, 2131034235, 2131034232, 4); + return; + } + HostDependManager.getInst().overridePendingTransition((Activity)this.mActivity, 2131034235, 2131034232, 2); + } + + public void registerBackPressedListener(h paramh) { + if (paramh == null) + return; + if (getMatchBackPressedListenerWr(paramh) == null) + this.mBackPressedListenerWrList.add(new WeakReference(paramh)); + } + + public void requestAppInfoFail(final String code, String paramString2) { + AppBrandLogger.e("BaseActivityProxy", new Object[] { "requestAppInfoFail ", paramString2, new Throwable() }); + long l = TimeMeter.stop(this.mLoadStartTime); + StringBuilder stringBuilder = new StringBuilder("requestAppInfoFail "); + stringBuilder.append(paramString2); + InnerEventHelper.mpLoadResult(l, "meta_request_fail", stringBuilder.toString(), this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + if (!this.mApp.getAppInfo().isGame()) + SearchEventHelper.loadDetailEvent(false, false, TimeMeter.stop(this.mLoadStartTime), 0, SearchEventHelper.failReasonClient("meta_request_fail")); + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logError(new String[] { "BaseActivityProxy_requestAppInfoFail", paramString2 }); + getLaunchScheduler().stopListenLaunchStatus(); + paramString2 = this.mApp.getSchema(); + if (this.mActivity == null || TextUtils.isEmpty(paramString2) || !HostDependManager.getInst().handleAppbrandDisablePage((Context)this.mActivity, paramString2)) { + runOnUIThreadQuickly(new Runnable() { + public void run() { + LoadHelper.handleMiniProcessFail(code); + } + }); + return; + } + FragmentActivity fragmentActivity = this.mActivity; + if (fragmentActivity != null) + ToolUtils.onActivityExit((Activity)fragmentActivity, 3); + } + + public void requestAppInfoSuccess(AppInfoEntity paramAppInfoEntity) { + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logTimeDuration(new String[] { "BaseActivityProxy_requestAppInfoSuccess" }); + this.mLaunchLoadingView.updateViews(paramAppInfoEntity); + setActivityTaskDescription(); + } + + public boolean sendShareInfoToMainProcess(h paramh, AnchorConfig paramAnchorConfig) { + JSONObject jSONObject; + if (paramAnchorConfig == null) + return false; + if (paramh != null) { + paramh.anchorExtra = paramAnchorConfig.getAnchorExtra(); + paramh.snapshotUrl = paramAnchorConfig.getSnapshotUrl(); + jSONObject = paramh.toJson(); + } else { + jSONObject = new JSONObject(); + try { + jSONObject.put("anchorExtra", paramAnchorConfig.getAnchorExtra()); + } catch (JSONException jSONException) {} + } + CrossProcessDataEntity crossProcessDataEntity = ProcessCallControlBridge.callHostProcessSync("anchorAction", CrossProcessDataEntity.Builder.create().put("anchorAction", paramAnchorConfig.getAction()).put("anchorShareInfo", jSONObject.toString()).build()); + if (paramAnchorConfig.getAction().equals("ADD") || paramAnchorConfig.getAction().equals("REPLACE") || paramAnchorConfig.getAction().equals("REMOVE")) { + if (crossProcessDataEntity != null && crossProcessDataEntity.getBoolean("anchorActionResult")) { + shareResultEvent("success", paramAnchorConfig.getChannel()); + EventParamsValue.PARAMS_EXIT_TYPE = "anchor_add"; + EventParamsValue.IS_OTHER_FLAG = false; + ToolUtils.onActivityExit((Activity)this.mActivity, 9); + return true; + } + shareResultEvent("fail", paramAnchorConfig.getChannel()); + HostDependManager.getInst().showToast((Context)this.mActivity, null, UIUtils.getString(2097741862), 0L, null); + return false; + } + return false; + } + + protected void setActivityTaskDescription() { + final AppInfoEntity appInfo = this.mApp.getAppInfo(); + if (appInfoEntity == null) + return; + FragmentActivity fragmentActivity = this.mActivity; + if (fragmentActivity instanceof MiniappHostBase && ((MiniappHostBase)fragmentActivity).isInHostStack()) + return; + Observable.create(new Function() { + public Bitmap fun() { + if (!TextUtils.isEmpty(appInfo.icon)) + try { + byte[] arrayOfByte = NetUtil.readImage(appInfo.icon); + if (arrayOfByte != null && arrayOfByte.length > 0) + return BitmapFactory.decodeByteArray(arrayOfByte, 0, arrayOfByte.length); + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "BaseActivityProxy", exception.getStackTrace()); + } + return null; + } + }).schudleOn(Schedulers.longIO()).observeOn(Schedulers.ui()).subscribe((Subscriber)new Subscriber.ResultableSubscriber() { + public void onError(Throwable param1Throwable) { + ActivityManager.TaskDescription taskDescription = new ActivityManager.TaskDescription(appInfo.appName); + BaseActivityProxy.this.mActivity.setTaskDescription(taskDescription); + } + + public void onSuccess(Bitmap param1Bitmap) { + if (param1Bitmap != null) { + ActivityManager.TaskDescription taskDescription = new ActivityManager.TaskDescription(appInfo.appName, param1Bitmap); + BaseActivityProxy.this.mActivity.setTaskDescription(taskDescription); + return; + } + onError(new NullPointerException("bitmap == null")); + } + }); + } + + public void shareResultEvent(String paramString1, String paramString2) { + InnerEventHelper.mpShareResult(paramString2, "inside", paramString1, null, false); + } + + public d showFavoriteGuide(FavoriteGuideModel paramFavoriteGuideModel) { + FavoriteGuideWidget favoriteGuideWidget = this.mApp.getService(FavoriteGuideWidget.class); + favoriteGuideWidget.registerCallback(new FavoriteGuideWidget.Callback() { + public Activity getActivity() { + return (Activity)BaseActivityProxy.this.mActivity; + } + + public boolean isGame() { + return BaseActivityProxy.this.mApp.getAppInfo().isGame(); + } + }); + return favoriteGuideWidget.show(paramFavoriteGuideModel); + } + + public boolean showLoadFailMessage(String paramString, boolean paramBoolean) { + FeignHostConfig.LaunchLoadingListener launchLoadingListener; + RenderSnapShotManager renderSnapShotManager = this.mApp.getService(RenderSnapShotManager.class); + if (this.mLaunchLoadingView != null && this.isShowingLoadingView) { + if (renderSnapShotManager.isSnapShotRender() && !TextUtils.isEmpty(renderSnapShotManager.getSnapShotErrorArgs())) { + this.mLaunchLoadingView.showFailMessage(paramString, paramBoolean, true); + } else { + this.mLaunchLoadingView.showFailMessage(paramString, paramBoolean, false); + } + if (this.mApp.getAppInfo().isGame()) { + launchLoadingListener = FeignHostConfig.inst().getGameLaunchLoadingListener(); + } else { + launchLoadingListener = FeignHostConfig.inst().getAppLaunchLoadingListener(); + } + if (launchLoadingListener != null) + launchLoadingListener.onLoadingFail(paramString); + return true; + } + if (launchLoadingListener.isSnapShotRender()) { + launchLoadingListener.onLoadResultFail(paramString); + return true; + } + return false; + } + + public void showNotSupportView() { + AppBrandLogger.d("BaseActivityProxy", new Object[] { "showNotSupportView" }); + InnerEventHelper.mpLoadResult(TimeMeter.stop(this.mLoadStartTime), "old_js_sdk", "old_js_sdk", this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + if (!this.mApp.getAppInfo().isGame()) + SearchEventHelper.loadDetailEvent(false, false, TimeMeter.stop(this.mLoadStartTime), 0, SearchEventHelper.failReasonClient("old_js_sdk")); + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logError(new String[] { "BaseActivityProxy_NotSupport" }); + getLaunchScheduler().stopListenLaunchStatus(); + LoadHelper.monitorErrorEvent(ErrorCode.META.JSON_ERROR.getCode(), ErrorCode.META.JSON_ERROR.getDesc()); + HostDependManager.getInst().showUnSupportView((Activity)this.mActivity, this.mApp.getSchema(), new b.g() { + public void proceed() { + if (BaseActivityProxy.this.mActivity != null) { + EventParamsValue.PARAMS_EXIT_TYPE = "others"; + EventParamsValue.IS_OTHER_FLAG = true; + ToolUtils.onActivityExit((Activity)BaseActivityProxy.this.mActivity, 6); + } + } + }); + } + + protected void startModule() { + Map map = ModeManager.getInst().getModules(); + if (map != null) { + Iterator iterator = map.values().iterator(); + while (iterator.hasNext()) + ((NativeModule)iterator.next()).onStart(); + } + } + + public void unRegisterBackPressedLinstener(h paramh) { + if (paramh == null) + return; + WeakReference weakReference = getMatchBackPressedListenerWr(paramh); + if (weakReference != null) + this.mBackPressedListenerWrList.remove(weakReference); + } + + protected final void updateAppInfoOnNewIntent(Intent paramIntent) { + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + if (appInfoEntity != null) { + if (paramIntent == null) + return; + String str = paramIntent.getStringExtra("microapp_url"); + if (this.mApp != null && !TextUtils.isEmpty(str)) + this.mApp.setSchema(str); + AppInfoManager.readAppInfoFromSchemaCommon(str, appInfoEntity); + appInfoEntity.isNotRecordRecentUseApps = ((AppInfoEntity)paramIntent.getParcelableExtra("microapp_appinfo")).isNotRecordRecentUseApps; + this.mApp.setAppInfo(appInfoEntity); + InnerEventHelper.mpSchemaAssess(str); + } + } + + protected void updateProgressTv(int paramInt1, int paramInt2) { + if (this.isShowingLoadingView) { + if (paramInt1 == 0) + notifyLoadProgress(paramInt2); + this.mLaunchLoadingView.updateProgressTv(paramInt1, paramInt2); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\BaseActivityProxy.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/BuildConfig.java b/df_miniapp/classes/com/tt/miniapp/BuildConfig.java new file mode 100644 index 0000000..dd9f1e4 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/BuildConfig.java @@ -0,0 +1,13 @@ +package com.tt.miniapp; + +public final class BuildConfig { + public static final int VERSION_CODE = 1; + + public static final String VERSION_NAME = "3.7.4-tiktok"; +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\BuildConfig.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/IKeyBoardStateChange.java b/df_miniapp/classes/com/tt/miniapp/IKeyBoardStateChange.java new file mode 100644 index 0000000..8d0055d --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/IKeyBoardStateChange.java @@ -0,0 +1,13 @@ +package com.tt.miniapp; + +public interface IKeyBoardStateChange { + void onKeyboardHide(); + + void onKeyboardShow(int paramInt1, int paramInt2); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\IKeyBoardStateChange.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/IPageTrans.java b/df_miniapp/classes/com/tt/miniapp/IPageTrans.java new file mode 100644 index 0000000..1d585f7 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/IPageTrans.java @@ -0,0 +1,11 @@ +package com.tt.miniapp; + +public interface IPageTrans { + void onPageTransEnd(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\IPageTrans.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/ImmersedStatusBarHelper.java b/df_miniapp/classes/com/tt/miniapp/ImmersedStatusBarHelper.java new file mode 100644 index 0000000..d3cf523 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/ImmersedStatusBarHelper.java @@ -0,0 +1,148 @@ +package com.tt.miniapp; + +import android.app.Activity; +import android.content.Context; +import android.os.Build; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.LinearLayout; +import com.tt.miniapp.util.DevicesUtil; + +public class ImmersedStatusBarHelper { + private static boolean sIsEnable = true; + + private static boolean sIsInit; + + private static boolean sOreoStatusBarDrawBackground; + + private Activity mActivity; + + private View mFakeStatusBar; + + private boolean mFitsSystemWindows; + + private View mRootView; + + private boolean mSelfEnable; + + private int mStatusBarColor; + + private int mStatusBarPaddingTop; + + public ImmersedStatusBarHelper(Activity paramActivity, ImmersedStatusBarConfig paramImmersedStatusBarConfig) { + this.mActivity = paramActivity; + this.mStatusBarColor = paramImmersedStatusBarConfig.mStatusBarColor; + this.mFitsSystemWindows = paramImmersedStatusBarConfig.mFitsSystemWindows; + this.mSelfEnable = paramImmersedStatusBarConfig.mEnable; + } + + private static View createStatusView(Activity paramActivity, int paramInt) { + int i = DevicesUtil.getStatusBarHeight((Context)paramActivity); + View view = new View((Context)paramActivity); + view.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(-1, i)); + view.setBackgroundColor(paramInt); + return view; + } + + @Deprecated + public static boolean isEnabled() { + return isGlobalEnabled(); + } + + private boolean isGlobalAndSelfEnabled() { + return (this.mSelfEnable && isGlobalEnabled()); + } + + public static boolean isGlobalEnabled() { + return (sIsEnable && Build.VERSION.SDK_INT >= 21); + } + + public static void setUseLightStatusBar(Window paramWindow, boolean paramBoolean) { + if (Build.VERSION.SDK_INT >= 23 && sIsEnable) { + int i = paramWindow.getDecorView().getSystemUiVisibility(); + View view = paramWindow.getDecorView(); + if (paramBoolean) { + i |= 0x2000; + } else { + i &= 0xFFFFDFFF; + } + view.setSystemUiVisibility(i); + if (DevicesUtil.isMiui()) + DevicesUtil.setMiuiStatusBarDarkMode(paramBoolean, paramWindow); + } + } + + public void setColor(int paramInt) { + if (Build.VERSION.SDK_INT >= 19) + this.mFakeStatusBar.setBackgroundColor(paramInt); + } + + public void setUseLightStatusBarInternal(boolean paramBoolean) { + setUseLightStatusBar(this.mActivity.getWindow(), paramBoolean); + } + + public void setup(boolean paramBoolean) { + if (Build.VERSION.SDK_INT >= 21) { + Window window = this.mActivity.getWindow(); + window.clearFlags(67108864); + window.getDecorView().setSystemUiVisibility(1280); + window.addFlags(-2147483648); + window.setStatusBarColor(0); + } else if (Build.VERSION.SDK_INT >= 19) { + this.mActivity.getWindow().addFlags(67108864); + } + this.mFakeStatusBar = createStatusView(this.mActivity, this.mStatusBarColor); + if (!paramBoolean) { + ((ViewGroup)this.mActivity.getWindow().getDecorView()).addView(this.mFakeStatusBar); + this.mRootView = ((ViewGroup)this.mActivity.findViewById(16908290)).getChildAt(0); + this.mStatusBarPaddingTop = this.mRootView.getPaddingTop(); + statusBarToImmersed(); + } + } + + public void statusBarToImmersed() { + View view = this.mRootView; + if (view == null) + return; + view.setPadding(view.getPaddingLeft(), this.mStatusBarPaddingTop + DevicesUtil.getStatusBarHeight((Context)this.mActivity), this.mRootView.getPaddingRight(), this.mRootView.getPaddingBottom()); + this.mFakeStatusBar.setVisibility(0); + } + + public void statusBarToUnImmersed() { + View view = this.mRootView; + if (view == null) + return; + view.setPadding(view.getPaddingLeft(), this.mStatusBarPaddingTop, this.mRootView.getPaddingRight(), this.mRootView.getPaddingBottom()); + this.mFakeStatusBar.setVisibility(8); + } + + public static class ImmersedStatusBarConfig { + public boolean mEnable = true; + + public boolean mFitsSystemWindows = true; + + public int mStatusBarColor = -1; + + public ImmersedStatusBarConfig setEnable(boolean param1Boolean) { + this.mEnable = param1Boolean; + return this; + } + + public ImmersedStatusBarConfig setFitsSystemWindows(boolean param1Boolean) { + this.mFitsSystemWindows = param1Boolean; + return this; + } + + public ImmersedStatusBarConfig setStatusBarColor(int param1Int) { + this.mStatusBarColor = param1Int; + return this; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\ImmersedStatusBarHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/JsRuntime.java b/df_miniapp/classes/com/tt/miniapp/JsRuntime.java new file mode 100644 index 0000000..896e1a3 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/JsRuntime.java @@ -0,0 +1,367 @@ +package com.tt.miniapp; + +import android.content.Context; +import android.os.Handler; +import android.os.HandlerThread; +import android.os.SystemClock; +import android.text.TextUtils; +import android.util.Log; +import com.he.JsRunLoop; +import com.he.Monitor; +import com.he.SettingsProvider; +import com.he.jsbinding.JsContext; +import com.he.jsbinding.JsObject; +import com.he.jsbinding.JsScopedContext; +import com.he.loader.LoadScriptSample; +import com.he.loader.TTAppLoader; +import com.tt.frontendapiinterface.j; +import com.tt.miniapp.autotest.AutoTestManager; +import com.tt.miniapp.dialog.LoadHelper; +import com.tt.miniapp.errorcode.ErrorCode; +import com.tt.miniapp.event.InnerEventHelper; +import com.tt.miniapp.event.LoadStateManager; +import com.tt.miniapp.jsbridge.JsBridge; +import com.tt.miniapp.jsbridge.Jscore; +import com.tt.miniapp.jsbridge.PreloadedJsContext; +import com.tt.miniapp.launchcache.pkg.PkgService; +import com.tt.miniapp.settings.data.SettingsDAO; +import com.tt.miniapp.settings.keys.Settings; +import com.tt.miniapp.thread.HandlerThreadUtil; +import com.tt.miniapp.util.JsRuntimeErrorReporter; +import com.tt.miniapp.util.TimeLogger; +import com.tt.miniapp.util.timeline.MpTimeLineReporter; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.util.DebugUtil; +import com.tt.miniapphost.util.IOUtils; +import com.tt.miniapphost.util.TimeMeter; +import java.io.File; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import org.json.JSONObject; + +public abstract class JsRuntime implements JsRunLoop.SetupCallback, SettingsProvider { + private static final long epoch_cpu_time_start; + + private static final long epoch_start = System.currentTimeMillis() - System.nanoTime() / 1000000L; + + public volatile boolean localPkgReady = false; + + private final JsBridge mJsBridge = new JsBridge(this); + + public int mJsSdkLoadState = 2; + + protected JsRunLoop mJsThread; + + protected Handler mJsThreadHandler; + + protected final TTAppLoader mLoader; + + public List mPendingScopeCallbackList = new ArrayList(); + + protected Handler mWorkHandler; + + private HandlerThread mWorkThread; + + private PreloadedJsContext preloaded; + + static { + epoch_cpu_time_start = SystemClock.elapsedRealtime() - System.nanoTime() / 1000000L; + } + + public JsRuntime(PreloadedJsContext paramPreloadedJsContext) { + this.preloaded = paramPreloadedJsContext; + TTAppLoaderImpl tTAppLoaderImpl = new TTAppLoaderImpl(); + Monitor.impl = tTAppLoaderImpl; + this.mLoader = new TTAppLoader(tTAppLoaderImpl); + } + + private boolean isTMARuntime() { + return this instanceof com.tt.miniapp.jsbridge.JsTMARuntime; + } + + private void loadJsCoreFile(JsScopedContext paramJsScopedContext, File paramFile, String paramString, TimeMeter paramTimeMeter) throws Exception { + CodeNullException codeNullException; + StringBuilder stringBuilder1; + int i; + MpTimeLineReporter mpTimeLineReporter = AppbrandApplicationImpl.getInst().getService(MpTimeLineReporter.class); + JSONObject jSONObject = (new MpTimeLineReporter.ExtraBuilder()).kv("file_path", paramString).build(); + PreloadedJsContext preloadedJsContext = this.preloaded; + if (preloadedJsContext == null) { + i = -1; + } else { + i = preloadedJsContext.get(paramString); + } + if (i != -1) { + this.preloaded = null; + stringBuilder1 = new StringBuilder("use precompiled script "); + stringBuilder1.append(i); + AppBrandLogger.d("loadJsSdk", new Object[] { stringBuilder1.toString() }); + mpTimeLineReporter.addPoint("load_coreJs_begin", jSONObject); + paramJsScopedContext.execute(i, true); + paramJsScopedContext.pop(); + mpTimeLineReporter.addPoint("load_coreJs_end", jSONObject); + } else { + byte[] arrayOfByte = IOUtils.readBytes(stringBuilder1.getAbsolutePath()); + mpTimeLineReporter.addPoint("load_coreJs_begin", jSONObject); + if (arrayOfByte != null) { + paramJsScopedContext.eval(arrayOfByte, stringBuilder1.getName()); + paramJsScopedContext.pop(); + mpTimeLineReporter.addPoint("load_coreJs_end", jSONObject); + } else { + codeNullException = new CodeNullException(); + throw codeNullException; + } + } + this.mJsSdkLoadState = 0; + InnerEventHelper.mpJsLoadResult("success", TimeMeter.stop(paramTimeMeter), ""); + TimeLogger timeLogger = TimeLogger.getInstance(); + StringBuilder stringBuilder2 = new StringBuilder("JsRuntime_load_"); + stringBuilder2.append(paramString); + stringBuilder2.append("_success"); + timeLogger.logTimeDuration(new String[] { stringBuilder2.toString() }); + Iterator iterator = this.mPendingScopeCallbackList.iterator(); + while (iterator.hasNext()) + codeNullException.run(iterator.next()); + this.mPendingScopeCallbackList.clear(); + } + + private boolean retryLoadJsCoreFile(JsScopedContext paramJsScopedContext, File paramFile, String paramString, TimeMeter paramTimeMeter) { + Object object = null; + int i = 0; + boolean bool2 = false; + boolean bool1 = false; + while (true) { + ErrorCode.JSCORE jSCORE; + if (i < 20 && !bool2) { + i++; + try { + Thread.sleep(500L); + loadJsCoreFile(paramJsScopedContext, paramFile, paramString, paramTimeMeter); + bool2 = true; + } catch (InterruptedException interruptedException) { + AppBrandLogger.e("JsRuntime", new Object[] { interruptedException }); + } catch (CodeNullException codeNullException) { + bool1 = true; + } catch (Exception exception) {} + continue; + } + if (bool2) + return true; + if (paramFile != null) { + TimeLogger timeLogger = TimeLogger.getInstance(); + StringBuilder stringBuilder1 = new StringBuilder("jscore file lenght:"); + stringBuilder1.append(paramFile.length()); + timeLogger.logTimeDuration(new String[] { stringBuilder1.toString() }); + } + if (bool1) { + if (isTMARuntime()) { + jSCORE = ErrorCode.JSCORE.TMA_CORE_NOT_FOUND; + } else { + jSCORE = ErrorCode.JSCORE.TMG_CORE_NOT_FOUND; + } + showLoadError(jSCORE.getCode()); + return false; + } + StringBuilder stringBuilder = new StringBuilder("js core load "); + stringBuilder.append(paramString); + stringBuilder.append(" fail "); + AppBrandLogger.eWithThrowable("JsRuntime", stringBuilder.toString(), exception); + this.mJsSdkLoadState = 1; + InnerEventHelper.mpJsLoadResult("fail", TimeMeter.stop(paramTimeMeter), Log.getStackTraceString(exception)); + TimeLogger.getInstance().logError(new String[] { "JSRUNTIME_LOAD_JSCORE_ERROR", paramString, Log.getStackTraceString(exception) }); + if (isTMARuntime()) { + jSCORE = ErrorCode.JSCORE.TMA_CORE_EXECUTE_ERROR; + } else { + jSCORE = ErrorCode.JSCORE.TMG_CORE_EXECUTE_ERROR; + } + showLoadError(jSCORE.getCode()); + return false; + } + } + + public static long toEpochCpuTime(long paramLong) { + return epoch_cpu_time_start + paramLong / 1000L; + } + + public static long toEpochTime(long paramLong) { + return epoch_start + paramLong / 1000L; + } + + public void executeInJsThread(JsContext.ScopeCallback paramScopeCallback) { + executeInJsThread(paramScopeCallback, false, false); + } + + public void executeInJsThread(final JsContext.ScopeCallback callback, final boolean forceNotPending, boolean paramBoolean2) { + if (this.mJsThreadHandler == null) + return; + Runnable runnable = new Runnable() { + public void run() { + if (forceNotPending || JsRuntime.this.mJsSdkLoadState == 0) + try { + JsRuntime.this.mJsThread.getJsContext().run(callback); + return; + } catch (Exception exception) { + JsRuntimeErrorReporter jsRuntimeErrorReporter = JsRuntimeErrorReporter.getInstance(); + StringBuilder stringBuilder = new StringBuilder("js context run fail: "); + stringBuilder.append(exception); + jsRuntimeErrorReporter.report(stringBuilder.toString(), "unCaughtScriptError"); + DebugUtil.outputError("JsRuntime", new Object[] { "js context run fail ", exception }); + return; + } + TimeLogger.getInstance().logTimeDuration(new String[] { "JsRuntime_addPendingCallback", Log.getStackTraceString(new Throwable()) }); + JsRuntime.this.mPendingScopeCallbackList.add(callback); + } + }; + if (paramBoolean2) { + this.mJsThreadHandler.postAtFrontOfQueue(runnable); + return; + } + this.mJsThreadHandler.post(runnable); + } + + public j getJsBridge() { + return (j)this.mJsBridge; + } + + protected abstract String getJsCoreFileName(); + + public int getJsSdkLoadState() { + return this.mJsSdkLoadState; + } + + public int getSetting(Context paramContext, Enum paramEnum, int paramInt) { + return SettingsDAO.getInt(paramContext, paramInt, new Enum[] { (Enum)Settings.BDP_HELIUM_CONFIG, paramEnum }); + } + + public String getSetting(Context paramContext, Enum paramEnum, String paramString) { + return SettingsDAO.getString(paramContext, paramString, new Enum[] { (Enum)Settings.BDP_HELIUM_CONFIG, paramEnum }); + } + + public boolean getSetting(Context paramContext, Enum paramEnum, boolean paramBoolean) { + return SettingsDAO.getBoolean(paramContext, paramBoolean, new Enum[] { (Enum)Settings.BDP_HELIUM_CONFIG, paramEnum }); + } + + protected final boolean loadJsSdk(JsScopedContext paramJsScopedContext) { + LoadStateManager.getIns().setLoadState("lib_js_loading"); + String str = getJsCoreFileName(); + TimeLogger timeLogger = TimeLogger.getInstance(); + StringBuilder stringBuilder = new StringBuilder("JsRuntime_load_"); + stringBuilder.append(str); + timeLogger.logTimeDuration(new String[] { stringBuilder.toString() }); + JsObject jsObject1 = paramJsScopedContext.global(); + JsObject jsObject2 = paramJsScopedContext.createObject(); + registFuntions2Js(paramJsScopedContext, jsObject2, this.mJsBridge); + jsObject1.set("ttJSCore", jsObject2); + TimeMeter timeMeter = TimeMeter.newAndStart(); + File file = new File(AppbrandConstant.getJsBundleDir((Context)AppbrandContext.getInst().getApplicationContext()), str); + try { + loadJsCoreFile(paramJsScopedContext, file, str, timeMeter); + return true; + } catch (Exception exception) { + return retryLoadJsCoreFile(paramJsScopedContext, file, str, timeMeter); + } + } + + public abstract void loadMainJs(MainJsLoadCallback paramMainJsLoadCallback); + + protected void registFuntions2Js(JsScopedContext paramJsScopedContext, JsObject paramJsObject, JsBridge paramJsBridge) { + AppBrandLogger.d("JsRuntime", new Object[] { "registFuntions2Js--------prepare---- " }); + for (Method method : JsBridge.class.getMethods()) { + Jscore jscore = method.getAnnotation(Jscore.class); + if (jscore != null && !TextUtils.isEmpty(jscore.jsfunctionname())) { + paramJsObject.set(method.getName(), paramJsScopedContext.createFunction(paramJsBridge, method)); + AppBrandLogger.d("JsRuntime", new Object[] { "registFuntions2Js", "registFuntions2Js finish : method name is:", method.getName(), "&jsfunctionname = ", jscore.jsfunctionname() }); + } else { + AppBrandLogger.d("JsRuntime", new Object[] { "registFuntions2Js method :", method.getName(), " ignored " }); + } + } + } + + public void release() { + TimeLogger.getInstance().logTimeDuration(new String[] { "JsRuntime_release", toString() }); + if (this.mJsThread != null) { + this.mJsBridge.release(); + this.mJsThreadHandler.post(new Runnable() { + public void run() { + JsRuntime.this.mJsThread.quit(); + JsRuntime jsRuntime = JsRuntime.this; + jsRuntime.mJsThread = null; + jsRuntime.mJsThreadHandler = null; + } + }); + } + HandlerThread handlerThread = this.mWorkThread; + if (handlerThread != null) { + handlerThread.quit(); + this.mWorkThread = null; + this.mWorkHandler = null; + } + } + + protected final void setupLoader() { + ((PkgService)AppbrandApplicationImpl.getInst().getService(PkgService.class)).onLocalPackageFileReady(new PkgService.LocalPackageFileReadyCallback() { + public void localPackageReady(String param1String) { + if (JsRuntime.this.mJsThread == null) + return; + StringBuilder stringBuilder = new StringBuilder("TTAppLoader.loadPackage: "); + stringBuilder.append(param1String); + AppBrandLogger.d("JsRuntime", new Object[] { stringBuilder.toString() }); + JsRuntime.this.mLoader.loadPackage(param1String); + JsRuntime.this.localPkgReady = true; + } + }); + this.mLoader.setLoadScriptSampleCallback(new LoadScriptSample.Callback() { + public void onSample(final LoadScriptSample sample) { + AutoTestManager autoTestManager = AppbrandApplicationImpl.getInst().getService(AutoTestManager.class); + autoTestManager.addEventWithValue("loadScriptBegin", sample.path, JsRuntime.toEpochTime(sample.start)); + autoTestManager.addEventWithValue("loadScriptEnd", sample.path, JsRuntime.toEpochTime(sample.end)); + JsRuntime.this.mWorkHandler.post(new Runnable() { + public void run() { + throw new RuntimeException("d2j fail translate: java.lang.RuntimeException: can not merge I and Z\r\n\tat com.googlecode.dex2jar.ir.TypeClass.merge(TypeClass.java:100)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeRef.updateTypeClass(TypeTransformer.java:174)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.provideAs(TypeTransformer.java:780)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.e1expr(TypeTransformer.java:496)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:713)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.s2stmt(TypeTransformer.java:820)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.sxStmt(TypeTransformer.java:843)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.analyze(TypeTransformer.java:206)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer.transform(TypeTransformer.java:44)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:162)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:414)\r\n\tat com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:42)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:128)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:509)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:406)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:422)\r\n\tat com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:172)\r\n\tat com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:272)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:108)\r\n\tat com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)\r\n"); + } + }); + } + }); + } + + public void showLoadError(String paramString) { + LoadHelper.handleMiniProcessFail(paramString); + } + + protected final void start() { + PreloadedJsContext preloadedJsContext = this.preloaded; + if (preloadedJsContext == null) { + this.mJsThread = new JsRunLoop(); + this.mJsThread.setup(this); + this.mJsThread.start(); + } else { + this.mJsThread = preloadedJsContext.getLoop(); + this.mJsThread.setup(this); + } + this.mWorkThread = HandlerThreadUtil.getBackgroundHandlerThread(); + this.mWorkThread.start(); + this.mJsThreadHandler = this.mJsThread.getHandler(); + this.mWorkHandler = new Handler(this.mWorkThread.getLooper()); + } + + static class CodeNullException extends Exception { + private CodeNullException() {} + } + + public static interface MainJsLoadCallback { + void afterEval(); + + void beforeEval(); + + void evalException(Exception param1Exception); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\JsRuntime.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/KeyboardIdCreator.java b/df_miniapp/classes/com/tt/miniapp/KeyboardIdCreator.java new file mode 100644 index 0000000..f84224d --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/KeyboardIdCreator.java @@ -0,0 +1,17 @@ +package com.tt.miniapp; + +import java.util.concurrent.atomic.AtomicInteger; + +public class KeyboardIdCreator { + private static final AtomicInteger ID = new AtomicInteger(0); + + public static int create() { + return ID.incrementAndGet(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\KeyboardIdCreator.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/LifeCycleManager.java b/df_miniapp/classes/com/tt/miniapp/LifeCycleManager.java new file mode 100644 index 0000000..264571a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/LifeCycleManager.java @@ -0,0 +1,328 @@ +package com.tt.miniapp; + +import com.tt.miniapphost.entity.AppInfoEntity; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class LifeCycleManager extends AppbrandServiceManager.ServiceBase { + private List mListeners = new ArrayList(); + + LifeCycleManager(AppbrandApplicationImpl paramAppbrandApplicationImpl) { + super(paramAppbrandApplicationImpl); + } + + private void notifyEventLocked(LifeCycleEvent paramLifeCycleEvent, Object paramObject) { + Iterator iterator = this.mListeners.iterator(); + while (true) { + if (iterator.hasNext()) { + Listener listener = iterator.next(); + Method method = listener.mInterestMethods[paramLifeCycleEvent.ordinal()]; + if (method != null) { + int i = (method.getParameterTypes()).length; + if (i == 0) { + try { + method.invoke(listener.mOwner, new Object[0]); + } catch (IllegalAccessException|java.lang.reflect.InvocationTargetException illegalAccessException) {} + continue; + } + if (i == 1) { + method.invoke(((Listener)illegalAccessException).mOwner, new Object[] { paramLifeCycleEvent }); + continue; + } + method.invoke(((Listener)illegalAccessException).mOwner, new Object[] { paramLifeCycleEvent, paramObject }); + } + continue; + } + return; + } + } + + public void addLifeCycleListener(Object paramObject) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: new com/tt/miniapp/LifeCycleManager$Listener + // 5: dup + // 6: aload_0 + // 7: aload_1 + // 8: invokespecial : (Lcom/tt/miniapp/LifeCycleManager;Ljava/lang/Object;)V + // 11: astore_1 + // 12: aload_0 + // 13: getfield mListeners : Ljava/util/List; + // 16: aload_1 + // 17: invokeinterface add : (Ljava/lang/Object;)Z + // 22: pop + // 23: aload_0 + // 24: monitorexit + // 25: return + // 26: astore_1 + // 27: aload_0 + // 28: monitorexit + // 29: aload_1 + // 30: athrow + // Exception table: + // from to target type + // 2 23 26 finally + } + + public void checkMethod(Method paramMethod) { + Class[] arrayOfClass = paramMethod.getParameterTypes(); + int i = arrayOfClass.length; + if (i == 0) + return; + if (arrayOfClass[0].equals(LifeCycleEvent.class)) { + if (i <= 2) + return; + throw new UnsupportedOperationException("LifecycleInterest注解的方法最多只能有两个参数"); + } + throw new IllegalArgumentException("LifecycleInterest注解的方法要么无参数,要么第一个参数必须为LifeCycleEvent类型"); + } + + public void notifyAppCreate() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_CREATE : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent; + // 6: aconst_null + // 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V + // 10: aload_0 + // 11: monitorexit + // 12: return + // 13: astore_1 + // 14: aload_0 + // 15: monitorexit + // 16: aload_1 + // 17: athrow + // Exception table: + // from to target type + // 2 10 13 finally + } + + public void notifyAppHide() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_HIDE : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent; + // 6: aconst_null + // 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V + // 10: aload_0 + // 11: monitorexit + // 12: return + // 13: astore_1 + // 14: aload_0 + // 15: monitorexit + // 16: aload_1 + // 17: athrow + // Exception table: + // from to target type + // 2 10 13 finally + } + + public void notifyAppInfoInited(AppInfoEntity paramAppInfoEntity) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_INFO_INITED : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent; + // 6: aload_1 + // 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V + // 10: aload_0 + // 11: monitorexit + // 12: return + // 13: astore_1 + // 14: aload_0 + // 15: monitorexit + // 16: aload_1 + // 17: athrow + // Exception table: + // from to target type + // 2 10 13 finally + } + + public void notifyAppRoute() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_ROUTE : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent; + // 6: aconst_null + // 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V + // 10: aload_0 + // 11: monitorexit + // 12: return + // 13: astore_1 + // 14: aload_0 + // 15: monitorexit + // 16: aload_1 + // 17: athrow + // Exception table: + // from to target type + // 2 10 13 finally + } + + public void notifyAppShow() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_SHOW : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent; + // 6: aconst_null + // 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V + // 10: aload_0 + // 11: monitorexit + // 12: return + // 13: astore_1 + // 14: aload_0 + // 15: monitorexit + // 16: aload_1 + // 17: athrow + // Exception table: + // from to target type + // 2 10 13 finally + } + + public void notifyAppStartLaunching() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_START_LAUNCHING : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent; + // 6: aconst_null + // 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V + // 10: aload_0 + // 11: monitorexit + // 12: return + // 13: astore_1 + // 14: aload_0 + // 15: monitorexit + // 16: aload_1 + // 17: athrow + // Exception table: + // from to target type + // 2 10 13 finally + } + + public void notifyMiniAppInstallSuccess() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getstatic com/tt/miniapp/LifeCycleManager$LifeCycleEvent.ON_APP_INSTALL_SUCCESS : Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent; + // 6: aconst_null + // 7: invokespecial notifyEventLocked : (Lcom/tt/miniapp/LifeCycleManager$LifeCycleEvent;Ljava/lang/Object;)V + // 10: aload_0 + // 11: monitorexit + // 12: return + // 13: astore_1 + // 14: aload_0 + // 15: monitorexit + // 16: aload_1 + // 17: athrow + // Exception table: + // from to target type + // 2 10 13 finally + } + + public void removeLifeCycleListener(AppbrandServiceManager.ServiceBase paramServiceBase) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mListeners : Ljava/util/List; + // 6: invokeinterface iterator : ()Ljava/util/Iterator; + // 11: astore_2 + // 12: aload_2 + // 13: invokeinterface hasNext : ()Z + // 18: ifeq -> 43 + // 21: aload_2 + // 22: invokeinterface next : ()Ljava/lang/Object; + // 27: checkcast com/tt/miniapp/LifeCycleManager$Listener + // 30: getfield mOwner : Ljava/lang/Object; + // 33: aload_1 + // 34: if_acmpne -> 12 + // 37: aload_2 + // 38: invokeinterface remove : ()V + // 43: aload_0 + // 44: monitorexit + // 45: return + // 46: astore_1 + // 47: aload_0 + // 48: monitorexit + // 49: goto -> 54 + // 52: aload_1 + // 53: athrow + // 54: goto -> 52 + // Exception table: + // from to target type + // 2 12 46 finally + // 12 43 46 finally + } + + public enum LifeCycleEvent { + ON_APP_CREATE, ON_APP_HIDE, ON_APP_INFO_INITED, ON_APP_INSTALL_SUCCESS, ON_APP_ROUTE, ON_APP_SHOW, ON_APP_START_LAUNCHING; + + static { + ON_APP_HIDE = new LifeCycleEvent("ON_APP_HIDE", 4); + ON_APP_INSTALL_SUCCESS = new LifeCycleEvent("ON_APP_INSTALL_SUCCESS", 5); + ON_APP_ROUTE = new LifeCycleEvent("ON_APP_ROUTE", 6); + $VALUES = new LifeCycleEvent[] { ON_APP_CREATE, ON_APP_START_LAUNCHING, ON_APP_INFO_INITED, ON_APP_SHOW, ON_APP_HIDE, ON_APP_INSTALL_SUCCESS, ON_APP_ROUTE }; + } + } + + @Retention(RetentionPolicy.RUNTIME) + @Target({ElementType.METHOD}) + public static @interface LifecycleInterest { + LifeCycleManager.LifeCycleEvent[] value(); + } + + class Listener { + Method[] mInterestMethods; + + Object mOwner; + + Listener(Object param1Object) { + this.mOwner = param1Object; + this.mInterestMethods = new Method[(LifeCycleManager.LifeCycleEvent.values()).length]; + for (Method method : this.mOwner.getClass().getMethods()) { + if (method.isAnnotationPresent((Class)LifeCycleManager.LifecycleInterest.class)) { + LifeCycleManager.LifeCycleEvent[] arrayOfLifeCycleEvent = ((LifeCycleManager.LifecycleInterest)method.getAnnotation(LifeCycleManager.LifecycleInterest.class)).value(); + int j = arrayOfLifeCycleEvent.length; + int i = 0; + while (i < j) { + LifeCycleManager.LifeCycleEvent lifeCycleEvent = arrayOfLifeCycleEvent[i]; + if (this.mInterestMethods[lifeCycleEvent.ordinal()] == null) { + LifeCycleManager.this.checkMethod(method); + this.mInterestMethods[lifeCycleEvent.ordinal()] = method; + i++; + continue; + } + StringBuilder stringBuilder = new StringBuilder("超过一个方法注解了相同的事件, "); + stringBuilder.append(lifeCycleEvent.name()); + stringBuilder.append("class: \""); + stringBuilder.append(param1Object.getClass().getSimpleName()); + stringBuilder.append("\", method: \""); + stringBuilder.append(this.mInterestMethods[lifeCycleEvent.ordinal()]); + stringBuilder.append("\" 和 \""); + stringBuilder.append(method); + stringBuilder.append("\""); + throw new IllegalStateException(stringBuilder.toString()); + } + } + } + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\LifeCycleManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/MiniAppInitializer.java b/df_miniapp/classes/com/tt/miniapp/MiniAppInitializer.java new file mode 100644 index 0000000..1f56f32 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/MiniAppInitializer.java @@ -0,0 +1,70 @@ +package com.tt.miniapp; + +import android.app.Application; +import android.content.Context; +import android.util.Log; +import com.storage.async.Action; +import com.storage.async.Scheduler; +import com.tt.miniapp.manager.basebundle.BaseBundleManager; +import com.tt.miniapp.notification.MiniAppNotificationManager; +import com.tt.miniapp.process.AppProcessManager; +import com.tt.miniapp.process.CacheCrossProcessDataInterceptor; +import com.tt.miniapp.process.ServiceBindManager; +import com.tt.miniapp.process.bridge.InnerHostProcessBridge; +import com.tt.miniapp.process.interceptor.ISyncCallInterceptor; +import com.tt.miniapp.rtc.RtcHelper; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.util.ChannelUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.LaunchThreadPool; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import com.tt.miniapphost.process.bridge.ProcessCallControlBridge; +import com.tt.miniapphost.util.ProcessUtil; + +public class MiniAppInitializer { + public static void initInMiniAppProcess() { + AppBrandLogger.i("MiniAppInitializer", new Object[] { "initInMiniAppProcess" }); + ThreadUtil.runOnWorkThread(new Action() { + public final void act() { + Application application = AppbrandContext.getInst().getApplicationContext(); + ServiceBindManager.getInstance().bindHostService(); + MiniAppNotificationManager.init((Context)AppbrandContext.getInst().getApplicationContext()); + InnerHostProcessBridge.notifyMiniAppProcessUsed(ProcessUtil.getCurProcessName((Context)application)); + } + }, (Scheduler)LaunchThreadPool.getInst()); + if (ChannelUtil.isLocalTest()) + Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler(Thread.getDefaultUncaughtExceptionHandler()) { + public final void uncaughtException(Thread param1Thread, Throwable param1Throwable) { + InnerHostProcessBridge.notifyMiniAppProcessCrash(ProcessUtil.getCurProcessName((Context)AppbrandContext.getInst().getApplicationContext()), Log.getStackTraceString(param1Throwable)); + Thread.UncaughtExceptionHandler uncaughtExceptionHandler = defaultUncaughtExceptionHandler; + if (uncaughtExceptionHandler != null) + uncaughtExceptionHandler.uncaughtException(param1Thread, param1Throwable); + } + }); + BaseBundleManager.getInst().preload((Context)AppbrandContext.getInst().getApplicationContext()); + ProcessCallControlBridge.setSyncInterceptor((ISyncCallInterceptor)new CacheCrossProcessDataInterceptor()); + AppProcessManager.registerHostProcessLifeListener(new ServiceBindManager.HostProcessLifeListener() { + public final void onAlive(boolean param1Boolean) { + if (param1Boolean) + InnerHostProcessBridge.setTmaLaunchFlag(); + } + + public final void onDied() { + if (AppbrandContext.getInst().getCurrentActivity() == null) { + AppBrandLogger.i("MiniAppInitializer", new Object[] { "killCurrentPreloadProcessWhenHostProcessDied" }); + ProcessUtil.killCurrentMiniAppProcess((Context)AppbrandContext.getInst().getApplicationContext()); + return; + } + AppBrandMonitor.reportError("mp_special_error", "host process died", null); + } + }); + RtcHelper.tryPreloadRtcSo(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\MiniAppInitializer.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/RequestInceptUtil.java b/df_miniapp/classes/com/tt/miniapp/RequestInceptUtil.java new file mode 100644 index 0000000..3affb4d --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/RequestInceptUtil.java @@ -0,0 +1,56 @@ +package com.tt.miniapp; + +import com.tt.miniapp.util.ToolUtils; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.util.ProcessUtil; +import com.tt.option.q.d; +import java.util.Map; +import okhttp3.ac; + +public class RequestInceptUtil { + public static String getRequestReferer() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(AppbrandConstant.OpenApi.getInst().getRequestRefere()); + if (ProcessUtil.isMiniappProcess()) { + AppInfoEntity appInfoEntity = AppbrandApplication.getInst().getAppInfo(); + if (appInfoEntity != null && appInfoEntity.appId != null && appInfoEntity.version != null) { + stringBuilder.append("?appid="); + stringBuilder.append(appInfoEntity.appId); + stringBuilder.append("&version="); + stringBuilder.append(appInfoEntity.version); + } + } + return stringBuilder.toString(); + } + + public static void inceptRequest(ac.a parama) { + parama.b("User-Agent"); + String str = ToolUtils.getCustomUA(); + AppBrandLogger.d("tma_RequestInceptUtil", new Object[] { "custom UA = ", str }); + parama.b("User-Agent", str); + if (d.b()) + parama.b("referer"); + parama.b("referer", getRequestReferer()); + } + + public static void interceptRequest(Map paramMap) { + for (String str1 : paramMap.keySet()) { + if (str1.equalsIgnoreCase("User-Agent")) + paramMap.remove(str1); + if (str1.equalsIgnoreCase("referer") && d.b()) + paramMap.remove(str1); + } + String str = ToolUtils.getCustomUA(); + AppBrandLogger.d("tma_RequestInceptUtil", new Object[] { "custom UA = ", str }); + paramMap.put("User-Agent", str); + paramMap.put("referer", getRequestReferer()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\RequestInceptUtil.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/TTAppLoaderImpl.java b/df_miniapp/classes/com/tt/miniapp/TTAppLoaderImpl.java new file mode 100644 index 0000000..f626682 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/TTAppLoaderImpl.java @@ -0,0 +1,278 @@ +package com.tt.miniapp; + +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; +import com.he.Monitor; +import com.he.loader.Loader; +import com.he.loader.Resolver; +import com.storage.async.Action; +import com.storage.async.Scheduler; +import com.tt.miniapp.net.AppbrandCallback; +import com.tt.miniapp.storage.filestorge.FileManager; +import com.tt.miniapp.streamloader.StreamLoader; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.LaunchThreadPool; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import java.io.File; +import java.io.IOException; +import java.io.RandomAccessFile; +import okhttp3.ac; +import okhttp3.ae; +import okhttp3.e; +import okhttp3.f; +import okhttp3.y; +import org.json.JSONException; +import org.json.JSONObject; + +public class TTAppLoaderImpl implements Monitor.Impl, Loader { + private static final y okhttpClient = new y(); + + private void report(String paramString, int paramInt, JSONObject paramJSONObject) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("event", paramString); + jSONObject.put("status", paramInt); + } catch (JSONException jSONException) { + AppBrandLogger.eWithThrowable("tma_TTAppLoaderImpl", "unknown json exception", (Throwable)jSONException); + } + AppBrandMonitor.event("mp_he_report", jSONObject, null, paramJSONObject); + } + + public void load(String paramString, final Resolver resolver) { + try { + File file = new File(FileManager.inst().getRealFilePath(paramString)); + final String canonicalPath = file.getCanonicalPath(); + if (StreamLoader.findFile(str) != null) { + if (StreamLoader.findFile(str) != null) { + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + byte[] arrayOfByte2 = StreamLoader.loadByteFromStream(canonicalPath); + byte[] arrayOfByte1 = arrayOfByte2; + if (arrayOfByte2 == null) + arrayOfByte1 = new byte[0]; + resolver.resolve(arrayOfByte1, 0, arrayOfByte1.length); + } + }(Scheduler)LaunchThreadPool.getInst()); + return; + } + AppBrandLogger.d("tma_TTAppLoaderImpl", new Object[] { "file ", paramString, " doesn't loaded, wait for resolve" }); + return; + } + AppBrandLogger.d("tma_TTAppLoaderImpl", new Object[] { "loadFile from file ", paramString }); + if (file.exists() && file.isFile() && FileManager.inst().canRead(file)) { + resolver.resolve(file); + return; + } + StringBuilder stringBuilder = new StringBuilder("cannot read file "); + stringBuilder.append(paramString); + throw new IOException(stringBuilder.toString()); + } catch (IOException iOException) { + AppBrandLogger.e("tma_TTAppLoaderImpl", new Object[] { Log.getStackTraceString(iOException) }); + resolver.reject(iOException); + return; + } catch (Exception exception) { + AppBrandLogger.e("tma_TTAppLoaderImpl", new Object[] { Log.getStackTraceString(exception) }); + return; + } + } + + public Uri loadMedia(String paramString) { + return !TextUtils.isEmpty(paramString) ? ((paramString.startsWith("http://") || paramString.startsWith("https://")) ? Uri.parse(paramString) : Uri.fromFile(new File(StreamLoader.waitExtractFinishIfNeeded(FileManager.inst().getRealFilePath(paramString))))) : null; + } + + public byte[] loadSync(String paramString) { + try { + File file = new File(FileManager.inst().getRealFilePath(paramString)); + String str = file.getCanonicalPath(); + if (StreamLoader.findFile(str) != null) { + if (StreamLoader.findFile(str) != null) + return StreamLoader.loadByteFromStream(str); + AppBrandLogger.d("tma_TTAppLoaderImpl", new Object[] { "file ", paramString, " doesn't loaded, wait for resolve" }); + } else { + RandomAccessFile randomAccessFile; + AppBrandLogger.d("tma_TTAppLoaderImpl", new Object[] { "loadFile from file ", paramString }); + if (file.exists() && file.isFile() && FileManager.inst().canRead(file)) { + randomAccessFile = new RandomAccessFile(file, "r"); + byte[] arrayOfByte = new byte[(int)randomAccessFile.length()]; + randomAccessFile.readFully(arrayOfByte); + randomAccessFile.close(); + return arrayOfByte; + } + StringBuilder stringBuilder = new StringBuilder("cannot read file "); + stringBuilder.append((String)randomAccessFile); + AppBrandLogger.d("tma_TTAppLoaderImpl", new Object[] { stringBuilder.toString() }); + } + } catch (Exception exception) { + AppBrandLogger.e("tma_TTAppLoaderImpl", new Object[] { Log.getStackTraceString(exception) }); + } + return null; + } + + public void loadUrl(String paramString, final Resolver resolver) { + StringBuilder stringBuilder; + if (paramString.startsWith("ttfile://")) { + load(paramString, resolver); + return; + } + try { + ac ac = (new ac.a()).a(paramString).c(); + } catch (RuntimeException runtimeException) { + AppBrandLogger.e("tma_TTAppLoaderImpl", new Object[] { runtimeException }); + runtimeException = null; + } + if (runtimeException == null) { + if (resolver != null) { + stringBuilder = new StringBuilder("unexpected url: "); + stringBuilder.append(paramString); + resolver.reject(new IOException(stringBuilder.toString())); + } + return; + } + okhttpClient.a((ac)stringBuilder).a((f)new AppbrandCallback() { + public String callbackFrom() { + return "4004"; + } + + public void onFailure(e param1e, IOException param1IOException) { + AppBrandLogger.e("tma_TTAppLoaderImpl", new Object[] { Log.getStackTraceString(param1IOException) }); + resolver.reject(param1IOException); + } + + public void onSuccess(e param1e, ae param1ae) throws IOException { + if (param1ae.g != null) { + byte[] arrayOfByte = param1ae.g.bytes(); + resolver.resolve(arrayOfByte, 0, arrayOfByte.length); + return; + } + AppBrandLogger.e("tma_TTAppLoaderImpl", new Object[] { "response.body() == null" }); + } + }); + } + + public void onAsyncCompile(int paramInt1, int paramInt2, int paramInt3) { + if (paramInt1 != 0) { + if (paramInt2 == 0) + return; + JSONObject jSONObject = new JSONObject(); + double d2 = paramInt2; + Double.isNaN(d2); + double d1 = d2 / 1000.0D; + try { + jSONObject.put("duration", d1); + d1 = paramInt1; + Double.isNaN(d1); + double d = d1 / 1.024D; + Double.isNaN(d2); + d2 = d / d2; + jSONObject.put("speed", d2); + d2 = paramInt3; + Double.isNaN(d2); + Double.isNaN(d1); + d1 = d2 / d1; + jSONObject.put("inflation", d1); + } catch (JSONException jSONException) {} + AppBrandMonitor.event("mp_js_async_compile", null, jSONObject, null); + } + } + + public void onAurumInitFail(int paramInt1, int paramInt2) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("result", paramInt2); + } catch (JSONException jSONException) { + AppBrandLogger.eWithThrowable("tma_TTAppLoaderImpl", "unknown json exception", (Throwable)jSONException); + } + report("aurum_init", paramInt1, jSONObject); + } + + public void onCameraOpenFail(int paramInt1, int paramInt2, Throwable paramThrowable) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("id", paramInt1); + jSONObject.put("retries", paramInt2); + } catch (JSONException jSONException) { + AppBrandLogger.eWithThrowable("tma_TTAppLoaderImpl", "unknown json exception", (Throwable)jSONException); + } + report("camera_open", 1, jSONObject); + StringBuilder stringBuilder = new StringBuilder("com.he.Monitor.onCameraOpenFail:"); + stringBuilder.append(paramInt1); + stringBuilder.append(" retries:"); + stringBuilder.append(paramInt2); + AppBrandLogger.eWithThrowable("tma_TTAppLoaderImpl", stringBuilder.toString(), paramThrowable); + } + + public void onHeliumAddViewFail() { + report("addview", 1, null); + } + + public void onHeliumSetupFail() { + report("setup", 1, null); + } + + public void onLoadEffectFail(Throwable paramThrowable) { + report("load_effect", 1, null); + AppBrandLogger.eWithThrowable("tma_TTAppLoaderImpl", "com.he.Monitor.onLoadEffectFail", paramThrowable); + } + + public void onRTCLogReport(String paramString1, String paramString2) { + try { + AppBrandMonitor.log(paramString1, new JSONObject(paramString2)); + return; + } catch (JSONException jSONException) { + return; + } + } + + public void onSmashModelDownloadFail(String paramString, int paramInt, long paramLong, Throwable paramThrowable) { + JSONObject jSONObject1 = new JSONObject(); + JSONObject jSONObject2 = new JSONObject(); + try { + jSONObject1.put("name", paramString); + jSONObject1.put("status", paramInt); + jSONObject2.put("duration", paramLong); + } catch (JSONException jSONException) { + AppBrandLogger.eWithThrowable("tma_TTAppLoaderImpl", "unknown json exception", (Throwable)jSONException); + } + AppBrandMonitor.event("mp_smash_download", jSONObject1, jSONObject2, null); + StringBuilder stringBuilder = new StringBuilder("com.he.Monitor.onSmashDownLoadFail:"); + stringBuilder.append(paramString); + stringBuilder.append(" status:"); + stringBuilder.append(paramInt); + AppBrandLogger.eWithThrowable("tma_TTAppLoaderImpl", stringBuilder.toString(), paramThrowable); + } + + public void onSmashModelDownloadSuccess(String paramString, long paramLong) { + JSONObject jSONObject1 = new JSONObject(); + JSONObject jSONObject2 = new JSONObject(); + try { + jSONObject1.put("name", paramString); + jSONObject1.put("status", 0); + jSONObject2.put("duration", paramLong); + } catch (JSONException jSONException) { + AppBrandLogger.eWithThrowable("tma_TTAppLoaderImpl", "unknown json exception", (Throwable)jSONException); + } + AppBrandMonitor.event("mp_smash_download", jSONObject1, jSONObject2, null); + } + + public void onSmashModelMapFail(String paramString, Throwable paramThrowable) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("name", paramString); + jSONObject.put("status", 4); + } catch (JSONException jSONException) { + AppBrandLogger.eWithThrowable("tma_TTAppLoaderImpl", "unknown json exception", (Throwable)jSONException); + } + AppBrandMonitor.event("mp_smash_download", jSONObject, null, null); + StringBuilder stringBuilder = new StringBuilder("com.he.Monitor.onSmashModelMapFail:"); + stringBuilder.append(paramString); + AppBrandLogger.eWithThrowable("tma_TTAppLoaderImpl", stringBuilder.toString(), paramThrowable); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\TTAppLoaderImpl.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/TTAppbrandTabUI.java b/df_miniapp/classes/com/tt/miniapp/TTAppbrandTabUI.java new file mode 100644 index 0000000..bd3d1a7 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/TTAppbrandTabUI.java @@ -0,0 +1,737 @@ +package com.tt.miniapp; + +import android.app.Activity; +import android.content.Context; +import android.content.ContextWrapper; +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.FragmentActivity; +import android.text.TextUtils; +import android.view.Choreographer; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.FrameLayout; +import com.storage.async.Action; +import com.storage.async.Schedulers; +import com.tt.frontendapiinterface.b; +import com.tt.frontendapiinterface.c; +import com.tt.frontendapiinterface.e; +import com.tt.frontendapiinterface.k; +import com.tt.miniapp.ad.app.video.VideoAdMgr; +import com.tt.miniapp.badcase.BlockPageManager; +import com.tt.miniapp.base.activity.IActivityResultHandler; +import com.tt.miniapp.base.ui.viewwindow.ViewWindow; +import com.tt.miniapp.debug.PerformanceService; +import com.tt.miniapp.debug.SwitchManager; +import com.tt.miniapp.dialog.LoadHelper; +import com.tt.miniapp.errorcode.ErrorCode; +import com.tt.miniapp.event.Event; +import com.tt.miniapp.event.InnerEventHelper; +import com.tt.miniapp.event.LoadStateManager; +import com.tt.miniapp.event.external.search.SearchEventHelper; +import com.tt.miniapp.exit.AppBrandExitManager; +import com.tt.miniapp.guide.ReenterGuideHelper; +import com.tt.miniapp.jsbridge.ApiPermissionManager; +import com.tt.miniapp.jsbridge.JsRuntimeManager; +import com.tt.miniapp.keyboarddetect.KeyboardHeightProvider; +import com.tt.miniapp.launch.MiniAppLaunchConfig; +import com.tt.miniapp.launchschedule.ILaunchProgressListener; +import com.tt.miniapp.launchschedule.LaunchScheduler; +import com.tt.miniapp.manager.UserInfoManager; +import com.tt.miniapp.monitor.BaseMonitorTask; +import com.tt.miniapp.monitor.FpsMonitorTask; +import com.tt.miniapp.monitor.MiniAppPerformanceDialog; +import com.tt.miniapp.monitor.MonitorHandler; +import com.tt.miniapp.msg.favorite.ApiGetFavoritesList; +import com.tt.miniapp.page.AppbrandHomePageViewWindow; +import com.tt.miniapp.page.AppbrandSinglePage; +import com.tt.miniapp.page.AppbrandViewWindowBase; +import com.tt.miniapp.page.AppbrandViewWindowRoot; +import com.tt.miniapp.permission.BrandPermissionUtils; +import com.tt.miniapp.permission.PermissionsManager; +import com.tt.miniapp.preload.PreloadManager; +import com.tt.miniapp.process.bridge.InnerHostProcessBridge; +import com.tt.miniapp.route.PageRouter; +import com.tt.miniapp.route.RouteEventCtrl; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.titlebar.BaseTitleBar; +import com.tt.miniapp.titlebar.ITitleBar; +import com.tt.miniapp.titlebar.TitleBarControl; +import com.tt.miniapp.user.TmaUserManager; +import com.tt.miniapp.util.JsCoreUtils; +import com.tt.miniapp.util.RenderSnapShotManager; +import com.tt.miniapp.util.SystemInfoUtil; +import com.tt.miniapp.util.TimeLineReporter; +import com.tt.miniapp.util.TimeLogger; +import com.tt.miniapp.util.ToolUtils; +import com.tt.miniapp.view.LaunchLoadingView; +import com.tt.miniapp.view.MiniAppContainerView; +import com.tt.miniapp.view.SizeDetectFrameLayout; +import com.tt.miniapp.view.swipeback.EventParamsValue; +import com.tt.miniapp.webapp.TTWebAppViewWindow; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.ModeManager; +import com.tt.miniapphost.NativeModule; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.language.LanguageChangeListener; +import com.tt.miniapphost.language.LocaleManager; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.util.CharacterUtils; +import com.tt.miniapphost.util.TimeMeter; +import com.tt.miniapphost.util.UIUtils; +import com.tt.option.ad.h; +import com.tt.option.n.c; +import d.f.a.a; +import d.x; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import org.json.JSONObject; + +public class TTAppbrandTabUI extends BaseActivityProxy implements e, k, ILaunchProgressListener, SystemInfoUtil.IActivityRootView, SizeDetectFrameLayout.IWindowSizeChangeListener, LanguageChangeListener { + private List IKeyboardObserverList = new ArrayList(); + + private boolean isTabRemove; + + public KeyboardHeightProvider keyboardHeightProvider; + + private IActivityResultHandler mActivityResultHandler; + + private View mCloseBtn; + + private ImmersedStatusBarHelper mImmersedStatusBarHelper; + + private boolean mNeedReportResultOnResume; + + private boolean mReportedFCP; + + private boolean mReportedFirstDOMReady; + + public MiniAppContainerView mRootLayout; + + private int mSavedScreenOrientation = -1; + + private VideoAdMgr mVideoAdMgr; + + public FrameLayout mWindowRootContainer; + + public TTAppbrandTabUI(FragmentActivity paramFragmentActivity) { + super(paramFragmentActivity); + ((TimeLineReporter)this.mApp.getService(TimeLineReporter.class)).recordLaunchStartTime(); + } + + private void doPause() { + this.keyboardHeightProvider.setKeyboardHeightObserver(null); + this.mSavedScreenOrientation = this.mActivity.getRequestedOrientation(); + } + + private void doResume() { + if (this.mSavedScreenOrientation != this.mActivity.getRequestedOrientation()) + UIUtils.setActivityOrientation((Activity)this.mActivity, this.mSavedScreenOrientation); + this.keyboardHeightProvider.setKeyboardHeightObserver(this); + reportResultIfNeed(); + } + + private void exitInternal(final int exitType) { + Runnable runnable = new Runnable() { + public void run() { + ToolUtils.onActivityExit((Activity)TTAppbrandTabUI.this.mActivity, exitType); + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { " moveTaskToBack " }); + } + }; + if (exitType != 10) { + ReenterGuideHelper.checkReenterGuideTip((Activity)this.mActivity, runnable); + return; + } + runnable.run(); + } + + private ImmersedStatusBarHelper.ImmersedStatusBarConfig getImmersedStatusBarConfig() { + return new ImmersedStatusBarHelper.ImmersedStatusBarConfig(); + } + + private String handleStartPage(String paramString) { + return !TextUtils.isEmpty(paramString) ? ((LaunchScheduler)this.mApp.getService(LaunchScheduler.class)).getNormalStartPage(paramString) : ""; + } + + private boolean hasNativeWebView() { + AppbrandViewWindowBase appbrandViewWindowBase = (AppbrandViewWindowBase)((PageRouter)this.mApp.getService(PageRouter.class)).getViewWindowRoot().getTopView(); + if (appbrandViewWindowBase != null) { + AppbrandSinglePage appbrandSinglePage = appbrandViewWindowBase.getCurrentPage(); + if (appbrandSinglePage != null && appbrandSinglePage.getNativeViewManager().getCurrentNativeWebView() != null) + return true; + } + return false; + } + + public static void initFavoriteList() { + ThreadUtil.runOnWorkThread(new Action() { + public final void act() { + boolean bool; + if (InnerHostProcessBridge.getFavoriteSet() == null) { + bool = true; + } else { + bool = false; + } + if (bool && (UserInfoManager.getHostClientUserInfo()).isLogin) + ApiGetFavoritesList.getCurrentUserMiniAppFavoriteListFromNet(); + } + }, Schedulers.longIO()); + } + + private void initLoadingView() { + this.mLaunchLoadingView = (LaunchLoadingView)((PreloadManager)this.mApp.getService(PreloadManager.class)).getPreloadedView(1); + this.mLaunchLoadingView.setLoadStartTime(this.mLoadStartTime); + this.mLaunchLoadingView.initWithActivity((Activity)this.mActivity); + this.mLaunchLoadingView.hideBottomTip(); + final RenderSnapShotManager renderSnapShotManager = this.mApp.getService(RenderSnapShotManager.class); + if (renderSnapShotManager.isSnapShotRender()) { + if (!TextUtils.isEmpty(renderSnapShotManager.getSnapShotErrorArgs())) { + this.mRootLayout.addView((View)this.mLaunchLoadingView); + postError(renderSnapShotManager.getSnapShotErrorArgs()); + } else { + this.isShowingLoadingView = false; + AppbrandContext.mainHandler.postDelayed(new Runnable() { + public void run() { + if (!renderSnapShotManager.isSnapShotReady()) { + ((TimeLogger)TTAppbrandTabUI.this.mApp.getService(TimeLogger.class)).logTimeDuration(new String[] { "TTAppbrandTabUI_firstrender_showloading" }, ); + TTAppbrandTabUI tTAppbrandTabUI = TTAppbrandTabUI.this; + tTAppbrandTabUI.isShowingLoadingView = true; + tTAppbrandTabUI.mRootLayout.addView((View)TTAppbrandTabUI.this.mLaunchLoadingView); + } + } + }, 1000L); + } + } else { + this.mRootLayout.addView((View)this.mLaunchLoadingView); + } + this.mCloseBtn = this.mLaunchLoadingView.findViewById(2097545405); + this.mLaunchLoadingView.updateViews(this.mApp.getAppInfo()); + this.mCloseBtn.setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + Event.builder("mp_close_btn_click").flush(); + AppBrandLogger.e("TTAppbrandTabUI", new Object[] { "mCloseBtn" }); + if (UIUtils.isViewVisible((View)TTAppbrandTabUI.this.mLaunchLoadingView) && TTAppbrandTabUI.this.mApp.getAppInfo() != null) { + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "onBackPressed cancel" }); + InnerEventHelper.mpLoadResultInner(TimeMeter.stop(TTAppbrandTabUI.this.mLoadStartTime), "cancel", "exit_close", TTAppbrandTabUI.this.mLaunchProfileTime.getTime(), TimeMeter.stop(TTAppbrandTabUI.this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + } + TTAppbrandTabUI.this.mApp.setStopReason("click_close_btn"); + EventParamsValue.PARAMS_EXIT_TYPE = "btn"; + EventParamsValue.IS_OTHER_FLAG = false; + ToolUtils.onActivityExit((Activity)TTAppbrandTabUI.this.mActivity, 2); + } + }); + } + + private void initPerformanceDialog() { + if (this.mApp.getAppInfo() != null) { + if (!this.mApp.getAppInfo().isLocalTest()) + return; + if (((SwitchManager)this.mApp.getService(SwitchManager.class)).isPerformanceSwitchOn()) + MiniAppPerformanceDialog.showPerformanceDialog((Context)this.mActivity, new MiniAppPerformanceDialog.IDismissCallback() { + public void onDismiss() {} + }); + } + } + + public static void preload(Context paramContext) {} + + private void reportFirstDOMReady() { + if (this.mReportedFirstDOMReady) + return; + this.mReportedFirstDOMReady = true; + InnerEventHelper.mpLoadDomReady(TimeMeter.nowAfterStart(this.mLoadStartTime), this.mLaunchProfileTime.getTime(), TimeMeter.nowAfterStart(this.mEntranceClickTimeMeter), this.mHasActivityStoped); + } + + private void reportResult() { + LoadStateManager.getIns().stopRenderTime(); + TimeMeter.stop(this.mLoadStartTime); + TimeMeter.stop(this.mEntranceClickTimeMeter); + SearchEventHelper.loadDetailEvent(false, false, TimeMeter.stop(this.mLoadStartTime), 1, CharacterUtils.empty()); + if (!this.mApp.getForeBackgroundManager().isBackground()) { + LoadStateManager.getIns().reportPreloadResult("success"); + InnerEventHelper.mpLoadResultSuccess(TimeMeter.stop(this.mLoadStartTime), this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState(), this.mHasActivityStoped); + this.mLaunchDuration = this.mLoadingViewShowTimes.getTime(); + MiniAppPerformanceDialog.saveLaunchTime(this.mLaunchProfileTime.getTime()); + InnerEventHelper.mpLaunch(this.mLaunchDuration); + return; + } + this.mNeedReportResultOnResume = true; + } + + private void reportResultIfNeed() { + if (!this.mNeedReportResultOnResume) + return; + this.mNeedReportResultOnResume = false; + LoadStateManager.getIns().reportPreloadResult("success"); + InnerEventHelper.mpLoadResultSuccess(TimeMeter.stop(this.mLoadStartTime), this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState(), this.mHasActivityStoped); + this.mLaunchDuration = this.mLoadingViewShowTimes.getTime(); + InnerEventHelper.mpLaunch(this.mLaunchDuration); + } + + private void switchToLibraMiniApp(final AppInfoEntity appInfo) { + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "requestAppInfoSuccess isWebApp" }); + TTWebAppViewWindow tTWebAppViewWindow = TTWebAppViewWindow.createInstance((Context)TTAppbrandTabUI.this.getActivity(), TTAppbrandTabUI.this, appInfo); + AppbrandViewWindowRoot appbrandViewWindowRoot = ((PageRouter)TTAppbrandTabUI.this.mApp.getService(PageRouter.class)).getViewWindowRoot(); + appbrandViewWindowRoot.getAppbrandHomePage().setDragEnable(true); + appbrandViewWindowRoot.showViewWindow((ViewWindow)tTWebAppViewWindow, null); + if (appbrandViewWindowRoot.getContainer().getParent() != TTAppbrandTabUI.this.mWindowRootContainer) { + UIUtils.removeParentView((View)appbrandViewWindowRoot.getContainer()); + TTAppbrandTabUI.this.mWindowRootContainer.addView((View)appbrandViewWindowRoot.getContainer()); + } + } + }); + } + + public void doBack(String paramString1, String paramString2, boolean paramBoolean, int paramInt) { + this.mApp.setStopReason(paramString1); + EventParamsValue.PARAMS_EXIT_TYPE = paramString2; + EventParamsValue.IS_OTHER_FLAG = paramBoolean; + exitInternal(paramInt); + } + + public View findViewById(int paramInt) { + return (this.mHomeLayout != null) ? this.mHomeLayout.findViewById(paramInt) : null; + } + + public View getActivityRootView() { + return (this.mActivity == null) ? null : this.mActivity.findViewById(16908290); + } + + public FrameLayout getRootView() { + return (FrameLayout)this.mRootLayout; + } + + public ITitleBar getTitleBar() { + AppbrandViewWindowBase appbrandViewWindowBase = (AppbrandViewWindowBase)((PageRouter)this.mApp.getService(PageRouter.class)).getViewWindowRoot().getTopView(); + return (ITitleBar)((appbrandViewWindowBase == null || appbrandViewWindowBase.getCurrentPage() == null) ? BaseTitleBar.EMPTY : appbrandViewWindowBase.getCurrentPage().getTitleBar()); + } + + public void goback() { + onBackPressed(); + } + + public void hideLoadShowUI() { + if (!this.isShowingLoadingView) + return; + this.isShowingLoadingView = false; + this.mLaunchLoadingView.removeLoadingLayout(); + initAnchor(); + } + + public void miniAppDownloadInstallFail(String paramString1, String paramString2) { + super.miniAppDownloadInstallFail(paramString1, paramString2); + SearchEventHelper.loadDetailEvent(false, false, TimeMeter.stop(this.mLoadStartTime), 0, SearchEventHelper.failReasonClient("download_fail")); + } + + public void miniAppDownloadInstallProgress(int paramInt) {} + + public void miniAppInstallSuccess() { + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logTimeDuration(new String[] { "TTAppbrandTabUI_miniAppInstallSuccess" }); + } + + public boolean onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + Map map1; + if (TmaUserManager.getInstance().handleActivityLoginResult(paramInt1, paramInt2, paramIntent)) + return true; + Map map2 = ModeManager.getInst().getModules(); + if (map2 != null) { + Iterator iterator1 = map2.values().iterator(); + while (iterator1.hasNext()) { + if (((NativeModule)iterator1.next()).onActivityResult(paramInt1, paramInt2, paramIntent)) + return true; + } + } + boolean bool2 = false; + if (paramInt1 == 5 && paramInt2 == 51 && paramIntent != null) { + map1 = (Map)paramIntent.getSerializableExtra("extra_change_permission_map"); + for (Map.Entry entry : map1.entrySet()) { + BrandPermissionUtils.setPermission(((Integer)entry.getKey()).intValue(), ((Boolean)entry.getValue()).booleanValue()); + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "change permission ", entry.getKey(), " ", entry.getValue() }); + } + if (map1.size() > 0) + HostDependManager.getInst().syncPermissionToService(); + return true; + } + if (paramInt1 == 11) { + AppbrandViewWindowBase appbrandViewWindowBase = (AppbrandViewWindowBase)((PageRouter)this.mApp.getService(PageRouter.class)).getViewWindowRoot().getTopView(); + if (appbrandViewWindowBase != null) { + AppbrandSinglePage appbrandSinglePage = appbrandViewWindowBase.getCurrentPage(); + if (appbrandSinglePage != null) { + c c = appbrandSinglePage.getFileChooseHandler(); + if (c != null) + c.onActivityResult(paramInt1, paramInt2, (Intent)map1); + } + } + } + Iterator iterator = (new ArrayList((c.a()).a)).iterator(); + while (iterator.hasNext()) { + if (((b)iterator.next()).onActivityResult(paramInt1, paramInt2, (Intent)map1)) + bool2 = true; + } + boolean bool1 = bool2; + if (!bool2) { + b b = (c.a()).b; + bool1 = bool2; + if (b != null) + bool1 = b.onActivityResult(paramInt1, paramInt2, (Intent)map1); + } + bool2 = bool1; + if (!bool1) { + IActivityResultHandler iActivityResultHandler = this.mActivityResultHandler; + bool2 = bool1; + if (iActivityResultHandler != null) + bool2 = iActivityResultHandler.handleActivityResult(paramInt1, paramInt2, (Intent)map1); + } + return bool2; + } + + public void onAddVideoFragment() { + AppbrandHomePageViewWindow appbrandHomePageViewWindow = ((PageRouter)this.mApp.getService(PageRouter.class)).getViewWindowRoot().getAppbrandHomePage(); + this.mVideoAdMgr.setSwipeEnableBefore(appbrandHomePageViewWindow.isDragEnabled()); + appbrandHomePageViewWindow.setDragEnable(false); + doPause(); + } + + public void onBackPressed() { + if (this.isShowingLoadingView) { + this.mApp.setStopReason("backpress"); + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "onBackPressed cancel" }); + InnerEventHelper.mpLoadResultInner(TimeMeter.stop(this.mLoadStartTime), "cancel", "exit_back", this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + ToolUtils.onActivityExit((Activity)this.mActivity, 9); + return; + } + if (this.mVideoAdMgr.onBack()) + return; + if (consumeBackPress()) + return; + if (!((PageRouter)this.mApp.getService(PageRouter.class)).onBackPressed()) { + Runnable runnable = new Runnable() { + public void run() { + TTAppbrandTabUI.this.doBack("backpress", "back", false, 9); + } + }; + if (ApiPermissionManager.shouldCallbackBeforeClose()) { + AppBrandExitManager.getInst().onBeforeExit(true, runnable); + } else { + runnable.run(); + } + } + dismissFavoriteGuide(); + } + + public void onCreate(Bundle paramBundle) { + super.onCreate(paramBundle); + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logTimeDuration(new String[] { "TTAppbrandTabUI_onCreate" }); + View view = ((PreloadManager)this.mApp.getService(PreloadManager.class)).getPreloadedLoadingView((Activity)this.mActivity, 1); + if (view == null) { + view = LayoutInflater.from((Context)AppbrandContext.getInst().getApplicationContext()).inflate(2097676296, null); + this.mActivity.setContentView(view); + } else { + UIUtils.removeParentView(view); + this.mActivity.setContentView(view); + } + this.mImmersedStatusBarHelper = new ImmersedStatusBarHelper((Activity)this.mActivity, getImmersedStatusBarConfig()); + this.mImmersedStatusBarHelper.setup(true); + this.mImmersedStatusBarHelper.setUseLightStatusBarInternal(true); + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + SearchEventHelper.init(appInfoEntity.launchFrom, this.mApp.getSchema()); + Event.builder("mp_load_start").kv("launch_type", appInfoEntity.launchType).flush(); + SearchEventHelper.onLoadStart(); + AppbrandViewWindowRoot appbrandViewWindowRoot = ((PageRouter)this.mApp.getService(PageRouter.class)).getViewWindowRoot(); + appbrandViewWindowRoot.bindActivity((Activity)this.mActivity); + appbrandViewWindowRoot.getAppbrandHomePage().setOnDragDispearEndListener(new a() { + public x invoke() { + TTAppbrandTabUI.this.onDragFinish(); + return null; + } + }); + this.keyboardHeightProvider = new KeyboardHeightProvider((Activity)this.mActivity); + this.mRootLayout = (MiniAppContainerView)this.mActivity.findViewById(2097545471); + this.mWindowRootContainer = (FrameLayout)this.mActivity.findViewById(2097545457); + this.mRootLayout.setWindowSizeListener(this); + this.mRootLayout.post(new Runnable() { + public void run() { + TTAppbrandTabUI.this.keyboardHeightProvider.start(); + } + }); + if (((RenderSnapShotManager)this.mApp.getService(RenderSnapShotManager.class)).isSnapShotRender() && appbrandViewWindowRoot.getContainer().getParent() != this.mWindowRootContainer) { + UIUtils.removeParentView((View)appbrandViewWindowRoot.getContainer()); + this.mWindowRootContainer.addView((View)appbrandViewWindowRoot.getContainer()); + } + initLoadingView(); + getLaunchScheduler().startListenLaunchStatus(this); + this.mApp.setActivityLife(this); + MonitorHandler monitorHandler = ((PerformanceService)this.mApp.getService(PerformanceService.class)).getMonitorHandler(); + if (monitorHandler != null) + monitorHandler.addTask((BaseMonitorTask)new FpsMonitorTask(Choreographer.getInstance())); + UIUtils.setActivityOrientation((Activity)this.mActivity, 1); + this.mSavedScreenOrientation = this.mActivity.getRequestedOrientation(); + LocaleManager.getInst().registerLangChangeListener(this); + ((BlockPageManager)this.mApp.getService(BlockPageManager.class)).handleColdLaunch(); + SystemInfoUtil.setActivityRootViewCallBack(this); + this.mVideoAdMgr = new VideoAdMgr(this); + this.mRootLayout.configStyle((Activity)getActivity(), TitleBarControl.getInst(), AppbrandApplicationImpl.getInst().getMiniAppLaunchConfig()); + } + + public boolean onCreateVideoAd(h paramh) { + return this.mVideoAdMgr.onCreateVideoAd(paramh); + } + + public void onDOMReady() { + reportFirstDOMReady(); + initFavoriteList(); + initPerformanceDialog(); + } + + public void onDestroy() { + super.onDestroy(); + KeyboardHeightProvider keyboardHeightProvider = this.keyboardHeightProvider; + if (keyboardHeightProvider != null) + keyboardHeightProvider.close(); + getLaunchScheduler().stopListenLaunchStatus(); + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "onDestroy" }); + InnerEventHelper.mpTechnologyMsg("micro app onDestroy called"); + } + + public void onDragFinish() { + doBack("backpress", "back", false, 10); + } + + public void onEnvironmentReady() { + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "onEnvironmentReady ", Long.valueOf(this.mLoadStartTime.getMillisAfterStart()) }); + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logTimeDuration(new String[] { "TTAppbrandTabUI_onEnvironmentReady" }); + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + TTAppbrandTabUI.this.showFirstPage(); + } + }); + } + + public void onFirstContentfulPaint(long paramLong) { + if (this.mReportedFCP) + return; + this.mReportedFCP = true; + this.mLaunchProfileTime.pause(); + InnerEventHelper.mpFirstContentfulPaint("success", this.mLaunchProfileTime.getTime(), getLaunchScheduler().getDurationForOpen(), "", this.mHasActivityStoped, LoadStateManager.getIns().getLoadState(), getLaunchScheduler().getLaunchProgress()); + } + + public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent) { + return false; + } + + public void onKeyboardHeightChanged(int paramInt1, int paramInt2) { + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "onKeyboardHeightChanged height ", Integer.valueOf(paramInt1), " orientation ", Integer.valueOf(paramInt2) }); + Iterator iterator = this.IKeyboardObserverList.iterator(); + while (iterator.hasNext()) + ((k)iterator.next()).onKeyboardHeightChanged(paramInt1, paramInt2); + } + + public void onLanguageChange() { + if (this.mApp.getAppInfo() != null) + this.mLaunchLoadingView.updateViews(this.mApp.getAppInfo()); + } + + public void onNewIntent(Intent paramIntent) { + super.onNewIntent(paramIntent); + if (paramIntent == null || !paramIntent.hasExtra("microapp_url")) { + AppBrandLogger.e("TTAppbrandTabUI", new Object[] { "onNewIntent fail, intent == ", paramIntent }); + return; + } + Bundle bundle = paramIntent.getBundleExtra("mp_launch_extra"); + if (bundle != null) { + MiniAppLaunchConfig miniAppLaunchConfig = (MiniAppLaunchConfig)bundle.getParcelable("launchConfig"); + if (miniAppLaunchConfig != null) { + AppbrandApplicationImpl.getInst().setMiniAppLaunchConfig(miniAppLaunchConfig); + } else { + AppbrandApplicationImpl.getInst().setMiniAppLaunchConfig(MiniAppLaunchConfig.DEFAULT); + } + } + if (AppbrandApplicationImpl.getInst().getMiniAppLaunchConfig().isLaunchWithFloatStyle()) { + this.mRootLayout.directFloat(); + } else { + this.mRootLayout.directFillUpContainer(); + } + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + if (appInfoEntity == null) { + AppBrandLogger.e("TTAppbrandTabUI", new Object[] { "onNewIntent fail, mAppInfo is null " }); + return; + } + SearchEventHelper.init(appInfoEntity.launchFrom, this.mApp.getSchema()); + SearchEventHelper.onRelaunched(); + ((BlockPageManager)this.mApp.getService(BlockPageManager.class)).handleHotLaunch(); + if (!TextUtils.isEmpty(appInfoEntity.startPage)) { + String str1 = appInfoEntity.startPage; + String str2 = this.mApp.getCurrentPageUrl(); + RouteEventCtrl routeEventCtrl = this.mApp.getRouteEventCtrl(); + if (routeEventCtrl != null && routeEventCtrl.shouldReLaunch(str1, str2)) { + try { + if (getAppConfig() != null) { + this.mApp.getRouteEventCtrl().onAppLaunch(); + (getAppConfig()).isBackToHome = false; + ((PageRouter)this.mApp.getService(PageRouter.class)).reLaunchByUrl(handleStartPage(str1)); + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "handledPage ", handleStartPage(str1), " currentPage ", str2 }); + PermissionsManager permissionsManager = PermissionsManager.getInstance(); + if (permissionsManager != null) { + permissionsManager.forceFlushPendingRequest((Activity)this.mActivity, false); + return; + } + } + } catch (Exception exception) { + AppBrandLogger.e("TTAppbrandTabUI", new Object[] { "onNewIntent", exception }); + return; + } + } else { + PermissionsManager permissionsManager = PermissionsManager.getInstance(); + if (permissionsManager != null) + permissionsManager.forceFlushPendingRequest((Activity)this.mActivity, true); + return; + } + } else { + PermissionsManager permissionsManager = PermissionsManager.getInstance(); + if (permissionsManager != null) + permissionsManager.forceFlushPendingRequest((Activity)this.mActivity, true); + } + } + + public boolean onOperateVideoAd(h paramh) { + return this.mVideoAdMgr.onOperateVideoAd(paramh); + } + + public void onPause() { + super.onPause(); + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "onPause" }); + if (this.mVideoAdMgr.isVideoAdShown()) + return; + doPause(); + } + + public void onProgressChanged(int paramInt) { + updateProgressTv(0, paramInt); + } + + public void onRemoteDebugOpen() { + ((JsRuntimeManager)this.mApp.getService(JsRuntimeManager.class)).initTMARuntime((ContextWrapper)this.mActivity); + } + + public void onRemoveVideoFragment() { + ((PageRouter)this.mApp.getService(PageRouter.class)).getViewWindowRoot().getAppbrandHomePage().setDragEnable(this.mVideoAdMgr.getSwipeEnableBefore()); + doResume(); + } + + public void onRequestPermissionsResult(int paramInt, String[] paramArrayOfString, int[] paramArrayOfint) { + if ((paramInt >> 16 & 0xFFFF) == 0) + PermissionsManager.getInstance().notifyPermissionsChange((Activity)this.mActivity, paramArrayOfString, paramArrayOfint); + } + + public void onResume() { + super.onResume(); + this.mRootLayout.resetState(); + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "onResume" }); + if (this.mVideoAdMgr.isVideoAdShown()) + return; + doResume(); + if (AppbrandApplicationImpl.getInst().getMiniAppLaunchConfig().isLaunchWithFloatStyle()) + ((PageRouter)this.mApp.getService(PageRouter.class)).getViewWindowRoot().getAppbrandHomePage().setDragEnable(false); + } + + public void onSnapShotDOMReady() { + reportFirstDOMReady(); + initFavoriteList(); + initPerformanceDialog(); + } + + public void onStop() { + if (!this.mReportedFCP && !hasNativeWebView()) + InnerEventHelper.mpFirstContentfulPaint("stop", this.mLaunchProfileTime.getTime(), getLaunchScheduler().getDurationForOpen(), this.mApp.getStopReason(), this.mHasActivityStoped, LoadStateManager.getIns().getLoadState(), getLaunchScheduler().getLaunchProgress()); + super.onStop(); + } + + public void onUserInteraction() {} + + public void onWindowSizeChange(int paramInt1, int paramInt2) { + JsCoreUtils.sendOnWindowReSize((Context)this.mActivity); + } + + public void postError(String paramString) { + JSONObject jSONObject = new JSONObject(); + try { + StringBuilder stringBuilder = new StringBuilder("WebView postError:"); + stringBuilder.append(paramString); + jSONObject.put("errMsg", stringBuilder.toString()); + } catch (Exception exception) { + AppBrandLogger.eWithThrowable("TTAppbrandTabUI", "postError", exception); + } + AppBrandMonitor.statusRate("mp_start_error", 5000, jSONObject); + if (!this.mReportedFirstDOMReady) { + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logTimeDuration(new String[] { "TTAppbrandTabUI_web_view_post_error", paramString }); + LoadHelper.handleMiniProcessFail(ErrorCode.WEBVIEW.RECEIVE_WEBVIEW_ERROR.getCode()); + } + } + + public void registerKeyboardListener(k paramk) { + if (paramk != null && !this.IKeyboardObserverList.contains(paramk)) + this.IKeyboardObserverList.add(paramk); + } + + public void requestAppInfoSuccess(AppInfoEntity paramAppInfoEntity) { + super.requestAppInfoSuccess(paramAppInfoEntity); + StringBuilder stringBuilder = new StringBuilder("appinfo "); + stringBuilder.append(paramAppInfoEntity.toString()); + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { stringBuilder.toString() }); + if (paramAppInfoEntity.isWebApp()) + switchToLibraMiniApp(paramAppInfoEntity); + } + + public void setActivityResultHandler(IActivityResultHandler paramIActivityResultHandler) { + this.mActivityResultHandler = paramIActivityResultHandler; + } + + public void setKeepScreenOn(boolean paramBoolean) { + this.mRootLayout.setKeepScreenOn(paramBoolean); + } + + public void setSavedScreenOrientation(int paramInt) { + this.mSavedScreenOrientation = paramInt; + } + + public void showFirstPage() { + ((TimeLogger)this.mApp.getService(TimeLogger.class)).logTimeDuration(new String[] { "TTAppbrandTabUI_showFirstPage" }); + AppBrandLogger.d("TTAppbrandTabUI", new Object[] { "onSuccess ", Long.valueOf(this.mLoadStartTime.getMillisAfterStart()) }); + reportResult(); + AppbrandViewWindowRoot appbrandViewWindowRoot = ((PageRouter)this.mApp.getService(PageRouter.class)).getViewWindowRoot(); + if (appbrandViewWindowRoot.getContainer().getParent() != this.mWindowRootContainer) { + UIUtils.removeParentView((View)appbrandViewWindowRoot.getContainer()); + this.mWindowRootContainer.addView((View)appbrandViewWindowRoot.getContainer(), 0); + } + hideLoadShowUI(); + startModule(); + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + HostProcessBridge.onMiniAppStart(appInfoEntity, appInfoEntity.isGame(), getScreenOrientationFromAppConfig()); + this.mMicroAppStartShowTimes = System.currentTimeMillis(); + InnerHostProcessBridge.setTmaLaunchFlag(); + if (AppbrandApplicationImpl.getInst().getMiniAppLaunchConfig().isLaunchWithFloatStyle() && !this.mRootLayout.ismFilledUpContainer()) { + AppbrandSinglePage appbrandSinglePage = ((AppbrandViewWindowBase)appbrandViewWindowRoot.getTopView()).getCurrentPage(); + if (appbrandSinglePage != null && appbrandSinglePage.getTitleBar() != null) + TitleBarControl.showTitlebarRadius((BaseTitleBar)appbrandSinglePage.getTitleBar()); + } + } + + public void unRegisterKeyboardListener(k paramk) { + if (paramk != null) + this.IKeyboardObserverList.remove(paramk); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\TTAppbrandTabUI.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/TitleBarHelper.java b/df_miniapp/classes/com/tt/miniapp/TitleBarHelper.java new file mode 100644 index 0000000..c877003 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/TitleBarHelper.java @@ -0,0 +1,17 @@ +package com.tt.miniapp; + +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.AppInfoEntity; + +public class TitleBarHelper { + public static boolean isBackButtonStyle() { + AppInfoEntity appInfoEntity = AppbrandApplicationImpl.getInst().getAppInfo(); + return (appInfoEntity != null && appInfoEntity.toolbarStyle == 1 && AppbrandContext.getInst().isGame()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\TitleBarHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/WebViewManager.java b/df_miniapp/classes/com/tt/miniapp/WebViewManager.java new file mode 100644 index 0000000..b98ef44 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/WebViewManager.java @@ -0,0 +1,381 @@ +package com.tt.miniapp; + +import android.net.Uri; +import android.os.SystemClock; +import android.webkit.WebView; +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.api.a.a; +import com.bytedance.sandboxapp.protocol.service.api.b.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import com.bytedance.sandboxapp.protocol.service.api.entity.b; +import com.tt.frontendapiinterface.i; +import com.tt.miniapp.autotest.AutoTestManager; +import com.tt.miniapp.component.nativeview.NativeWebView; +import com.tt.miniapp.debug.DebugManager; +import com.tt.miniapp.page.AppbrandSinglePage; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.render.export.TTWebSdkWrapper; +import java.lang.ref.WeakReference; +import java.util.concurrent.ConcurrentHashMap; + +public class WebViewManager extends AppbrandServiceManager.ServiceBase { + private ConcurrentHashMap idToRender = new ConcurrentHashMap(); + + private ConcurrentHashMap isNotFirstPublishForWebView = new ConcurrentHashMap(); + + IRender mCurrentRender; + + private IFeedback mIFeedback; + + private ConcurrentHashMap> webComponentMap = new ConcurrentHashMap>(); + + private WebViewManager(AppbrandApplicationImpl paramAppbrandApplicationImpl) { + super(paramAppbrandApplicationImpl); + } + + public void addRender(IRender paramIRender) { + if (paramIRender != null) { + if (paramIRender.getWebView() == null) + return; + this.idToRender.put(Integer.valueOf(paramIRender.getWebViewId()), paramIRender); + } + } + + public void addWebComponent(NativeWebView paramNativeWebView) { + if (paramNativeWebView != null) { + if (paramNativeWebView.getWebView() == null) + return; + ConcurrentHashMap> concurrentHashMap = this.webComponentMap; + if (concurrentHashMap != null) + concurrentHashMap.put(Integer.valueOf(paramNativeWebView.getWebViewId()), new WeakReference(paramNativeWebView)); + } + } + + public void clear() { + this.idToRender.clear(); + setCurrentRender(null); + } + + public WebView findTargetWebView(int paramInt) { + ConcurrentHashMap concurrentHashMap1 = this.idToRender; + if (concurrentHashMap1 != null) { + IRender iRender = concurrentHashMap1.get(Integer.valueOf(paramInt)); + if (iRender != null) + return iRender.getWebView(); + } + ConcurrentHashMap> concurrentHashMap = this.webComponentMap; + if (concurrentHashMap != null) { + WeakReference weakReference = concurrentHashMap.get(Integer.valueOf(paramInt)); + if (weakReference != null && weakReference.get() != null) + return ((NativeWebView)weakReference.get()).getWebView(); + } + return null; + } + + public IRender getCurrentIRender() { + return this.mCurrentRender; + } + + public IRender getRender(int paramInt) { + return this.idToRender.get(Integer.valueOf(paramInt)); + } + + public void invokeHandler(final int webviewId, final int callbackId, final String msg) { + AppBrandLogger.d("tma_WebViewManager", new Object[] { "invokeHandler webviewId ", Integer.valueOf(webviewId), " callbackId ", Integer.valueOf(callbackId), " msg ", msg }); + AppbrandContext.mainHandler.post(new Runnable() { + public void run() { + WebView webView = WebViewManager.this.findTargetWebView(webviewId); + if (webView != null) { + StringBuilder stringBuilder1 = new StringBuilder("ttJSBridge.invokeHandler('"); + stringBuilder1.append(callbackId); + stringBuilder1.append("',"); + stringBuilder1.append(msg); + stringBuilder1.append(")"); + String str = stringBuilder1.toString(); + StringBuilder stringBuilder2 = new StringBuilder("javascript:"); + stringBuilder2.append(Uri.encode(str)); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(webView, stringBuilder2.toString()); + } + } + + class null {} + }); + } + + public void libraInvokeHandler(final int webviewId, final int callbackId, final String msg, final int divId) { + AppBrandLogger.d("tma_WebViewManager", new Object[] { "libraInvokeHandler webviewId ", Integer.valueOf(webviewId), " callbackId ", Integer.valueOf(callbackId), " msg ", msg, "divId ", Integer.valueOf(divId) }); + AppbrandContext.mainHandler.post(new Runnable() { + public void run() { + WebView webView = WebViewManager.this.findTargetWebView(webviewId); + if (webView != null) { + StringBuilder stringBuilder1 = new StringBuilder("window.libraInvokeHandler('"); + stringBuilder1.append(callbackId); + stringBuilder1.append("',"); + stringBuilder1.append(msg); + stringBuilder1.append(","); + stringBuilder1.append(divId); + stringBuilder1.append(")"); + String str = stringBuilder1.toString(); + AppBrandLogger.d("tma_WebViewManager", new Object[] { str }); + StringBuilder stringBuilder2 = new StringBuilder("javascript:"); + stringBuilder2.append(Uri.encode(str)); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(webView, stringBuilder2.toString()); + } + } + + class null {} + }); + } + + @LifecycleInterest({LifeCycleManager.LifeCycleEvent.ON_APP_INSTALL_SUCCESS}) + public void onAppInstallSuccess() { + for (IRender iRender : this.idToRender.values()) { + if (iRender instanceof AppbrandSinglePage) + ((AppbrandSinglePage)iRender).onAppInstallSuccess(); + } + } + + @LifecycleInterest({LifeCycleManager.LifeCycleEvent.ON_APP_START_LAUNCHING}) + public void onAppStartLaunch() { + for (IRender iRender : this.idToRender.values()) { + if (iRender instanceof AppbrandSinglePage) + ((AppbrandSinglePage)iRender).onAppStartLaunching(); + } + } + + public void publish(int paramInt, final String event, final String msg) { + AppBrandLogger.d("tma_WebViewManager", new Object[] { "publish webviewId ", Integer.valueOf(paramInt), " event ", event, " msg ", msg }); + IFeedback iFeedback = this.mIFeedback; + if (iFeedback != null) + iFeedback.onPublish(paramInt, event, msg); + if ((DebugManager.getInst()).mRemoteDebugEnable) + DebugManager.getInst().addAppData(msg, paramInt); + Boolean bool = this.isNotFirstPublishForWebView.putIfAbsent(Integer.valueOf(paramInt), Boolean.TRUE); + final WebView targetWebView = findTargetWebView(paramInt); + if (webView != null) { + Runnable runnable = new Runnable() { + final long beforePost = SystemClock.elapsedRealtime(); + + public void run() { + StringBuilder stringBuilder = new StringBuilder("ttJSBridge.subscribeHandler('"); + stringBuilder.append(event); + stringBuilder.append("',"); + stringBuilder.append(msg); + stringBuilder.append(")"); + String str = stringBuilder.toString(); + AppBrandLogger.d("tma_WebViewManager", new Object[] { "publish ", str, " , ", this.val$targetWebView }); + long l = SystemClock.elapsedRealtime(); + ((AutoTestManager)WebViewManager.this.mApp.getService(AutoTestManager.class)).addEventWithValue("publishUseTime", Long.valueOf(l - this.beforePost)); + AppBrandLogger.i("tma_WebViewManager", new Object[] { "publish use time:", Long.valueOf(l - this.beforePost) }); + targetWebView.evaluateJavascript(str, null); + } + }; + if (webView instanceof com.tt.miniapp.view.webcore.TTWebViewSupportWebView && TTWebSdkWrapper.INSTANCE.isTTWebView()) { + runnable.run(); + return; + } + if (bool == Boolean.TRUE) { + AppbrandContext.mainHandler.post(runnable); + return; + } + AppbrandContext.mainHandler.postAtFrontOfQueue(runnable); + return; + } + AppBrandLogger.e("tma_WebViewManager", new Object[] { "publish webview not found:", Integer.valueOf(paramInt) }); + } + + public void publishDirectly(int paramInt, String paramString1, String paramString2) { + WebView webView = findTargetWebView(paramInt); + if (webView != null) { + StringBuilder stringBuilder2 = new StringBuilder("ttJSBridge.subscribeHandler('"); + stringBuilder2.append(paramString1); + stringBuilder2.append("',"); + stringBuilder2.append(paramString2); + stringBuilder2.append(")"); + paramString1 = stringBuilder2.toString(); + StringBuilder stringBuilder1 = new StringBuilder("javascript:"); + stringBuilder1.append(Uri.encode(paramString1)); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(webView, stringBuilder1.toString()); + } + } + + public void registerFeedback(IFeedback paramIFeedback) { + this.mIFeedback = paramIFeedback; + } + + public void removeRender(int paramInt) { + this.idToRender.remove(Integer.valueOf(paramInt)); + } + + public void setCurrentRender(IRender paramIRender) { + this.mCurrentRender = paramIRender; + } + + public void unRegisterFeedback() { + this.mIFeedback = null; + } + + public void webViewinvokeHandler(final int webviewId, final int callbackId, final String msg, final int divId) { + AppBrandLogger.d("tma_WebViewManager", new Object[] { "invokeHandler webviewId ", Integer.valueOf(webviewId), " callbackId ", Integer.valueOf(callbackId), " msg ", msg, "divId ", Integer.valueOf(divId) }); + AppbrandContext.mainHandler.post(new Runnable() { + public void run() { + WebView webView = WebViewManager.this.findTargetWebView(webviewId); + if (webView != null) { + StringBuilder stringBuilder1 = new StringBuilder("ttJScoreLibra.invokeHandler('"); + stringBuilder1.append(callbackId); + stringBuilder1.append("',"); + stringBuilder1.append(msg); + stringBuilder1.append(","); + stringBuilder1.append(divId); + stringBuilder1.append(")"); + String str = stringBuilder1.toString(); + AppBrandLogger.d("tma_WebViewManager", new Object[] { str }); + StringBuilder stringBuilder2 = new StringBuilder("javascript:"); + stringBuilder2.append(Uri.encode(str)); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(webView, stringBuilder2.toString()); + } + } + + class null {} + }); + } + + public void webViewsubscribeHandler(final int webviewId, final int callbackId, final String msg, final int divId) { + StringBuilder stringBuilder = new StringBuilder(" divId "); + stringBuilder.append(divId); + AppBrandLogger.d("tma_WebViewManager", new Object[] { "invokeHandler webviewId ", Integer.valueOf(webviewId), " callbackId ", Integer.valueOf(callbackId), " msg ", msg, stringBuilder.toString() }); + AppbrandContext.mainHandler.post(new Runnable() { + public void run() { + WebView webView = WebViewManager.this.findTargetWebView(webviewId); + if (webView != null) { + StringBuilder stringBuilder1 = new StringBuilder("ttJScoreLibra.subscribeHandler('"); + stringBuilder1.append(callbackId); + stringBuilder1.append("',"); + stringBuilder1.append(msg); + stringBuilder1.append(","); + stringBuilder1.append(divId); + stringBuilder1.append(")"); + String str = stringBuilder1.toString(); + AppBrandLogger.d("tma_WebViewManager", new Object[] { str }); + StringBuilder stringBuilder2 = new StringBuilder("javascript:"); + stringBuilder2.append(Uri.encode(str)); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(webView, stringBuilder2.toString()); + } + } + + class null {} + }); + } + + public void workerInvokeHandler(final int webviewId, final int callbackId, final String msg, final int divId) { + AppBrandLogger.d("tma_WebViewManager", new Object[] { "workerInvokeHandler webviewId ", Integer.valueOf(webviewId), " callbackId ", Integer.valueOf(callbackId), " msg ", msg, " divId ", Integer.valueOf(divId) }); + AppbrandContext.mainHandler.post(new Runnable() { + public void run() { + AppBrandLogger.d("tma_WebViewManager", new Object[] { "workerInvokeHandler", "in post doing" }); + WebView webView = WebViewManager.this.findTargetWebView(webviewId); + if (webView != null) { + StringBuilder stringBuilder1 = new StringBuilder("window.workerInvokeHandler('"); + stringBuilder1.append(callbackId); + stringBuilder1.append("',"); + stringBuilder1.append(msg); + stringBuilder1.append(","); + stringBuilder1.append(divId); + stringBuilder1.append(")"); + String str = stringBuilder1.toString(); + AppBrandLogger.d("tma_WebViewManager", new Object[] { str }); + StringBuilder stringBuilder2 = new StringBuilder("javascript:"); + stringBuilder2.append(Uri.encode(str)); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(webView, stringBuilder2.toString()); + return; + } + AppBrandLogger.d("tma_WebViewManager", new Object[] { "findTargetWebView null!!!!" }); + } + + class null {} + }); + } + + public void workerSubcribeHandler(final int webviewId, final int callbackId, final String msg, int paramInt3) { + AppBrandLogger.d("tma_WebViewManager", new Object[] { "workerSubcribeHandler webviewId ", Integer.valueOf(webviewId), " callbackId ", Integer.valueOf(callbackId), " msg ", msg, " divId ", Integer.valueOf(paramInt3) }); + AppbrandContext.mainHandler.post(new Runnable() { + public void run() { + WebView webView = WebViewManager.this.findTargetWebView(webviewId); + if (webView != null) { + StringBuilder stringBuilder1 = new StringBuilder("window.workerSubcribeHandler('"); + stringBuilder1.append(callbackId); + stringBuilder1.append("',"); + stringBuilder1.append(msg); + stringBuilder1.append(")"); + String str = stringBuilder1.toString(); + AppBrandLogger.d("tma_WebViewManager", new Object[] { str }); + StringBuilder stringBuilder2 = new StringBuilder("javascript:"); + stringBuilder2.append(Uri.encode(str)); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(webView, stringBuilder2.toString()); + } + } + + class null {} + }); + } + + public static interface IFeedback { + void onPublish(int param1Int, String param1String1, String param1String2); + } + + public static interface IRender extends i {} + + public static class WebViewApiRuntime implements a { + private boolean mDestroyed; + + private int mWebViewId; + + public WebViewApiRuntime(int param1Int) { + this.mWebViewId = param1Int; + } + + public void destroy() { + this.mDestroyed = true; + } + + public a getContext() { + return (a)AppbrandApplicationImpl.getInst().getMiniAppContext(); + } + + public b handleApiInvoke(a param1a) { + AppbrandApplication.getInst().publish(this.mWebViewId, param1a.b, param1a.a().toString()); + return b.d; + } + + public boolean isDestroyed() { + return this.mDestroyed; + } + } + + public static class WebViewAsyncApiCallbackExecutor implements b { + private int mCallbackId; + + private int mWebViewId; + + public WebViewAsyncApiCallbackExecutor(int param1Int1, int param1Int2) { + this.mWebViewId = param1Int1; + this.mCallbackId = param1Int2; + } + + public void executeCallback(ApiCallbackData param1ApiCallbackData) { + WebViewManager webViewManager = AppbrandApplicationImpl.getInst().getWebViewManager(); + if (webViewManager != null) + webViewManager.invokeHandler(this.mWebViewId, this.mCallbackId, param1ApiCallbackData.toString()); + } + } + + class WebViewManager {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\WebViewManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/about/AboutActivity.java b/df_miniapp/classes/com/tt/miniapp/about/AboutActivity.java new file mode 100644 index 0000000..356db15 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/about/AboutActivity.java @@ -0,0 +1,438 @@ +package com.tt.miniapp.about; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.os.SystemClock; +import android.text.TextUtils; +import android.util.Base64; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import com.storage.async.Function; +import com.storage.async.Observable; +import com.storage.async.Schedulers; +import com.storage.async.Subscriber; +import com.tt.miniapp.AppbrandConstant; +import com.tt.miniapp.ImmersedStatusBarHelper; +import com.tt.miniapp.manager.NetManager; +import com.tt.miniapp.util.ChannelUtil; +import com.tt.miniapp.util.RSAUtil; +import com.tt.miniapp.util.SaftyUtil; +import com.tt.miniapp.view.RoundedImageView; +import com.tt.miniapp.view.ViewUtils; +import com.tt.miniapp.view.swipeback.SwipeBackActivity; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.NativeUIParamsEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.language.LanguageChangeListener; +import com.tt.miniapphost.language.LocaleManager; +import com.tt.miniapphost.util.DebugUtil; +import com.tt.miniapphost.util.UIUtils; +import java.util.ArrayList; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class AboutActivity extends SwipeBackActivity implements LanguageChangeListener { + public Button btnBackMiniapp; + + private ImageView ivHeadlinePlatformGoto; + + public RoundedImageView ivHeadlinePlatformIcon0; + + public RoundedImageView ivMiniappIcon; + + private ImageView ivMiniappInfoGoto; + + public LinearLayout lyHeadlinePlatform; + + public LinearLayout lyHeadlinePlatformIcon; + + public LinearLayout lyServiceCategory; + + private LinearLayout lySubjectInformation; + + public AboutInfo mAboutInfo; + + public TextView mDebugInfoView; + + private TextView tvAboutDeveloper; + + private TextView tvAboutHeadlinePlatform; + + private TextView tvAboutServiceCatagory; + + private TextView tvAboutSubjectInfo; + + public TextView tvHeadlinePlatformName; + + public TextView tvMiniappCategory; + + public TextView tvMiniappName; + + public TextView tvMiniappSummary; + + public TextView tvSubjectInfor; + + private String CreateTTCode() { + String str1 = SaftyUtil.genRandomString(); + String str2 = SaftyUtil.genRandomString(); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(str1); + stringBuilder.append("#"); + stringBuilder.append(str2); + byte[] arrayOfByte = RSAUtil.encryptContent((Context)this, stringBuilder.toString()); + if (arrayOfByte != null) { + AboutInfo aboutInfo = this.mAboutInfo; + aboutInfo.encryKey = str1; + aboutInfo.encryIV = str2; + return Base64.encodeToString(arrayOfByte, 10); + } + return ""; + } + + private void bindListener() { + View.OnClickListener onClickListener = new View.OnClickListener() { + public void onClick(View param1View) { + Intent intent = new Intent((Context)AboutActivity.this, MicroAppSubjectInfoActivity.class); + intent.putExtra("icon", AboutActivity.this.mAboutInfo.icon); + intent.putExtra("name", AboutActivity.this.mAboutInfo.name); + if (AboutActivity.this.mAboutInfo.is_corp) { + intent.putExtra("corp_name", AboutActivity.this.mAboutInfo.corp_name); + } else { + intent.putExtra("corp_name", AboutActivity.this.getString(2097741986)); + } + intent.putExtra("service_category", AboutActivity.this.mAboutInfo.service_category); + intent.putExtra("version", AboutActivity.this.mAboutInfo.version); + intent.putExtra("update_time", AboutActivity.this.mAboutInfo.update_time); + intent.putStringArrayListExtra("domains", AboutActivity.this.mAboutInfo.domains); + AboutActivity.this.startActivity(intent); + AboutActivity.this.overridePendingTransition(UIUtils.getSlideInAnimation(), 2131034242); + } + }; + this.ivMiniappInfoGoto.setOnClickListener(onClickListener); + this.lySubjectInformation.setOnClickListener(onClickListener); + this.ivHeadlinePlatformGoto.setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) {} + }); + this.btnBackMiniapp.setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + AboutActivity.this.onBackPressed(); + } + }); + } + + private void initTitle() { + ((ImageView)findViewById(2097545355)).setImageResource(2097479751); + UIUtils.configTitleBarWithHeight((Context)this, findViewById(2097545400)); + findViewById(2097545404).setVisibility(8); + findViewById(2097545400).setBackgroundColor(-1); + findViewById(2097545355).setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + AboutActivity.this.finish(); + } + }); + UIUtils.setViewVisibility(findViewById(2097545413), 8); + ((TextView)findViewById(2097545358)).setText(getString(2097741832)); + } + + private void initView() { + this.ivMiniappIcon = (RoundedImageView)findViewById(2097545314); + this.tvMiniappName = (TextView)findViewById(2097545422); + this.tvAboutServiceCatagory = (TextView)findViewById(2097545242); + this.tvAboutSubjectInfo = (TextView)findViewById(2097545243); + this.tvAboutHeadlinePlatform = (TextView)findViewById(2097545241); + this.tvMiniappSummary = (TextView)findViewById(2097545427); + this.lyServiceCategory = (LinearLayout)findViewById(2097545385); + this.tvMiniappCategory = (TextView)findViewById(2097545484); + this.lySubjectInformation = (LinearLayout)findViewById(2097545240); + this.tvSubjectInfor = (TextView)findViewById(2097545426); + this.ivMiniappInfoGoto = (ImageView)findViewById(2097545315); + this.lyHeadlinePlatform = (LinearLayout)findViewById(2097545304); + this.lyHeadlinePlatformIcon = (LinearLayout)findViewById(2097545306); + this.ivHeadlinePlatformIcon0 = (RoundedImageView)findViewById(2097545307); + this.tvHeadlinePlatformName = (TextView)findViewById(2097545308); + this.ivHeadlinePlatformGoto = (ImageView)findViewById(2097545305); + this.btnBackMiniapp = (Button)findViewById(2097545250); + ViewUtils.setButtonStyle(this.btnBackMiniapp, NativeUIParamsEntity.getInst().getPositiveColor(), NativeUIParamsEntity.getInst().getPositiveItemNegativeTextColor(), NativeUIParamsEntity.getInst().getBtnCornerRadius()); + this.lyServiceCategory.setVisibility(8); + this.lyHeadlinePlatform.setVisibility(8); + this.ivMiniappIcon.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + public void onGlobalLayout() { + AboutActivity.this.ivMiniappIcon.getViewTreeObserver().removeOnGlobalLayoutListener(this); + ViewUtils.setImageViewStyle((ImageView)AboutActivity.this.ivMiniappIcon, (int)(NativeUIParamsEntity.getInst().getMicroAppLogoCornerRadiusRatio() * AboutActivity.this.ivMiniappIcon.getMeasuredHeight())); + ViewUtils.setButtonStyle(AboutActivity.this.btnBackMiniapp, NativeUIParamsEntity.getInst().getPositiveColor(), NativeUIParamsEntity.getInst().getPositiveItemNegativeTextColor(), NativeUIParamsEntity.getInst().getBtnCornerRadius()); + } + }); + this.mDebugInfoView = (TextView)findViewById(2097545266); + if (DebugUtil.debug() && ChannelUtil.isLocalTest()) { + this.mDebugInfoView.setVisibility(0); + return; + } + this.mDebugInfoView.setVisibility(8); + this.tvMiniappName.setOnClickListener(new MultipleTimesClickListener(10, 300L) { + void onMultipleClick(View param1View) { + if (AboutActivity.this.mDebugInfoView.getVisibility() == 0) + return; + AboutActivity.this.mDebugInfoView.setVisibility(0); + AboutActivity.this.tvMiniappName.setClickable(false); + AboutActivity.this.tvMiniappName.setOnClickListener(null); + } + }); + } + + private void initdata() { + String str1; + this.mAboutInfo = new AboutInfo(); + String str2 = CreateTTCode(); + AppBrandLogger.d("AboutActivity", new Object[] { "ttCode ", str2 }); + if (AppbrandContext.getInst().getInitParams() != null) { + str1 = AppbrandContext.getInst().getInitParams().getAppId(); + } else { + str1 = ""; + } + String str3 = getIntent().getStringExtra("appid"); + String str4 = getIntent().getStringExtra("bdp_debug_info"); + if (!TextUtils.isEmpty(str4)) { + TextView textView = this.mDebugInfoView; + if (textView != null) + textView.setText(str4); + } + AppBrandLogger.d("AboutActivity", new Object[] { "appid ", str3 }); + AppBrandLogger.d("AboutActivity", new Object[] { "aid ", str1 }); + requestAboutInfo(str3, str2, str1); + } + + private void requestAboutInfo(final String url, String paramString2, String paramString3) { + if (TextUtils.isEmpty(url) || TextUtils.isEmpty(paramString2) || TextUtils.isEmpty(paramString3)) { + AppBrandLogger.e("AboutActivity", new Object[] { "请求参数出错,不能为空" }); + return; + } + this.mAboutInfo.aid = paramString3; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(AppbrandConstant.OpenApi.getInst().getABOUT_URL()); + stringBuilder.append("appid="); + stringBuilder.append(url); + stringBuilder.append("&ttcode="); + stringBuilder.append(paramString2); + stringBuilder.append("&aid="); + stringBuilder.append(paramString3); + url = stringBuilder.toString(); + AppBrandLogger.d("AboutActivity", new Object[] { "url= ", url }); + Observable.create(new Function() { + public AboutInfo fun() { + String str = NetManager.getInst().request(url).a(); + AppBrandLogger.d("AboutActivity", new Object[] { "requestAboutInfo : url is ", this.val$url, " & result = ", str }); + AboutActivity aboutActivity = AboutActivity.this; + aboutActivity.parseAboutInfo(aboutActivity.mAboutInfo, str); + return AboutActivity.this.mAboutInfo; + } + }).schudleOn(Schedulers.longIO()).observeOn(Schedulers.ui()).subscribe((Subscriber)new Subscriber.ResultableSubscriber() { + public void onError(Throwable param1Throwable) { + AppBrandLogger.e("AboutActivity", new Object[] { "error msg ", param1Throwable }); + HostDependManager hostDependManager = HostDependManager.getInst(); + AboutActivity aboutActivity = AboutActivity.this; + hostDependManager.showToast((Context)aboutActivity, null, aboutActivity.getResources().getString(2097741959), 0L, null); + } + + public void onSuccess(AboutInfo param1AboutInfo) { + if (param1AboutInfo == null) + return; + if (!TextUtils.isEmpty(param1AboutInfo.icon)) { + HostDependManager hostDependManager = HostDependManager.getInst(); + AboutActivity aboutActivity = AboutActivity.this; + hostDependManager.loadImage((Context)aboutActivity, (ImageView)aboutActivity.ivMiniappIcon, Uri.parse(param1AboutInfo.icon)); + } else { + AboutActivity.this.ivMiniappIcon.setImageDrawable(AboutActivity.this.getResources().getDrawable(2097479724)); + } + if (!TextUtils.isEmpty(param1AboutInfo.name)) + AboutActivity.this.tvMiniappName.setText(param1AboutInfo.name); + if (!TextUtils.isEmpty(param1AboutInfo.summary)) + AboutActivity.this.tvMiniappSummary.setText(param1AboutInfo.summary); + if (!TextUtils.isEmpty(param1AboutInfo.service_category)) { + if (!AboutActivity.this.lyServiceCategory.isShown()) + AboutActivity.this.lyServiceCategory.setVisibility(0); + AboutActivity.this.tvMiniappCategory.setText(param1AboutInfo.service_category); + } else if (AboutActivity.this.lyServiceCategory.isShown()) { + AboutActivity.this.lyServiceCategory.setVisibility(8); + } + if (param1AboutInfo.is_corp && !TextUtils.isEmpty(param1AboutInfo.corp_name)) { + AboutActivity.this.tvSubjectInfor.setText(param1AboutInfo.corp_name); + } else if (!param1AboutInfo.is_corp && !TextUtils.isEmpty(param1AboutInfo.id_name)) { + AboutActivity.this.tvSubjectInfor.setText(AboutActivity.this.getString(2097741986)); + } + if (AboutActivity.this.mAboutInfo.mp_list == null) { + if (AboutActivity.this.lyHeadlinePlatform.isShown()) + AboutActivity.this.lyHeadlinePlatform.setVisibility(8); + return; + } + if (!AboutActivity.this.lyHeadlinePlatform.isShown()) + AboutActivity.this.lyHeadlinePlatform.setVisibility(0); + if (AboutActivity.this.mAboutInfo.mp_list.size() == 0) { + if (AboutActivity.this.lyHeadlinePlatform.isShown()) { + AboutActivity.this.lyHeadlinePlatform.setVisibility(8); + return; + } + } else { + int j = AboutActivity.this.mAboutInfo.mp_list.size(); + int i = 1; + if (j == 1) { + HostDependManager hostDependManager1 = HostDependManager.getInst(); + AboutActivity aboutActivity1 = AboutActivity.this; + hostDependManager1.loadImage((Context)aboutActivity1, (ImageView)aboutActivity1.ivHeadlinePlatformIcon0, Uri.parse(((AboutInfo.HeadlinePlatform)param1AboutInfo.mp_list.get(0)).avatar_url)); + if (!AboutActivity.this.tvHeadlinePlatformName.isShown()) + AboutActivity.this.tvHeadlinePlatformName.setVisibility(0); + AboutActivity.this.tvHeadlinePlatformName.setText(param1AboutInfo.name); + return; + } + AboutActivity.this.tvHeadlinePlatformName.setVisibility(8); + HostDependManager hostDependManager = HostDependManager.getInst(); + AboutActivity aboutActivity = AboutActivity.this; + hostDependManager.loadImage((Context)aboutActivity, (ImageView)aboutActivity.ivHeadlinePlatformIcon0, Uri.parse(((AboutInfo.HeadlinePlatform)param1AboutInfo.mp_list.get(0)).avatar_url)); + j = AboutActivity.this.mAboutInfo.mp_list.size(); + while (i < j && i <= 5) { + RoundedImageView roundedImageView = new RoundedImageView((Context)AboutActivity.this); + LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams((int)UIUtils.dip2Px((Context)AboutActivity.this, 24.0F), (int)UIUtils.dip2Px((Context)AboutActivity.this, 24.0F)); + layoutParams.setMargins((int)UIUtils.dip2Px((Context)AboutActivity.this, 12.0F), 0, 0, 0); + roundedImageView.setLayoutParams((ViewGroup.LayoutParams)layoutParams); + AboutActivity.this.lyHeadlinePlatformIcon.addView((View)roundedImageView); + HostDependManager.getInst().loadImage((Context)AboutActivity.this, (ImageView)roundedImageView, Uri.parse(((AboutInfo.HeadlinePlatform)param1AboutInfo.mp_list.get(i)).avatar_url)); + i++; + } + } + } + }); + } + + public void finish() { + super.finish(); + overridePendingTransition(0, UIUtils.getSlideOutAnimation()); + } + + public AboutInfo getAboutInfo() { + return this.mAboutInfo; + } + + protected ImmersedStatusBarHelper.ImmersedStatusBarConfig getImmersedStatusBarConfig() { + return (new ImmersedStatusBarHelper.ImmersedStatusBarConfig()).setFitsSystemWindows(true).setStatusBarColor(getResources().getColor(2097348664)); + } + + public void onCreate(Bundle paramBundle) { + super.onCreate(paramBundle); + setContentView(2097676288); + ImmersedStatusBarHelper immersedStatusBarHelper = new ImmersedStatusBarHelper((Activity)this, getImmersedStatusBarConfig()); + immersedStatusBarHelper.setup(true); + immersedStatusBarHelper.setUseLightStatusBarInternal(true); + initView(); + initTitle(); + initdata(); + bindListener(); + LocaleManager.getInst().registerLangChangeListener(this); + } + + public void onLanguageChange() { + ((TextView)findViewById(2097545358)).setText(getString(2097741832)); + this.tvMiniappName.setText(getString(2097741949)); + this.tvAboutServiceCatagory.setText(getString(2097741836)); + this.tvAboutSubjectInfo.setText(getString(2097741837)); + this.tvAboutHeadlinePlatform.setText(getString(2097741835)); + this.btnBackMiniapp.setText(getString(2097741833)); + } + + public void onPause() { + super.onPause(); + } + + public void onResume() { + super.onResume(); + } + + public void parseAboutInfo(AboutInfo paramAboutInfo, String paramString) { + boolean bool = TextUtils.isEmpty(paramString); + int i = 0; + if (bool) { + AppBrandLogger.e("AboutActivity", new Object[] { "parseAboutInfo json is null" }); + HostDependManager.getInst().showToast((Context)this, null, getResources().getString(2097741959), 0L, null); + return; + } + try { + JSONObject jSONObject2 = new JSONObject(paramString); + if (jSONObject2.optInt("error") != 0) + return; + JSONObject jSONObject1 = new JSONObject(RSAUtil.AESDecrypt(paramAboutInfo.encryKey, paramAboutInfo.encryIV, jSONObject2.getString("data"))); + AppBrandLogger.d("AboutActivity", new Object[] { "data = ", jSONObject1.toString() }); + this.mAboutInfo.icon = jSONObject1.optString("icon"); + this.mAboutInfo.name = jSONObject1.optString("name"); + this.mAboutInfo.summary = jSONObject1.optString("summary"); + this.mAboutInfo.service_category = jSONObject1.optString("service_category"); + this.mAboutInfo.corp_name = jSONObject1.optString("corp_name"); + this.mAboutInfo.id_name = jSONObject1.optString("id_name"); + this.mAboutInfo.version = jSONObject1.optString("version"); + this.mAboutInfo.update_time = jSONObject1.optLong("update_time"); + this.mAboutInfo.is_corp = jSONObject1.optBoolean("is_corp"); + JSONArray jSONArray2 = jSONObject1.getJSONArray("domains"); + if (jSONArray2 != null && jSONArray2.length() != 0) { + int j = jSONArray2.length(); + this.mAboutInfo.domains = new ArrayList(); + while (i < j) { + this.mAboutInfo.domains.add(jSONArray2.getString(i)); + i++; + } + } + JSONArray jSONArray1 = jSONObject1.getJSONArray("mp_list"); + if (jSONArray1 != null && jSONArray1.length() != 0) { + jSONArray1.length(); + this.mAboutInfo.mp_list = new ArrayList(); + } + return; + } catch (JSONException jSONException) { + return; + } + } + + abstract class MultipleTimesClickListener implements View.OnClickListener { + private long INTERVAL_TIME; + + private int TOTAL_TIMES; + + private int mClickTimes; + + private long mLastClickTime; + + private MultipleTimesClickListener(int param1Int, long param1Long) { + this.TOTAL_TIMES = param1Int; + this.INTERVAL_TIME = param1Long; + } + + public void onClick(View param1View) { + long l = SystemClock.elapsedRealtime(); + if (l - this.mLastClickTime <= this.INTERVAL_TIME || this.mClickTimes == 0) { + this.mLastClickTime = l; + this.mClickTimes++; + } else { + this.mClickTimes = 1; + this.mLastClickTime = l; + } + if (this.mClickTimes >= this.TOTAL_TIMES) { + onMultipleClick(param1View); + this.mClickTimes = 0; + } + } + + abstract void onMultipleClick(View param1View); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\about\AboutActivity.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/about/AboutInfo.java b/df_miniapp/classes/com/tt/miniapp/about/AboutInfo.java new file mode 100644 index 0000000..29f3514 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/about/AboutInfo.java @@ -0,0 +1,47 @@ +package com.tt.miniapp.about; + +import java.util.ArrayList; + +public class AboutInfo { + public String aid; + + public String corp_name; + + public ArrayList domains; + + public String encryIV; + + public String encryKey; + + public String icon; + + public String id_name; + + public boolean is_corp; + + public ArrayList mp_list; + + public String name; + + public String service_category; + + public String summary; + + public long update_time; + + public String version; + + public static class HeadlinePlatform { + public String avatar_url; + + public int mid; + + public String name; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\about\AboutInfo.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/about/MicroAppSubjectInfoActivity.java b/df_miniapp/classes/com/tt/miniapp/about/MicroAppSubjectInfoActivity.java new file mode 100644 index 0000000..abb5c70 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/about/MicroAppSubjectInfoActivity.java @@ -0,0 +1,180 @@ +package com.tt.miniapp.about; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.view.ViewTreeObserver; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import com.tt.miniapp.ImmersedStatusBarHelper; +import com.tt.miniapp.util.DateUtils; +import com.tt.miniapp.view.RoundedImageView; +import com.tt.miniapp.view.ViewUtils; +import com.tt.miniapp.view.swipeback.SwipeBackActivity; +import com.tt.miniapphost.entity.NativeUIParamsEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.language.LanguageChangeListener; +import com.tt.miniapphost.util.UIUtils; +import java.util.List; + +public class MicroAppSubjectInfoActivity extends SwipeBackActivity implements LanguageChangeListener { + public String corp_name; + + private List domains; + + public String icon; + + public RoundedImageView ivMicroappIcon; + + private LinearLayout lyMicroappDomains; + + private LinearLayout lyMicroappServiceCategory; + + private ImmersedStatusBarHelper mImmersedStatusBarHelper; + + public String name; + + public String service_category; + + private TextView tvMicroappCorpName; + + private TextView tvMicroappDomains; + + private TextView tvMicroappName; + + private TextView tvMicroappServiceCategory; + + private TextView tvMicroappUpdateTime; + + private TextView tvMicroappVersion; + + public long update_time; + + public String version; + + private void initIntent() { + Intent intent = getIntent(); + this.icon = intent.getStringExtra("icon"); + this.name = intent.getStringExtra("name"); + this.corp_name = intent.getStringExtra("corp_name"); + this.service_category = intent.getStringExtra("service_category"); + this.version = intent.getStringExtra("version"); + this.update_time = intent.getLongExtra("update_time", 0L); + this.domains = intent.getStringArrayListExtra("domains"); + } + + private void initTitle() { + ((ImageView)findViewById(2097545355)).setImageResource(2097479751); + UIUtils.configTitleBarWithHeight((Context)this, findViewById(2097545400)); + findViewById(2097545404).setVisibility(8); + findViewById(2097545400).setBackgroundColor(-1); + findViewById(2097545355).setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + MicroAppSubjectInfoActivity.this.finish(); + } + }); + UIUtils.setViewVisibility(findViewById(2097545413), 8); + ((TextView)findViewById(2097545358)).setText(getString(2097741837)); + } + + private void initView() { + this.ivMicroappIcon = (RoundedImageView)findViewById(2097545230); + ViewUtils.setImageViewStyle((ImageView)this.ivMicroappIcon, (int)(NativeUIParamsEntity.getInst().getMicroAppLogoCornerRadiusRatio() * this.ivMicroappIcon.getMeasuredHeight())); + this.tvMicroappName = (TextView)findViewById(2097545482); + this.tvMicroappCorpName = (TextView)findViewById(2097545480); + this.tvMicroappServiceCategory = (TextView)findViewById(2097545483); + this.tvMicroappVersion = (TextView)findViewById(2097545496); + this.tvMicroappUpdateTime = (TextView)findViewById(2097545494); + this.tvMicroappDomains = (TextView)findViewById(2097545481); + this.lyMicroappServiceCategory = (LinearLayout)findViewById(2097545239); + this.lyMicroappDomains = (LinearLayout)findViewById(2097545238); + if (TextUtils.isEmpty(this.service_category)) + this.lyMicroappServiceCategory.setVisibility(8); + if (!TextUtils.isEmpty(this.icon)) { + HostDependManager.getInst().loadImage((Context)this, (ImageView)this.ivMicroappIcon, Uri.parse(this.icon)); + } else { + this.ivMicroappIcon.setImageDrawable(getResources().getDrawable(2097479724)); + } + if (!TextUtils.isEmpty(this.name)) + this.tvMicroappName.setText(this.name); + if (!TextUtils.isEmpty(this.corp_name)) + this.tvMicroappCorpName.setText(this.corp_name); + if (!TextUtils.isEmpty(this.service_category) && this.lyMicroappServiceCategory.isShown()) + this.tvMicroappServiceCategory.setText(this.service_category); + if (!TextUtils.isEmpty(this.version)) + if (!TextUtils.equals("null", this.version)) { + this.tvMicroappVersion.setText(this.version); + } else { + this.tvMicroappVersion.setText(getString(2097742044)); + } + long l = this.update_time; + if (l != 0L) { + this.tvMicroappUpdateTime.setText(DateUtils.parseDate(l * 1000L)); + } else { + this.tvMicroappUpdateTime.setText(getString(2097742044)); + } + List list = this.domains; + if (list != null && list.size() != 0) { + StringBuffer stringBuffer = new StringBuffer(); + int j = this.domains.size(); + for (int i = 0; i < j; i++) { + if (i > 0) + stringBuffer.append("\n"); + if (!this.lyMicroappDomains.isShown()) + this.lyMicroappDomains.setVisibility(0); + stringBuffer.append(this.domains.get(i)); + } + this.tvMicroappDomains.setText(stringBuffer); + } else { + this.lyMicroappDomains.setVisibility(8); + } + this.ivMicroappIcon.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + public void onGlobalLayout() { + MicroAppSubjectInfoActivity.this.ivMicroappIcon.getViewTreeObserver().removeOnGlobalLayoutListener(this); + ViewUtils.setImageViewStyle((ImageView)MicroAppSubjectInfoActivity.this.ivMicroappIcon, (int)(NativeUIParamsEntity.getInst().getMicroAppLogoCornerRadiusRatio() * MicroAppSubjectInfoActivity.this.ivMicroappIcon.getMeasuredHeight())); + } + }); + } + + public void finish() { + super.finish(); + overridePendingTransition(0, UIUtils.getSlideOutAnimation()); + } + + protected ImmersedStatusBarHelper.ImmersedStatusBarConfig getImmersedStatusBarConfig() { + return (new ImmersedStatusBarHelper.ImmersedStatusBarConfig()).setFitsSystemWindows(true).setStatusBarColor(getResources().getColor(2097348664)); + } + + public void onBackPressed() { + super.onBackPressed(); + overridePendingTransition(0, UIUtils.getSlideOutAnimation()); + } + + public void onCreate(Bundle paramBundle) { + super.onCreate(paramBundle); + setContentView(2097676289); + this.mImmersedStatusBarHelper = new ImmersedStatusBarHelper((Activity)this, getImmersedStatusBarConfig()); + this.mImmersedStatusBarHelper.setup(true); + this.mImmersedStatusBarHelper.setUseLightStatusBarInternal(true); + initIntent(); + initView(); + initTitle(); + } + + public void onLanguageChange() {} + + public boolean swipeBackPriority() { + return super.swipeBackPriority(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\about\MicroAppSubjectInfoActivity.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/activity/MoveHostFrontActivity.java b/df_miniapp/classes/com/tt/miniapp/activity/MoveHostFrontActivity.java new file mode 100644 index 0000000..0983967 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/activity/MoveHostFrontActivity.java @@ -0,0 +1,39 @@ +package com.tt.miniapp.activity; + +import android.app.Activity; +import android.os.Bundle; +import android.view.MotionEvent; +import com.tt.miniapp.util.ActivityUtil; +import com.tt.miniapphost.AppBrandLogger; + +public class MoveHostFrontActivity extends Activity { + private static String TAG = "MoveHostFrontActivity"; + + protected void onCreate(Bundle paramBundle) { + super.onCreate(paramBundle); + if (ActivityUtil.isMoveActivityToFrontSilentIntent(getIntent())) + ActivityUtil.changeToSilentHideActivityAnimation(this); + } + + public void onResume() { + super.onResume(); + if (!isFinishing()) { + AppBrandLogger.i(TAG, new Object[] { "finish onResume" }); + finish(); + } + } + + public boolean onTouchEvent(MotionEvent paramMotionEvent) { + if (paramMotionEvent != null && paramMotionEvent.getAction() == 0 && !isFinishing()) { + AppBrandLogger.i(TAG, new Object[] { "finish onTouch" }); + finish(); + } + return super.onTouchEvent(paramMotionEvent); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\activity\MoveHostFrontActivity.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/activity/OpenSchemaMiddleActivity.java b/df_miniapp/classes/com/tt/miniapp/activity/OpenSchemaMiddleActivity.java new file mode 100644 index 0000000..0e85618 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/activity/OpenSchemaMiddleActivity.java @@ -0,0 +1,309 @@ +package com.tt.miniapp.activity; + +import android.app.Activity; +import android.content.Context; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.view.WindowManager; +import android.widget.FrameLayout; +import com.tt.miniapp.ImmersedStatusBarHelper; +import com.tt.miniapp.manager.SnapshotManager; +import com.tt.miniapp.process.AppProcessManager; +import com.tt.miniapp.process.bridge.InnerMiniAppProcessBridge; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.util.ActivityUtil; +import com.tt.miniapp.util.BaseNavBarUtils; +import com.tt.miniapp.util.DevicesUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.process.callback.IpcCallback; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.helper.AsyncIpcHandler; +import com.tt.miniapphost.util.DebugUtil; +import com.tt.miniapphost.util.ProcessUtil; +import com.tt.miniapphost.util.UIUtils; +import com.tt.miniapphost.view.BaseActivity; + +public class OpenSchemaMiddleActivity extends BaseActivity { + @Deprecated + public static final String PARAMS_CLASS_NAME = "class_name"; + + private boolean mAddSecureFlag = false; + + private Runnable mAutoShowMiniAppRunnable = new Runnable() { + public void run() { + OpenSchemaMiddleActivity.this.tryShowMiniAppActivity(); + } + }; + + public boolean mFirstResume = true; + + public String mFromAppId; + + private boolean mFromAppInHostStack; + + private boolean mFromMiniGame = false; + + public IpcCallback mGetSnapshotIpcCallback; + + public String mLaunchFlag; + + public final Object mMeasureLock = new Object(); + + public boolean mMovingMiniAppActivity; + + public boolean mTriggerResumeWhenNewShow; + + public Runnable mUpdateSnapshotRunnable; + + private void configWindow() { + if (this.mFromMiniGame) { + requestWindowFeature(1); + getWindow().setFlags(1024, 1024); + getWindow().setSoftInputMode(16); + if (DevicesUtil.hasNotchInScreen((Context)this)) + DevicesUtil.setFullScreenWindowLayoutInDisplayCutout(getWindow()); + if (Build.VERSION.SDK_INT >= 28) { + WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); + layoutParams.layoutInDisplayCutoutMode = 1; + getWindow().setAttributes(layoutParams); + } + BaseNavBarUtils.hideNavigation((Activity)this); + ActivityUtil.setFullScreen((Activity)this); + return; + } + ImmersedStatusBarHelper immersedStatusBarHelper = new ImmersedStatusBarHelper((Activity)this, new ImmersedStatusBarHelper.ImmersedStatusBarConfig()); + immersedStatusBarHelper.setup(true); + immersedStatusBarHelper.setUseLightStatusBarInternal(true); + } + + private void generateSnapShotView(String paramString) { + final View contentView = new View((Context)this); + view.setBackgroundColor(-1); + setContentView(view); + view.setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + if (OpenSchemaMiddleActivity.this.mTriggerResumeWhenNewShow) { + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "点击快照视图跳回小程序页面 mFromAppId:", this.this$0.mFromAppId }); + OpenSchemaMiddleActivity.this.showMiniAppActivityOnFront(); + } + } + }); + AppProcessManager.ProcessInfo processInfo = AppProcessManager.getProcessInfoByAppId(paramString); + if (processInfo == null) { + AppBrandLogger.e("OpenSchemaMiddleActivity", new Object[] { "获取触发 openSchema 的小程序进程信息异常" }); + return; + } + this.mGetSnapshotIpcCallback = new IpcCallback() { + public void onIpcCallback(CrossProcessDataEntity param1CrossProcessDataEntity) { + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "收到小程序进程快照回调" }); + finishListenIpcCallback(); + if (param1CrossProcessDataEntity != null) { + String str = param1CrossProcessDataEntity.getString("snapshot"); + } else { + param1CrossProcessDataEntity = null; + } + if (TextUtils.isEmpty((CharSequence)param1CrossProcessDataEntity)) { + AppBrandLogger.e("OpenSchemaMiddleActivity", new Object[] { "小程序进程快照回调中不包含快照信息" }); + return; + } + try { + if (contentView.getHeight() == 0) + synchronized (OpenSchemaMiddleActivity.this.mMeasureLock) { + OpenSchemaMiddleActivity.this.forceMeasureContentView(contentView); + OpenSchemaMiddleActivity.this.mMeasureLock.wait(); + } + int i = contentView.getWidth(); + int j = contentView.getHeight(); + final BitmapDrawable snapshotDrawable = SnapshotManager.getSnapshotDrawableFromFile(OpenSchemaMiddleActivity.this.getResources(), (String)param1CrossProcessDataEntity, i, j); + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "生成快照视图" }); + OpenSchemaMiddleActivity.this.mUpdateSnapshotRunnable = new Runnable() { + public void run() { + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "设置页面快照" }); + contentView.setBackground((Drawable)snapshotDrawable); + } + }; + ThreadUtil.runOnUIThread(OpenSchemaMiddleActivity.this.mUpdateSnapshotRunnable); + } catch (Exception exception) { + AppBrandLogger.eWithThrowable("OpenSchemaMiddleActivity", "setSnapshotAsBackground", exception); + } + OpenSchemaMiddleActivity.this.mGetSnapshotIpcCallback = null; + } + + public void onIpcConnectError() { + OpenSchemaMiddleActivity.this.mGetSnapshotIpcCallback = null; + } + }; + InnerMiniAppProcessBridge.getSnapshot(processInfo.mProcessIdentity, this.mGetSnapshotIpcCallback); + } + + private boolean isOpenSchemaInCurrentStack() { + return "currentTask".equalsIgnoreCase(this.mLaunchFlag); + } + + private boolean isSchemaPageInHostStack() { + return "newTask".equalsIgnoreCase(this.mLaunchFlag); + } + + private boolean openSchema() { + boolean bool1; + boolean bool2; + String str1 = getIntent().getStringExtra("schema"); + String str2 = getIntent().getStringExtra("args"); + AsyncIpcHandler asyncIpcHandler = ProcessUtil.generateAsyncIpcHandlerFromUri(Uri.parse(str1)); + if (HostDependManager.getInst().openSchema((Context)this, str1) || HostDependManager.getInst().openSchema((Context)this, str1, str2)) { + if (HostDependManager.getInst().isEnableOpenSchemaAnimation()) + overridePendingTransition(UIUtils.getSlideInAnimation(), 2131034242); + bool2 = true; + bool1 = false; + } else { + bool2 = false; + bool1 = true; + } + if (asyncIpcHandler != null) { + asyncIpcHandler.callback(CrossProcessDataEntity.Builder.create().put("openSchemaResult", Boolean.valueOf(bool2)).put("openSchemaFailType", Integer.valueOf(bool1)).build()); + } else { + DebugUtil.outputError("OpenSchemaMiddleActivity", new Object[] { "asyncIpcHandler ==null" }); + } + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "openSchema schema:", str1, "openSchemaSuccess:", Boolean.valueOf(bool2) }); + return bool2; + } + + public void finishCurrentActivity() { + if (isFinishing()) + return; + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "finishCurrentActivity mFromAppId:", this.mFromAppId }); + if (ActivityUtil.isTaskSingleActivity((Activity)this)) { + finishAndRemoveTask(); + return; + } + finish(); + } + + public void forceMeasureContentView(final View contentView) { + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "forceMeasureContentView" }); + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + FrameLayout frameLayout = (FrameLayout)OpenSchemaMiddleActivity.this.getWindow().getDecorView(); + contentView.measure(View.MeasureSpec.makeMeasureSpec(frameLayout.getMeasuredWidth(), -2147483648), View.MeasureSpec.makeMeasureSpec(frameLayout.getMeasuredHeight(), -2147483648)); + synchronized (OpenSchemaMiddleActivity.this.mMeasureLock) { + OpenSchemaMiddleActivity.this.mMeasureLock.notifyAll(); + return; + } + } + }); + } + + public void onBackPressed() { + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "onBackPressed" }); + tryShowMiniAppActivity(); + } + + public void onCreate(Bundle paramBundle) { + super.onCreate(paramBundle); + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "onCreate" }); + this.mLaunchFlag = getIntent().getStringExtra("launch_flag"); + this.mFromAppId = getIntent().getStringExtra("from_app_id"); + this.mFromAppInHostStack = getIntent().getBooleanExtra("is_from_app_in_host_stack", this.mFromAppInHostStack); + this.mFromMiniGame = getIntent().getBooleanExtra("is_game", false); + configWindow(); + if (!openSchema()) { + tryShowMiniAppActivity(); + } else { + ThreadUtil.runOnUIThread(this.mAutoShowMiniAppRunnable, 5000L); + } + generateSnapShotView(this.mFromAppId); + } + + public void onDestroy() { + super.onDestroy(); + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "onDestroy" }); + if (this.mAddSecureFlag) + getWindow().clearFlags(8192); + ThreadUtil.cancelUIRunnable(this.mUpdateSnapshotRunnable); + ThreadUtil.cancelUIRunnable(this.mAutoShowMiniAppRunnable); + IpcCallback ipcCallback = this.mGetSnapshotIpcCallback; + if (ipcCallback != null) { + ipcCallback.finishListenIpcCallback(); + this.mGetSnapshotIpcCallback = null; + } + } + + public void onEnterAnimationComplete() { + super.onEnterAnimationComplete(); + if (this.mTriggerResumeWhenNewShow) { + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "onEnterAnimationComplete tryShowMiniAppActivity mFromAppId:", this.mFromAppId }); + tryShowMiniAppActivity(); + } + } + + public void onPause() { + super.onPause(); + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "onPause" }); + ThreadUtil.cancelUIRunnable(this.mAutoShowMiniAppRunnable); + if (isSchemaPageInHostStack()) + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + OpenSchemaMiddleActivity.this.finishCurrentActivity(); + } + }, 300L); + } + + public void onResume() { + super.onResume(); + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "onResume" }); + if (this.mFromMiniGame) + ActivityUtil.setFullScreen((Activity)this); + if (this.mFirstResume) { + this.mFirstResume = false; + return; + } + this.mTriggerResumeWhenNewShow = true; + getWindow().addFlags(8192); + this.mAddSecureFlag = true; + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "onResume tryShowMiniAppActivity mFromAppId:", this.this$0.mFromAppId }); + OpenSchemaMiddleActivity.this.tryShowMiniAppActivity(); + } + }500L); + } + + public void onStop() { + super.onStop(); + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "onStop" }); + } + + public void showMiniAppActivityOnFront() { + AppBrandLogger.d("OpenSchemaMiddleActivity", new Object[] { "showMiniAppActivityOnFront mFromAppId:", this.mFromAppId }); + if (!isOpenSchemaInCurrentStack() && !isSchemaPageInHostStack() && !this.mFromAppInHostStack) { + this.mMovingMiniAppActivity = ActivityUtil.moveMiniAppActivityToFront((Activity)this, this.mFromAppId); + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "moveMiniAppActivityToFront mFromAppId:", this.mFromAppId }); + } + finishCurrentActivity(); + if (!this.mMovingMiniAppActivity) + ActivityUtil.changeToSilentHideActivityAnimation((Activity)this); + } + + public void tryShowMiniAppActivity() { + if (this.mMovingMiniAppActivity || isFinishing()) { + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "tryShowMiniAppActivity mMovingMiniAppActivity || isFinishing()" }); + return; + } + long l = System.currentTimeMillis(); + if (ActivityUtil.isActivityAtHostStackTop((Activity)this)) + showMiniAppActivityOnFront(); + AppBrandLogger.i("OpenSchemaMiddleActivity", new Object[] { "tryShowMiniAppActivity duration:", Long.valueOf(System.currentTimeMillis() - l) }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\activity\OpenSchemaMiddleActivity.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/ad/AdMonitorHelper.java b/df_miniapp/classes/com/tt/miniapp/ad/AdMonitorHelper.java new file mode 100644 index 0000000..9411fb5 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/ad/AdMonitorHelper.java @@ -0,0 +1,13 @@ +package com.tt.miniapp.ad; + +public class AdMonitorHelper { + public static void monitorVideoStatus(int paramInt, boolean paramBoolean) { + throw new RuntimeException("d2j fail translate: java.lang.RuntimeException: can not merge I and Z\r\n\tat com.googlecode.dex2jar.ir.TypeClass.merge(TypeClass.java:100)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeRef.updateTypeClass(TypeTransformer.java:174)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.copyTypes(TypeTransformer.java:311)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.fixTypes(TypeTransformer.java:226)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.analyze(TypeTransformer.java:207)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer.transform(TypeTransformer.java:44)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:162)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:414)\r\n\tat com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:42)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:128)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:509)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:406)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:422)\r\n\tat com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:172)\r\n\tat com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:272)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:108)\r\n\tat com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)\r\n"); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\ad\AdMonitorHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/ad/app/video/VideoAdMgr.java b/df_miniapp/classes/com/tt/miniapp/ad/app/video/VideoAdMgr.java new file mode 100644 index 0000000..404b5c5 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/ad/app/video/VideoAdMgr.java @@ -0,0 +1,49 @@ +package com.tt.miniapp.ad.app.video; + +import com.tt.miniapphost.host.HostDependManager; +import com.tt.option.ad.g; +import com.tt.option.ad.h; + +public class VideoAdMgr { + private g mGameAdManager; + + private boolean mSwipeEnableBefore; + + public VideoAdMgr(g.a parama) { + this.mGameAdManager = HostDependManager.getInst().createGameAdManager(parama); + } + + private boolean invalid() { + return (this.mGameAdManager == null); + } + + public boolean getSwipeEnableBefore() { + return this.mSwipeEnableBefore; + } + + public boolean isVideoAdShown() { + return invalid() ? false : this.mGameAdManager.b(); + } + + public boolean onBack() { + return invalid() ? false : this.mGameAdManager.a(); + } + + public boolean onCreateVideoAd(h paramh) { + return invalid() ? false : this.mGameAdManager.d(paramh); + } + + public boolean onOperateVideoAd(h paramh) { + return invalid() ? false : this.mGameAdManager.e(paramh); + } + + public void setSwipeEnableBefore(boolean paramBoolean) { + this.mSwipeEnableBefore = paramBoolean; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\ad\app\video\VideoAdMgr.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/address/AddressInfo.java b/df_miniapp/classes/com/tt/miniapp/address/AddressInfo.java new file mode 100644 index 0000000..5c551dc --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/address/AddressInfo.java @@ -0,0 +1,39 @@ +package com.tt.miniapp.address; + +import com.tt.miniapp.component.nativeview.picker.wheel.entity.WheelItem; + +public class AddressInfo implements WheelItem { + public String code = ""; + + public String name = ""; + + public String type = ""; + + public AddressInfo(String paramString1, String paramString2, String paramString3) { + this.name = paramString1; + this.code = paramString2; + this.type = paramString3; + } + + public String getAddrHashCode() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(this.name); + stringBuilder.append(this.code); + stringBuilder.append(this.type); + return stringBuilder.toString(); + } + + public String getName() { + return this.name; + } + + public String toString() { + return this.name; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\address\AddressInfo.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/address/LoadAddressTask.java b/df_miniapp/classes/com/tt/miniapp/address/LoadAddressTask.java new file mode 100644 index 0000000..71bf653 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/address/LoadAddressTask.java @@ -0,0 +1,206 @@ +package com.tt.miniapp.address; + +import android.content.Context; +import android.os.AsyncTask; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.util.AppbrandUtil; +import com.tt.miniapphost.util.StorageUtil; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicBoolean; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class LoadAddressTask extends AsyncTask> { + private static AtomicBoolean isLoadFinished; + + private static Map> mCache = new ConcurrentHashMap>(); + + private static Map mDepthCache = new ConcurrentHashMap(); + + private String DEFAULT_DISTRICT_CHINA; + + private LoadCallBack mCallBack; + + private int mDepth = 2; + + private String mKey = "province"; + + private WeakReference mWeakContext; + + static { + isLoadFinished = new AtomicBoolean(false); + } + + public LoadAddressTask(Context paramContext, LoadCallBack paramLoadCallBack) { + this.mCallBack = paramLoadCallBack; + this.mWeakContext = new WeakReference(paramContext); + this.DEFAULT_DISTRICT_CHINA = paramContext.getString(2097741871); + } + + public static InputStream initializeDivisionFile(Context paramContext) throws Exception { + File file2 = new File(new File(AppbrandUtil.getOfflineZipDir(paramContext), "address"), "address.json"); + if (file2.exists() && file2.length() > 1L) + return new FileInputStream(file2); + StringBuffer stringBuffer = new StringBuffer(StorageUtil.getExternalFilesDir(paramContext).getPath()); + stringBuffer.append("/address.json"); + File file1 = new File(stringBuffer.toString()); + return (file1.exists() && file1.length() > 1L) ? new FileInputStream(file1) : null; + } + + private void loadCityFromProvince(JSONObject paramJSONObject) throws JSONException { + if (paramJSONObject == null) + return; + JSONArray jSONArray = paramJSONObject.getJSONArray("regionEntitys"); + for (int i = 0; i < jSONArray.length(); i++) { + ArrayList arrayList = new ArrayList(); + for (int j = 0; j < jSONArray.length(); j++) + arrayList.add(new AddressInfo(jSONArray.getJSONObject(j).getString("region"), jSONArray.getJSONObject(j).getString("code"), "city")); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramJSONObject.getString("region")); + stringBuilder.append(paramJSONObject.getString("code")); + stringBuilder.append("province"); + String str = stringBuilder.toString(); + AppBrandLogger.d("LoadAddressTask", new Object[] { "city name ", str }); + mCache.put(str, arrayList); + mDepthCache.put(str, Integer.valueOf(1)); + loadDistrictFromCity(jSONArray.getJSONObject(i)); + } + } + + private void loadDistrictFromCity(JSONObject paramJSONObject) throws JSONException { + if (paramJSONObject == null) + return; + ArrayList arrayList = new ArrayList(); + JSONArray jSONArray = paramJSONObject.getJSONArray("regionEntitys"); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramJSONObject.getString("region")); + stringBuilder.append(paramJSONObject.getString("code")); + stringBuilder.append("city"); + String str = stringBuilder.toString(); + for (int i = 0; i < jSONArray.length(); i++) + arrayList.add(new AddressInfo(jSONArray.getJSONObject(i).getString("region"), jSONArray.getJSONObject(i).getString("code"), "district")); + if (arrayList.size() <= 0) { + arrayList.add(new AddressInfo(this.DEFAULT_DISTRICT_CHINA, "", "district")); + mCache.put(str, arrayList); + mDepthCache.put(str, Integer.valueOf(2)); + return; + } + mCache.put(str, arrayList); + mDepthCache.put(str, Integer.valueOf(2)); + } + + private List loadProvince(JSONArray paramJSONArray) throws JSONException { + ArrayList arrayList = new ArrayList(); + for (int i = 0; i < paramJSONArray.length(); i++) { + JSONObject jSONObject = paramJSONArray.getJSONObject(i); + String str1 = jSONObject.getString("region"); + String str2 = jSONObject.getString("code"); + loadCityFromProvince(jSONObject); + if (!arrayList.contains(str1)) + arrayList.add(new AddressInfo(str1, str2, "province")); + } + mCache.put("province", arrayList); + mDepthCache.put("province", Integer.valueOf(0)); + return arrayList; + } + + protected List doInBackground(String... paramVarArgs) { + AppBrandLogger.d("LoadAddressTask", new Object[] { "start load :", paramVarArgs[0] }); + try { + return loadDivisionFromJson(paramVarArgs[0]); + } catch (JSONException jSONException) { + AppBrandLogger.e("LoadAddressTask", new Object[] { jSONException }); + return null; + } + } + + public int getLastDepth() { + return this.mDepth; + } + + public List loadDivisionFromCache(String paramString) { + AppBrandLogger.e("LoadAddressTask", new Object[] { "queryKey ", paramString }); + if (mCache.containsKey(paramString)) { + this.mDepth = ((Integer)mDepthCache.get(paramString)).intValue(); + return mCache.get(paramString); + } + return null; + } + + public List loadDivisionFromJson(String paramString) throws JSONException { + List list = loadDivisionFromCache(paramString); + if (list != null) + return list; + try { + InputStream inputStream = initializeDivisionFile(this.mWeakContext.get()); + if (inputStream == null) { + AppBrandLogger.e("LoadAddressTask", new Object[] { "address.json does not exist!" }); + try { + isLoadFinished.set(true); + (new Object[2])[0] = "load asset file finished:"; + throw new NullPointerException(); + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "LoadAddressTask", exception.getStackTrace()); + return null; + } + } + byte[] arrayOfByte = new byte[inputStream.available()]; + inputStream.read(arrayOfByte); + inputStream.close(); + JSONArray jSONArray = new JSONArray(new String(arrayOfByte, "UTF-8")); + try { + isLoadFinished.set(true); + AppBrandLogger.d("LoadAddressTask", new Object[] { "load asset file finished:", Integer.valueOf(jSONArray.length()) }); + } catch (Exception exception1) { + AppBrandLogger.stacktrace(6, "LoadAddressTask", exception1.getStackTrace()); + } + } catch (Exception exception1) { + AppBrandLogger.e("LoadAddressTask", new Object[] { "load error:", exception1 }); + try { + isLoadFinished.set(true); + (new Object[2])[0] = "load asset file finished:"; + throw new NullPointerException(); + } catch (Exception exception2) { + AppBrandLogger.stacktrace(6, "LoadAddressTask", exception2.getStackTrace()); + exception2 = null; + } + } finally {} + if (list == null || list.length() <= 0) { + AppBrandLogger.e("LoadAddressTask", new Object[] { "empty list found!" }); + return null; + } + if (mCache.size() <= 1) { + AppBrandLogger.e("LoadAddressTask", new Object[] { "Json parse exception ", exception }); + loadProvince((JSONArray)list); + } + this.mDepth = ((Integer)mDepthCache.get(exception)).intValue(); + return mCache.get(exception); + } + + protected void onPostExecute(List paramList) { + if (paramList == null) + return; + AppBrandLogger.d("LoadAddressTask", new Object[] { "load finished:", Integer.valueOf(paramList.size()), ",depth:", Integer.valueOf(this.mDepth) }); + LoadCallBack loadCallBack = this.mCallBack; + if (loadCallBack != null) + loadCallBack.onLoaded(this.mKey, paramList, this.mDepth); + } + + public static interface LoadCallBack { + void onLoaded(String param1String, List param1List, int param1Int); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\address\LoadAddressTask.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteBrowser.java b/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteBrowser.java new file mode 100644 index 0000000..e978f54 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteBrowser.java @@ -0,0 +1,589 @@ +package com.tt.miniapp.adsite; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.FragmentActivity; +import android.text.TextUtils; +import android.view.Choreographer; +import android.view.KeyEvent; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.webkit.WebView; +import android.widget.FrameLayout; +import com.tt.frontendapiinterface.b; +import com.tt.frontendapiinterface.c; +import com.tt.frontendapiinterface.e; +import com.tt.frontendapiinterface.k; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.BaseActivityProxy; +import com.tt.miniapp.ImmersedStatusBarHelper; +import com.tt.miniapp.TTAppbrandTabUI; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.badcase.BlockPageManager; +import com.tt.miniapp.base.activity.IActivityResultHandler; +import com.tt.miniapp.component.nativeview.NativeAdWebView; +import com.tt.miniapp.debug.PerformanceService; +import com.tt.miniapp.debug.SwitchManager; +import com.tt.miniapp.dialog.LoadHelper; +import com.tt.miniapp.errorcode.ErrorCode; +import com.tt.miniapp.event.Event; +import com.tt.miniapp.event.InnerEventHelper; +import com.tt.miniapp.event.LoadStateManager; +import com.tt.miniapp.event.external.search.SearchEventHelper; +import com.tt.miniapp.extraWeb.ComponentWebViewRender; +import com.tt.miniapp.guide.ReenterGuideHelper; +import com.tt.miniapp.keyboarddetect.KeyboardHeightProvider; +import com.tt.miniapp.launchschedule.ILaunchProgressListener; +import com.tt.miniapp.monitor.BaseMonitorTask; +import com.tt.miniapp.monitor.FpsMonitorTask; +import com.tt.miniapp.monitor.MiniAppPerformanceDialog; +import com.tt.miniapp.monitor.MonitorHandler; +import com.tt.miniapp.permission.BrandPermissionUtils; +import com.tt.miniapp.permission.PermissionsManager; +import com.tt.miniapp.preload.PreloadManager; +import com.tt.miniapp.process.bridge.InnerHostProcessBridge; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.titlebar.BaseTitleBar; +import com.tt.miniapp.titlebar.ITitleBar; +import com.tt.miniapp.user.TmaUserManager; +import com.tt.miniapp.util.RenderSnapShotManager; +import com.tt.miniapp.util.SystemInfoUtil; +import com.tt.miniapp.util.TimeLineReporter; +import com.tt.miniapp.util.TimeLogger; +import com.tt.miniapp.util.ToolUtils; +import com.tt.miniapp.view.LaunchLoadingView; +import com.tt.miniapp.view.MiniAppContainerView; +import com.tt.miniapp.view.SizeDetectFrameLayout; +import com.tt.miniapp.view.swipeback.EventParamsValue; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.ModeManager; +import com.tt.miniapphost.NativeModule; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.language.LanguageChangeListener; +import com.tt.miniapphost.language.LocaleManager; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.util.CharacterUtils; +import com.tt.miniapphost.util.TimeMeter; +import com.tt.miniapphost.util.UIUtils; +import com.tt.option.n.c; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import org.json.JSONObject; + +public class AdSiteBrowser extends BaseActivityProxy implements e, k, ILaunchProgressListener, SystemInfoUtil.IActivityRootView, SizeDetectFrameLayout.IWindowSizeChangeListener, LanguageChangeListener { + private List IKeyboardObserverList = new ArrayList(); + + public KeyboardHeightProvider keyboardHeightProvider; + + private IActivityResultHandler mActivityResultHandler; + + private NativeAdWebView mAdWebView; + + private View mCloseBtn; + + private ImmersedStatusBarHelper mImmersedStatusBarHelper; + + private boolean mNeedReportResultOnResume; + + private boolean mReportedFirstDOMReady; + + public MiniAppContainerView mRootLayout; + + public AdSiteTitleBar mTitleBar; + + public AdSiteBrowser(FragmentActivity paramFragmentActivity) { + super(paramFragmentActivity); + ((TimeLineReporter)this.mApp.getService(TimeLineReporter.class)).recordLaunchStartTime(); + } + + private void doBack(String paramString1, String paramString2, boolean paramBoolean, int paramInt) { + this.mApp.setStopReason(paramString1); + EventParamsValue.PARAMS_EXIT_TYPE = paramString2; + EventParamsValue.IS_OTHER_FLAG = paramBoolean; + exitInternal(paramInt); + } + + private void doPause() { + this.mAdWebView.onPause(); + this.keyboardHeightProvider.setKeyboardHeightObserver(null); + } + + private void doResume() { + this.mTitleBar.updateLeftViewVisibility(); + this.mAdWebView.onResume(); + this.keyboardHeightProvider.setKeyboardHeightObserver(this); + reportResultIfNeed(); + } + + private void exitInternal(final int exitType) { + Runnable runnable = new Runnable() { + public void run() { + ToolUtils.onActivityExit((Activity)AdSiteBrowser.this.mActivity, exitType); + AppBrandLogger.d("AdSiteBrowser", new Object[] { " moveTaskToBack " }); + } + }; + if (exitType != 10) { + ReenterGuideHelper.checkReenterGuideTip((Activity)this.mActivity, runnable); + return; + } + runnable.run(); + } + + private ImmersedStatusBarHelper.ImmersedStatusBarConfig getImmersedStatusBarConfig() { + return new ImmersedStatusBarHelper.ImmersedStatusBarConfig(); + } + + private void hideLoadShowUI() { + if (!this.isShowingLoadingView) + return; + this.isShowingLoadingView = false; + this.mLaunchLoadingView.removeLoadingLayout(); + } + + private void initLoadingView() { + this.keyboardHeightProvider = new KeyboardHeightProvider((Activity)this.mActivity); + this.mRootLayout = (MiniAppContainerView)this.mActivity.findViewById(2097545471); + this.mRootLayout.setWindowSizeListener(this); + this.mRootLayout.post(new Runnable() { + public void run() { + AdSiteBrowser.this.keyboardHeightProvider.start(); + } + }); + this.mLaunchLoadingView = (LaunchLoadingView)((PreloadManager)this.mApp.getService(PreloadManager.class)).getPreloadedView(1); + this.mLaunchLoadingView.setLoadStartTime(this.mLoadStartTime); + this.mLaunchLoadingView.initWithActivity((Activity)this.mActivity); + this.mLaunchLoadingView.hideBottomTip(); + final RenderSnapShotManager renderSnapShotManager = (RenderSnapShotManager)this.mApp.getService(RenderSnapShotManager.class); + if (renderSnapShotManager.isSnapShotRender()) { + if (!TextUtils.isEmpty(renderSnapShotManager.getSnapShotErrorArgs())) { + this.mRootLayout.addView((View)this.mLaunchLoadingView); + postError(renderSnapShotManager.getSnapShotErrorArgs()); + } else { + AppbrandContext.mainHandler.postDelayed(new Runnable() { + public void run() { + if (!renderSnapShotManager.isSnapShotReady()) { + TimeLogger.getInstance().logTimeDuration(new String[] { "AdSiteBrowser_firstrender_showloading" }, ); + AdSiteBrowser.this.mRootLayout.addView((View)AdSiteBrowser.this.mLaunchLoadingView); + } + } + }, 1000L); + } + } else { + this.mRootLayout.addView((View)this.mLaunchLoadingView); + } + this.mCloseBtn = this.mLaunchLoadingView.findViewById(2097545405); + this.mLaunchLoadingView.updateViews(this.mApp.getAppInfo()); + this.mCloseBtn.setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + Event.builder("mp_close_btn_click").flush(); + AppBrandLogger.e("AdSiteBrowser", new Object[] { "mCloseBtn" }); + if (UIUtils.isViewVisible((View)AdSiteBrowser.this.mLaunchLoadingView) && AdSiteBrowser.this.mApp.getAppInfo() != null) { + AppBrandLogger.d("AdSiteBrowser", new Object[] { "onBackPressed cancel" }); + InnerEventHelper.mpLoadResultInner(TimeMeter.stop(AdSiteBrowser.this.mLoadStartTime), "cancel", "exit_close", AdSiteBrowser.this.mLaunchProfileTime.getTime(), TimeMeter.stop(AdSiteBrowser.this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + } + AdSiteBrowser.this.mApp.setStopReason("click_close_btn"); + EventParamsValue.PARAMS_EXIT_TYPE = "btn"; + EventParamsValue.IS_OTHER_FLAG = false; + ToolUtils.onActivityExit((Activity)AdSiteBrowser.this.mActivity, 2); + } + }); + } + + public static void preload(Context paramContext) { + AdSiteManager.getInstance().preload(paramContext); + } + + private void reportFirstDOMReady() { + if (this.mReportedFirstDOMReady) + return; + this.mReportedFirstDOMReady = true; + this.mLaunchProfileTime.pause(); + InnerEventHelper.mpLoadDomReady(TimeMeter.nowAfterStart(this.mLoadStartTime), this.mLaunchProfileTime.getTime(), TimeMeter.nowAfterStart(this.mEntranceClickTimeMeter), this.mHasActivityStoped); + } + + private void reportResult() { + LoadStateManager.getIns().stopRenderTime(); + TimeMeter.stop(this.mLoadStartTime); + TimeMeter.stop(this.mEntranceClickTimeMeter); + SearchEventHelper.loadDetailEvent(false, false, TimeMeter.stop(this.mLoadStartTime), 1, CharacterUtils.empty()); + if (!this.mApp.getForeBackgroundManager().isBackground()) { + LoadStateManager.getIns().reportPreloadResult("success"); + InnerEventHelper.mpLoadResultSuccess(TimeMeter.stop(this.mLoadStartTime), this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState(), this.mHasActivityStoped); + this.mLaunchDuration = this.mLoadingViewShowTimes.getTime(); + MiniAppPerformanceDialog.saveLaunchTime(this.mLaunchProfileTime.getTime()); + InnerEventHelper.mpLaunch(this.mLaunchDuration); + return; + } + this.mNeedReportResultOnResume = true; + } + + private void reportResultIfNeed() { + if (!this.mNeedReportResultOnResume) + return; + this.mNeedReportResultOnResume = false; + LoadStateManager.getIns().reportPreloadResult("success"); + InnerEventHelper.mpLoadResultSuccess(TimeMeter.stop(this.mLoadStartTime), this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState(), this.mHasActivityStoped); + this.mLaunchDuration = this.mLoadingViewShowTimes.getTime(); + InnerEventHelper.mpLaunch(this.mLaunchDuration); + } + + private void showFirstPage() { + TimeLogger.getInstance().logTimeDuration(new String[] { "AdSiteBrowser_showFirstPage" }); + AppBrandLogger.d("AdSiteBrowser", new Object[] { "onSuccess ", Long.valueOf(this.mLoadStartTime.getMillisAfterStart()) }); + reportResult(); + onDOMReady(); + hideLoadShowUI(); + startModule(); + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + HostProcessBridge.onMiniAppStart(appInfoEntity, appInfoEntity.isGame(), getScreenOrientationFromAppConfig()); + this.mMicroAppStartShowTimes = System.currentTimeMillis(); + InnerHostProcessBridge.setTmaLaunchFlag(); + } + + public View findViewById(int paramInt) { + return (this.mHomeLayout != null) ? this.mHomeLayout.findViewById(paramInt) : null; + } + + public View getActivityRootView() { + return (this.mActivity == null) ? null : this.mActivity.findViewById(16908290); + } + + public FrameLayout getRootView() { + return (FrameLayout)this.mRootLayout; + } + + public ITitleBar getTitleBar() { + AdSiteTitleBar adSiteTitleBar = this.mTitleBar; + return (ITitleBar)((adSiteTitleBar != null) ? adSiteTitleBar : BaseTitleBar.EMPTY); + } + + public void goback() { + onBackPressed(); + } + + public void initPerformanceDialog() { + if (this.mApp.getAppInfo() != null) { + if (!this.mApp.getAppInfo().isLocalTest()) + return; + if (((SwitchManager)this.mApp.getService(SwitchManager.class)).isPerformanceSwitchOn()) + MiniAppPerformanceDialog.showPerformanceDialog((Context)this.mActivity, new MiniAppPerformanceDialog.IDismissCallback() { + public void onDismiss() {} + }); + } + } + + public void initView() { + TimeLogger.getInstance().logTimeDuration(new String[] { "AdSiteBrowser_initView" }); + AppBrandLogger.d("AdSiteBrowser", new Object[] { "initView " }); + showFirstPage(); + this.mTitleBar.initView(null); + this.mTitleBar.makeStatusBar(); + String str = AdSiteManager.getInstance().buildUrlFromSchema(this.mApp.getSchema()).build().toString(); + this.mAdWebView.loadUrl(str, true); + } + + public void miniAppDownloadInstallFail(String paramString1, String paramString2) { + super.miniAppDownloadInstallFail(paramString1, paramString2); + SearchEventHelper.loadDetailEvent(false, false, TimeMeter.stop(this.mLoadStartTime), 0, SearchEventHelper.failReasonClient("download_fail")); + } + + public void miniAppDownloadInstallProgress(int paramInt) {} + + public void miniAppInstallSuccess() { + TimeLogger.getInstance().logTimeDuration(new String[] { "AdSiteBrowser_miniAppInstallSuccess" }); + AppBrandLogger.d("AdSiteBrowser", new Object[] { "miniAppInstallSuccess " }); + } + + public boolean onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + Map map1; + if (TmaUserManager.getInstance().handleActivityLoginResult(paramInt1, paramInt2, paramIntent)) + return true; + Map map2 = ModeManager.getInst().getModules(); + if (map2 != null) { + Iterator iterator1 = map2.values().iterator(); + while (iterator1.hasNext()) { + if (((NativeModule)iterator1.next()).onActivityResult(paramInt1, paramInt2, paramIntent)) + return true; + } + } + boolean bool2 = false; + if (paramInt1 == 5 && paramInt2 == 51 && paramIntent != null) { + map1 = (Map)paramIntent.getSerializableExtra("extra_change_permission_map"); + for (Map.Entry entry : map1.entrySet()) { + BrandPermissionUtils.setPermission(((Integer)entry.getKey()).intValue(), ((Boolean)entry.getValue()).booleanValue()); + AppBrandLogger.d("AdSiteBrowser", new Object[] { "change permission ", entry.getKey(), " ", entry.getValue() }); + } + if (map1.size() > 0) + HostDependManager.getInst().syncPermissionToService(); + return true; + } + if (paramInt1 == 11) { + c c = this.mAdWebView.getFileChooseHandler(); + if (c != null) + c.onActivityResult(paramInt1, paramInt2, (Intent)map1); + } + Iterator iterator = (new ArrayList((c.a()).a)).iterator(); + while (iterator.hasNext()) { + if (((b)iterator.next()).onActivityResult(paramInt1, paramInt2, (Intent)map1)) + bool2 = true; + } + boolean bool1 = bool2; + if (!bool2) { + b b = (c.a()).b; + bool1 = bool2; + if (b != null) + bool1 = b.onActivityResult(paramInt1, paramInt2, (Intent)map1); + } + bool2 = bool1; + if (!bool1) { + IActivityResultHandler iActivityResultHandler = this.mActivityResultHandler; + bool2 = bool1; + if (iActivityResultHandler != null) + bool2 = iActivityResultHandler.handleActivityResult(paramInt1, paramInt2, (Intent)map1); + } + return bool2; + } + + public void onAddVideoFragment() {} + + public void onBackPressed() { + if (this.isShowingLoadingView) { + AppBrandLogger.d("AdSiteBrowser", new Object[] { "onBackPressed cancel" }); + InnerEventHelper.mpLoadResultInner(TimeMeter.stop(this.mLoadStartTime), "cancel", "exit_back", this.mLaunchProfileTime.getTime(), TimeMeter.stop(this.mEntranceClickTimeMeter), LoadStateManager.getIns().getLoadState()); + ToolUtils.onActivityExit((Activity)this.mActivity, 9); + return; + } + if (consumeBackPress()) + return; + if (!this.mAdWebView.onBackPressed()) + doBack("backpress", "back", false, 9); + dismissFavoriteGuide(); + } + + public void onCreate(Bundle paramBundle) { + super.onCreate(paramBundle); + TimeLogger.getInstance().logTimeDuration(new String[] { "AdSiteBrowser_onCreate" }); + View view = AdSiteManager.getInstance().getLoadingView(); + if (view == null) { + try { + view = LayoutInflater.from(this.mActivity.getApplicationContext()).inflate(2097676290, null); + this.mActivity.setContentView(view); + } finally { + view = null; + AppBrandLogger.e("AdSiteBrowser", new Object[] { view }); + try { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("errMsg", "microapp setContentView fail "); + jSONObject.put("throwable", view.toString()); + AppBrandMonitor.statusRate("mp_start_error", 5000, jSONObject); + Thread.sleep(200L); + } catch (Exception exception) { + AppBrandLogger.e("AdSiteBrowser", new Object[] { view }); + } + this.mActivity.finish(); + } + } else { + UIUtils.removeParentView(view); + this.mActivity.setContentView(view); + } + this.mImmersedStatusBarHelper = new ImmersedStatusBarHelper((Activity)this.mActivity, getImmersedStatusBarConfig()); + this.mImmersedStatusBarHelper.setup(true); + this.mImmersedStatusBarHelper.setUseLightStatusBarInternal(true); + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + SearchEventHelper.init(appInfoEntity.launchFrom, this.mApp.getSchema()); + Event.builder("mp_load_start").kv("launch_type", appInfoEntity.launchType).flush(); + SearchEventHelper.onLoadStart(); + initLoadingView(); + getLaunchScheduler().startListenLaunchStatus(this); + this.mApp.setActivityLife(this); + MonitorHandler monitorHandler = ((PerformanceService)this.mApp.getService(PerformanceService.class)).getMonitorHandler(); + if (monitorHandler != null) + monitorHandler.addTask((BaseMonitorTask)new FpsMonitorTask(Choreographer.getInstance())); + UIUtils.setActivityOrientation((Activity)this.mActivity, 1); + LocaleManager.getInst().registerLangChangeListener(this); + ((BlockPageManager)this.mApp.getService(BlockPageManager.class)).handleColdLaunch(); + SystemInfoUtil.setActivityRootViewCallBack(this); + this.mTitleBar = new AdSiteTitleBar((Context)AppbrandContext.getInst().getApplicationContext(), (ViewGroup)this.mRootLayout); + this.mAdWebView = AdSiteManager.getInstance().getWebView((Context)this.mActivity); + this.mAdWebView.bind((WebViewManager.IRender)new ComponentWebViewRender(this.mApp, this.mAdWebView.getWebView(), this.mAdWebView.getWebViewId()) { + public Activity getCurrentActivity() { + return (Activity)AdSiteBrowser.this.mActivity; + } + + public c getFileChooseHandler() { + return HostDependManager.getInst().createChooseFileHandler((Activity)AdSiteBrowser.this.mActivity); + } + + public void onNativeWebViewPageFinished(boolean param1Boolean) { + AdSiteBrowser.this.mTitleBar.setWebViewPageBackView(param1Boolean); + } + + public void updateWebTitle(String param1String, boolean param1Boolean) { + AppBrandLogger.d("AdSiteBrowser", new Object[] { "updateWebTitle", param1String }); + AdSiteBrowser.this.mTitleBar.updateWebTitle(param1String, param1Boolean); + } + }); + ((FrameLayout)this.mRootLayout.findViewById(2097545353)).addView((View)this.mAdWebView, -1, -1); + } + + public void onDOMReady() { + reportFirstDOMReady(); + } + + public void onDestroy() { + super.onDestroy(); + KeyboardHeightProvider keyboardHeightProvider = this.keyboardHeightProvider; + if (keyboardHeightProvider != null) + keyboardHeightProvider.close(); + getLaunchScheduler().stopListenLaunchStatus(); + AppBrandLogger.d("AdSiteBrowser", new Object[] { "onDestroy" }); + InnerEventHelper.mpTechnologyMsg("micro app onDestroy called"); + } + + public void onEnvironmentReady() { + AppBrandLogger.d("AdSiteBrowser", new Object[] { "onEnvironmentReady ", Long.valueOf(this.mLoadStartTime.getMillisAfterStart()) }); + TimeLogger.getInstance().logTimeDuration(new String[] { "AdSiteBrowser_onEnvironmentReady" }); + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + AdSiteBrowser.this.initView(); + TTAppbrandTabUI.initFavoriteList(); + AdSiteBrowser.this.initPerformanceDialog(); + } + }); + } + + public void onFirstContentfulPaint(long paramLong) {} + + public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent) { + return false; + } + + public void onKeyboardHeightChanged(int paramInt1, int paramInt2) { + AppBrandLogger.d("AdSiteBrowser", new Object[] { "onKeyboardHeightChanged height ", Integer.valueOf(paramInt1), " orientation ", Integer.valueOf(paramInt2) }); + Iterator iterator = this.IKeyboardObserverList.iterator(); + while (iterator.hasNext()) + ((k)iterator.next()).onKeyboardHeightChanged(paramInt1, paramInt2); + } + + public void onLanguageChange() { + if (this.mApp.getAppInfo() != null) + this.mLaunchLoadingView.updateViews(this.mApp.getAppInfo()); + } + + public void onNewIntent(Intent paramIntent) { + String str = this.mApp.getSchema(); + super.onNewIntent(paramIntent); + if (paramIntent == null || !paramIntent.hasExtra("microapp_url")) { + AppBrandLogger.e("AdSiteBrowser", new Object[] { "onNewIntent fail, intent == ", paramIntent }); + return; + } + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + if (appInfoEntity == null) { + AppBrandLogger.e("AdSiteBrowser", new Object[] { "onNewIntent fail, mAppInfo is null " }); + return; + } + SearchEventHelper.init(appInfoEntity.launchFrom, this.mApp.getSchema()); + SearchEventHelper.onRelaunched(); + ((BlockPageManager)this.mApp.getService(BlockPageManager.class)).handleHotLaunch(); + if (!TextUtils.isEmpty(appInfoEntity.startPage)) { + String str1 = AdSiteManager.getInstance().buildUrlFromSchema(str).toString(); + str = AdSiteManager.getInstance().buildUrlFromSchema(this.mApp.getSchema()).toString(); + if (!TextUtils.equals(str, str1)) { + this.mAdWebView.loadUrl(str, true); + PermissionsManager permissionsManager = PermissionsManager.getInstance(); + if (permissionsManager != null) { + permissionsManager.forceFlushPendingRequest((Activity)this.mActivity, false); + return; + } + } else { + PermissionsManager permissionsManager = PermissionsManager.getInstance(); + if (permissionsManager != null) + permissionsManager.forceFlushPendingRequest((Activity)this.mActivity, true); + return; + } + } else { + PermissionsManager permissionsManager = PermissionsManager.getInstance(); + if (permissionsManager != null) + permissionsManager.forceFlushPendingRequest((Activity)this.mActivity, true); + } + } + + public void onPause() { + super.onPause(); + AppBrandLogger.d("AdSiteBrowser", new Object[] { "onPause" }); + doPause(); + } + + public void onProgressChanged(int paramInt) { + updateProgressTv(0, paramInt); + } + + public void onRemoteDebugOpen() {} + + public void onRemoveVideoFragment() {} + + public void onRequestPermissionsResult(int paramInt, String[] paramArrayOfString, int[] paramArrayOfint) { + if ((paramInt >> 16 & 0xFFFF) == 0) + PermissionsManager.getInstance().notifyPermissionsChange((Activity)this.mActivity, paramArrayOfString, paramArrayOfint); + } + + public void onResume() { + super.onResume(); + AppBrandLogger.d("AdSiteBrowser", new Object[] { "onResume" }); + doResume(); + } + + public void onSnapShotDOMReady() {} + + public void onUserInteraction() {} + + public void onWindowSizeChange(int paramInt1, int paramInt2) {} + + public void postError(String paramString) { + JSONObject jSONObject = new JSONObject(); + try { + StringBuilder stringBuilder = new StringBuilder("WebView postError:"); + stringBuilder.append(paramString); + jSONObject.put("errMsg", stringBuilder.toString()); + } catch (Exception exception) { + AppBrandLogger.eWithThrowable("AdSiteBrowser", "postError", exception); + } + AppBrandMonitor.statusRate("mp_start_error", 5000, jSONObject); + if (!this.mReportedFirstDOMReady) { + TimeLogger.getInstance().logTimeDuration(new String[] { "AdSiteBrowser_web_view_post_error", paramString }); + LoadHelper.handleMiniProcessFail(ErrorCode.WEBVIEW.RECEIVE_WEBVIEW_ERROR.getCode()); + } + } + + public void registerKeyboardListener(k paramk) { + if (paramk != null && !this.IKeyboardObserverList.contains(paramk)) + this.IKeyboardObserverList.add(paramk); + } + + public void setActivityResultHandler(IActivityResultHandler paramIActivityResultHandler) { + this.mActivityResultHandler = paramIActivityResultHandler; + } + + public void setKeepScreenOn(boolean paramBoolean) { + this.mRootLayout.setKeepScreenOn(paramBoolean); + } + + public void unRegisterKeyboardListener(k paramk) { + if (paramk != null) + this.IKeyboardObserverList.remove(paramk); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\adsite\AdSiteBrowser.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteConstant.java b/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteConstant.java new file mode 100644 index 0000000..90d6ce1 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteConstant.java @@ -0,0 +1,9 @@ +package com.tt.miniapp.adsite; + +public class AdSiteConstant {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\adsite\AdSiteConstant.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteEventHelper.java b/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteEventHelper.java new file mode 100644 index 0000000..fa4ef95 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteEventHelper.java @@ -0,0 +1,39 @@ +package com.tt.miniapp.adsite; + +import com.tt.miniapp.event.Event; + +public class AdSiteEventHelper { + public static void reportGetLocalPhoneNumberEvent(boolean paramBoolean) { + String str; + Event.Builder builder2 = Event.builder("mp_get_local_phone_num_result"); + if (paramBoolean) { + str = "success"; + } else { + str = "fail"; + } + Event.Builder builder1 = builder2.kv("result", str); + if (!paramBoolean) + builder1.kv("err_msg", "can't complete this operation").kv("err_code", Integer.valueOf(4)); + builder1.flush(); + } + + public static void reportGetLocalPhoneNumberTokenEvent(boolean paramBoolean) { + String str; + Event.Builder builder2 = Event.builder("mp_get_local_phone_num_token_result"); + if (paramBoolean) { + str = "success"; + } else { + str = "fail"; + } + Event.Builder builder1 = builder2.kv("result", str); + if (!paramBoolean) + builder1.kv("err_msg", "can't complete this operation").kv("err_code", Integer.valueOf(4)); + builder1.flush(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\adsite\AdSiteEventHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteManager.java b/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteManager.java new file mode 100644 index 0000000..fad9230 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteManager.java @@ -0,0 +1,306 @@ +package com.tt.miniapp.adsite; + +import android.content.Context; +import android.net.Uri; +import android.text.TextUtils; +import android.view.View; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.component.nativeview.NativeAdWebView; +import com.tt.miniapp.launchcache.LaunchCacheCleanDataManager; +import com.tt.miniapp.launchcache.RequestType; +import com.tt.miniapp.launchcache.meta.MetaService; +import com.tt.miniapp.launchcache.meta.RequestResultInfo; +import com.tt.miniapp.streamloader.StreamLoader; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.entity.MicroSchemaEntity; +import java.lang.ref.SoftReference; +import java.util.Map; +import org.json.simple.JSONAware; +import org.json.simple.JSONObject; +import org.json.simple.JSONValue; +import org.json.simple.parser.JSONParser; + +public class AdSiteManager { + private volatile Boolean isAdSiteBrowser; + + private SoftReference mLoadingView; + + private NativeAdWebView mWebView; + + private AdSiteManager() {} + + private Uri.Builder buildUrlFromSchema(String paramString, boolean paramBoolean) { + MicroSchemaEntity microSchemaEntity = MicroSchemaEntity.parseFromSchema(paramString); + Uri.Builder builder = new Uri.Builder(); + builder.scheme("ttadcache"); + builder.authority(microSchemaEntity.getAppId()); + Map map = microSchemaEntity.getQuery(); + if (map == null) { + builder.path("__cache_dir__/index.html"); + } else { + Object object = map.get("__cache_load_path__"); + if (!paramBoolean && object instanceof String && !"".equals(object)) { + object = object.toString(); + if (StreamLoader.findFile((String)object) != null) { + builder.path((String)object); + } else { + builder.path("__cache_dir__/index.html"); + } + } else { + builder.path("__cache_dir__/index.html"); + } + map.remove("__cache_load_path__"); + JSONObject jSONObject = getJsonFromMap(map); + if (jSONObject != null) + for (Map.Entry entry : jSONObject.entrySet()) { + if (!TextUtils.isEmpty((String)entry.getKey())) { + String str1; + jSONObject = (JSONObject)entry.getValue(); + if (jSONObject instanceof JSONAware) { + builder.appendQueryParameter((String)entry.getKey(), ((JSONAware)jSONObject).toJSONString()); + continue; + } + String str2 = (String)entry.getKey(); + if (jSONObject != null) { + str1 = jSONObject.toString(); + } else { + str1 = ""; + } + builder.appendQueryParameter(str2, str1); + } + } + } + if (!TextUtils.isEmpty(microSchemaEntity.getScene())) + builder.appendQueryParameter("scene", microSchemaEntity.getScene()); + return builder; + } + + public static AdSiteManager getInstance() { + return Holder.INSTANCE; + } + + public static JSONObject getJsonFromMap(Map paramMap) { + if (paramMap == null) + return null; + try { + return (JSONObject)(new JSONParser()).parse(JSONValue.toJSONString(paramMap)); + } catch (Exception exception) { + return null; + } + } + + private boolean initIsAdSiteBrowserInner(Context paramContext, AppInfoEntity paramAppInfoEntity) { + if (paramAppInfoEntity != null) { + if (paramAppInfoEntity.isGame()) + return false; + if (TextUtils.equals("0", paramAppInfoEntity.adSiteVersionFromSchema)) + return false; + AppInfoEntity appInfoEntity = parseAppInfoFromCachedMeta(paramContext, paramAppInfoEntity); + if (TextUtils.equals("1", paramAppInfoEntity.adSiteVersionFromSchema)) { + if (appInfoEntity != null && !isNewPlan(appInfoEntity)) + LaunchCacheCleanDataManager.INSTANCE.cleanMiniAppCache(paramContext, paramAppInfoEntity.appId); + return true; + } + return isNewPlan(appInfoEntity); + } + return false; + } + + private boolean isNewPlan(AppInfoEntity paramAppInfoEntity) { + return (paramAppInfoEntity != null && paramAppInfoEntity.isAdSite() && TextUtils.equals("1", paramAppInfoEntity.adSiteVersionFromMeta)); + } + + private AppInfoEntity parseAppInfoFromCachedMeta(Context paramContext, AppInfoEntity paramAppInfoEntity) { + if (paramAppInfoEntity.isLocalTest()) + return null; + RequestResultInfo requestResultInfo = ((MetaService)AppbrandApplicationImpl.getInst().getService(MetaService.class)).tryFetchLocalMeta(paramContext, paramAppInfoEntity.appId, RequestType.normal); + return (requestResultInfo != null) ? requestResultInfo.appInfo : null; + } + + public Uri.Builder buildDefaultUrlFromSchema(String paramString) { + return buildUrlFromSchema(paramString, true); + } + + public Uri.Builder buildUrlFromSchema(String paramString) { + return buildUrlFromSchema(paramString, false); + } + + public View getLoadingView() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mLoadingView : Ljava/lang/ref/SoftReference; + // 6: ifnull -> 24 + // 9: aload_0 + // 10: getfield mLoadingView : Ljava/lang/ref/SoftReference; + // 13: invokevirtual get : ()Ljava/lang/Object; + // 16: checkcast android/view/View + // 19: astore_1 + // 20: aload_0 + // 21: monitorexit + // 22: aload_1 + // 23: areturn + // 24: aload_0 + // 25: monitorexit + // 26: aconst_null + // 27: areturn + // 28: astore_1 + // 29: aload_0 + // 30: monitorexit + // 31: aload_1 + // 32: athrow + // Exception table: + // from to target type + // 2 20 28 finally + } + + public NativeAdWebView getWebView(Context paramContext) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mWebView : Lcom/tt/miniapp/component/nativeview/NativeAdWebView; + // 6: ifnull -> 22 + // 9: aload_0 + // 10: getfield mWebView : Lcom/tt/miniapp/component/nativeview/NativeAdWebView; + // 13: astore_1 + // 14: aload_0 + // 15: aconst_null + // 16: putfield mWebView : Lcom/tt/miniapp/component/nativeview/NativeAdWebView; + // 19: goto -> 34 + // 22: new com/tt/miniapp/component/nativeview/NativeAdWebView + // 25: dup + // 26: aload_1 + // 27: invokevirtual getApplicationContext : ()Landroid/content/Context; + // 30: invokespecial : (Landroid/content/Context;)V + // 33: astore_1 + // 34: aload_0 + // 35: monitorexit + // 36: aload_1 + // 37: areturn + // 38: astore_1 + // 39: aload_0 + // 40: monitorexit + // 41: aload_1 + // 42: athrow + // Exception table: + // from to target type + // 2 19 38 finally + // 22 34 38 finally + } + + public boolean initIsAdSiteBrowser(Context paramContext, AppInfoEntity paramAppInfoEntity) { + // Byte code: + // 0: aload_0 + // 1: getfield isAdSiteBrowser : Ljava/lang/Boolean; + // 4: ifnonnull -> 70 + // 7: aload_0 + // 8: monitorenter + // 9: aload_0 + // 10: getfield isAdSiteBrowser : Ljava/lang/Boolean; + // 13: ifnonnull -> 60 + // 16: invokestatic uptimeMillis : ()J + // 19: lstore_3 + // 20: aload_0 + // 21: aload_0 + // 22: aload_1 + // 23: aload_2 + // 24: invokespecial initIsAdSiteBrowserInner : (Landroid/content/Context;Lcom/tt/miniapphost/entity/AppInfoEntity;)Z + // 27: invokestatic valueOf : (Z)Ljava/lang/Boolean; + // 30: putfield isAdSiteBrowser : Ljava/lang/Boolean; + // 33: invokestatic getInstance : ()Lcom/tt/miniapp/util/TimeLogger; + // 36: iconst_2 + // 37: anewarray java/lang/String + // 40: dup + // 41: iconst_0 + // 42: ldc_w 'initIsAdSiteBrowser' + // 45: aastore + // 46: dup + // 47: iconst_1 + // 48: invokestatic uptimeMillis : ()J + // 51: lload_3 + // 52: lsub + // 53: invokestatic valueOf : (J)Ljava/lang/String; + // 56: aastore + // 57: invokevirtual logTimeDuration : ([Ljava/lang/String;)V + // 60: aload_0 + // 61: monitorexit + // 62: goto -> 70 + // 65: astore_1 + // 66: aload_0 + // 67: monitorexit + // 68: aload_1 + // 69: athrow + // 70: aload_0 + // 71: getfield isAdSiteBrowser : Ljava/lang/Boolean; + // 74: invokevirtual booleanValue : ()Z + // 77: ireturn + // Exception table: + // from to target type + // 9 60 65 finally + // 60 62 65 finally + // 66 68 65 finally + } + + public boolean isAdSiteBrowser() { + return (this.isAdSiteBrowser != null) ? this.isAdSiteBrowser.booleanValue() : false; + } + + public boolean isAdSiteBrowserInited() { + return (this.isAdSiteBrowser != null); + } + + public void preload(Context paramContext) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_1 + // 3: invokevirtual getApplicationContext : ()Landroid/content/Context; + // 6: astore_1 + // 7: aload_0 + // 8: getfield mWebView : Lcom/tt/miniapp/component/nativeview/NativeAdWebView; + // 11: ifnonnull -> 26 + // 14: aload_0 + // 15: new com/tt/miniapp/component/nativeview/NativeAdWebView + // 18: dup + // 19: aload_1 + // 20: invokespecial : (Landroid/content/Context;)V + // 23: putfield mWebView : Lcom/tt/miniapp/component/nativeview/NativeAdWebView; + // 26: aload_0 + // 27: getfield mLoadingView : Ljava/lang/ref/SoftReference; + // 30: ifnonnull -> 55 + // 33: aload_0 + // 34: new java/lang/ref/SoftReference + // 37: dup + // 38: aload_1 + // 39: invokestatic from : (Landroid/content/Context;)Landroid/view/LayoutInflater; + // 42: ldc_w 2097676290 + // 45: aconst_null + // 46: invokevirtual inflate : (ILandroid/view/ViewGroup;)Landroid/view/View; + // 49: invokespecial : (Ljava/lang/Object;)V + // 52: putfield mLoadingView : Ljava/lang/ref/SoftReference; + // 55: aload_0 + // 56: monitorexit + // 57: return + // 58: astore_1 + // 59: aload_0 + // 60: monitorexit + // 61: aload_1 + // 62: athrow + // Exception table: + // from to target type + // 2 26 58 finally + // 26 55 58 finally + } + + static interface Holder { + public static final AdSiteManager INSTANCE = new AdSiteManager(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\adsite\AdSiteManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteTitleBar.java b/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteTitleBar.java new file mode 100644 index 0000000..1511bdb --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/adsite/AdSiteTitleBar.java @@ -0,0 +1,67 @@ +package com.tt.miniapp.adsite; + +import android.app.Activity; +import android.content.Context; +import android.view.ViewGroup; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.titlebar.BaseTitleBar; +import com.tt.miniapphost.entity.AppInfoEntity; + +public class AdSiteTitleBar extends BaseTitleBar { + public AdSiteTitleBar(Context paramContext, ViewGroup paramViewGroup) { + super(paramContext, paramViewGroup); + } + + public Activity getActivity() { + return AppbrandApplicationImpl.getInst().getMiniAppContext().getCurrentActivity(); + } + + public String getGlobalTitleText() { + AppInfoEntity appInfoEntity = AppbrandApplicationImpl.getInst().getAppInfo(); + return (appInfoEntity != null) ? appInfoEntity.appName : null; + } + + public String getNavigationBarBackgroundColor(String paramString) { + this.mBackgroundColor = "#ffffff"; + return "#ffffff"; + } + + public String getNavigationBarTextStyle(String paramString) { + this.mBarTextStyle = "black"; + return "black"; + } + + public String getNavigationStyle(String paramString) { + return "default"; + } + + public String getNavigationTransparentTitle(String paramString) { + this.mTransparentTitle = "none"; + return "none"; + } + + public String getPageTitleText(String paramString) { + this.mPageText = null; + return null; + } + + public boolean isBottomPage() { + return true; + } + + public boolean isShowBackHomeInMenuDialog() { + return false; + } + + public boolean isShowLeftBackHomeView() { + return false; + } + + public void onClickBackHomeButton() {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\adsite\AdSiteTitleBar.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/AudioFocusChangeListener.java b/df_miniapp/classes/com/tt/miniapp/audio/AudioFocusChangeListener.java new file mode 100644 index 0000000..d218b4f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/AudioFocusChangeListener.java @@ -0,0 +1,13 @@ +package com.tt.miniapp.audio; + +public interface AudioFocusChangeListener { + void gainAudioFocus(); + + void lossAudioFocus(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\AudioFocusChangeListener.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/AudioManager.java b/df_miniapp/classes/com/tt/miniapp/audio/AudioManager.java new file mode 100644 index 0000000..19429dc --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/AudioManager.java @@ -0,0 +1,190 @@ +package com.tt.miniapp.audio; + +import android.content.Context; +import android.util.SparseArray; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.entity.ApiErrorInfoEntity; +import java.util.Map; +import org.json.JSONObject; + +public abstract class AudioManager { + public static BgSendMsgStateListener bgSendMsgStateListener; + + protected static boolean isAppInBackground; + + public static boolean isAudioFocusChangePause; + + public static boolean isBgAudio; + + protected SparseArray playingAudioId = new SparseArray(); + + public static AudioManager getInst() { + // Byte code: + // 0: ldc com/tt/miniapp/audio/AudioManager + // 2: monitorenter + // 3: getstatic com/tt/miniapp/audio/AudioManager$Holder.INSTANCE : Lcom/tt/miniapp/audio/AudioManager; + // 6: astore_0 + // 7: ldc com/tt/miniapp/audio/AudioManager + // 9: monitorexit + // 10: aload_0 + // 11: areturn + // 12: astore_0 + // 13: ldc com/tt/miniapp/audio/AudioManager + // 15: monitorexit + // 16: aload_0 + // 17: athrow + // Exception table: + // from to target type + // 3 7 12 finally + } + + public static void preload(Context paramContext) { + getInst(); + } + + protected static void sendMsgState(int paramInt, String paramString) { + sendMsgState(paramInt, paramString, null); + } + + protected static void sendMsgState(int paramInt, String paramString, Map paramMap) { + isAudioFocusChangePause = false; + if (isBgAudio) { + BgSendMsgStateListener bgSendMsgStateListener = bgSendMsgStateListener; + if (bgSendMsgStateListener != null) { + bgSendMsgStateListener.onSendMsgState(paramInt, paramString); + return; + } + } + try { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("audioId", paramInt); + jSONObject.put("state", paramString); + if (paramMap != null) + for (String str : paramMap.keySet()) + jSONObject.put(str, paramMap.get(str)); + AppBrandLogger.d("tma_AudioManager", new Object[] { "sendMsgState ", paramString }); + AppbrandApplication.getInst().getJsBridge().sendMsgToJsCore("onAudioStateChange", jSONObject.toString()); + return; + } catch (Exception exception) { + AppBrandLogger.e("tma_AudioManager", new Object[] { "", exception }); + return; + } + } + + public abstract AudioState getAudioState(int paramInt, ApiErrorInfoEntity paramApiErrorInfoEntity); + + public abstract void onEnterBackground(); + + public abstract void onEnterForeground(); + + public abstract void pause(int paramInt, TaskListener paramTaskListener); + + public abstract void play(int paramInt, TaskListener paramTaskListener); + + public abstract void releaseAllPlayers(); + + public abstract boolean releaseAudio(int paramInt, ApiErrorInfoEntity paramApiErrorInfoEntity); + + public abstract void seek(int paramInt1, int paramInt2, TaskListener paramTaskListener); + + public abstract void setAudioState(AudioStateModule paramAudioStateModule, TaskListener paramTaskListener); + + public abstract void stop(int paramInt, TaskListener paramTaskListener); + + public static class AudioState { + public boolean autoplay; + + public int buffered; + + public long currentTime; + + public long duration; + + public boolean loop; + + public boolean obeyMuteSwitch; + + public boolean paused; + + public String src; + + public long startTime; + + public float volume; + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("AudioState{src='"); + stringBuilder.append(this.src); + stringBuilder.append('\''); + stringBuilder.append(", startTime="); + stringBuilder.append(this.startTime); + stringBuilder.append(", paused="); + stringBuilder.append(this.paused); + stringBuilder.append(", currentTime="); + stringBuilder.append(this.currentTime); + stringBuilder.append(", duration="); + stringBuilder.append(this.duration); + stringBuilder.append(", obeyMuteSwitch="); + stringBuilder.append(this.obeyMuteSwitch); + stringBuilder.append(", buffered="); + stringBuilder.append(this.buffered); + stringBuilder.append(", autoplay="); + stringBuilder.append(this.autoplay); + stringBuilder.append(", loop="); + stringBuilder.append(this.loop); + stringBuilder.append(", volume="); + stringBuilder.append(this.volume); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + } + + public static class BaseMedia { + public int audioId; + + public boolean autoPlay; + + public int buffer; + + public boolean isBgAudio; + + public boolean isPlayToSeek; + + public boolean isPreparing; + + public boolean loop; + + public android.media.AudioManager.OnAudioFocusChangeListener mAudioFocusChangeListener; + + public boolean obeyMuteSwitch; + + public String src; + + public boolean startByUser; + + public volatile int state; + + public float volume; + } + + public static interface BgSendMsgStateListener { + void onSendMsgState(int param1Int, String param1String); + } + + static interface Holder { + public static final AudioManager INSTANCE = new TTVideoAudio(); + } + + public static interface TaskListener { + void onFail(String param1String, Throwable param1Throwable); + + void onSuccess(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\AudioManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/AudioManagerHelper.java b/df_miniapp/classes/com/tt/miniapp/audio/AudioManagerHelper.java new file mode 100644 index 0000000..1b4ea1b --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/AudioManagerHelper.java @@ -0,0 +1,62 @@ +package com.tt.miniapp.audio; + +import android.content.Context; +import android.media.AudioManager; + +public class AudioManagerHelper { + public AudioManager.OnAudioFocusChangeListener mAudioFocusChangeListener; + + private AudioManager mAudioManager; + + public AudioManagerHelper(Context paramContext, final AudioFocusChangeListener listener) { + if (paramContext == null) + return; + this.mAudioManager = (AudioManager)paramContext.getApplicationContext().getSystemService("audio"); + this.mAudioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() { + public void onAudioFocusChange(int param1Int) { + if (param1Int != -3 && param1Int != -2 && param1Int != -1) { + if (param1Int != 1 && param1Int != 2 && param1Int != 3) + return; + AudioFocusChangeListener audioFocusChangeListener = listener; + if (audioFocusChangeListener != null) { + audioFocusChangeListener.gainAudioFocus(); + return; + } + } else { + AudioFocusChangeListener audioFocusChangeListener = listener; + if (audioFocusChangeListener != null) + audioFocusChangeListener.lossAudioFocus(); + } + } + }; + } + + public void abandonAudioFocus(Context paramContext) { + if (this.mAudioManager == null && paramContext != null) + this.mAudioManager = (AudioManager)paramContext.getApplicationContext().getSystemService("audio"); + AudioManager audioManager = this.mAudioManager; + if (audioManager != null) { + AudioManager.OnAudioFocusChangeListener onAudioFocusChangeListener = this.mAudioFocusChangeListener; + if (onAudioFocusChangeListener != null) + audioManager.abandonAudioFocus(onAudioFocusChangeListener); + } + this.mAudioManager = null; + } + + public void requestAudioFocus(Context paramContext) { + if (this.mAudioManager == null && paramContext != null) + this.mAudioManager = (AudioManager)paramContext.getApplicationContext().getSystemService("audio"); + AudioManager audioManager = this.mAudioManager; + if (audioManager != null) { + AudioManager.OnAudioFocusChangeListener onAudioFocusChangeListener = this.mAudioFocusChangeListener; + if (onAudioFocusChangeListener != null) + audioManager.requestAudioFocus(onAudioFocusChangeListener, 3, 2); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\AudioManagerHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/AudioRecorderManager.java b/df_miniapp/classes/com/tt/miniapp/audio/AudioRecorderManager.java new file mode 100644 index 0000000..a8a8a8e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/AudioRecorderManager.java @@ -0,0 +1,948 @@ +package com.tt.miniapp.audio; + +import android.media.AudioRecord; +import android.os.AsyncTask; +import android.text.TextUtils; +import com.bytedance.v.a.a.a.b; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.audio.encoder.PcmToWav; +import com.tt.miniapp.manager.ForeBackgroundManager; +import com.tt.miniapp.storage.filestorge.FileManager; +import com.tt.miniapp.util.CountDownHelper; +import com.tt.miniapphost.AppBrandLogger; +import java.io.File; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class AudioRecorderManager { + private final AudioRecorderConfig DEFAULT_CONFIG = new AudioRecorderConfig(60L, 8000, 48000, (short)2, "aac", 0); + + public int mAllStep; + + public AudioRecord mAudioRecord; + + public int mBufferSize; + + private CountDownHelper mCountDownHelper = new CountDownHelper(); + + public AudioRecorderConfig mCurrentConfig; + + public byte[] mFrameBuffer; + + public boolean mIsRecord; + + public boolean mPauseRecordWhenBackground; + + public String mPcmTmpFile; + + public IRecorderCallback mRecorderCallback; + + public int mStepCount; + + private AudioRecorderManager() { + ForeBackgroundManager foreBackgroundManager = AppbrandApplicationImpl.getInst().getForeBackgroundManager(); + this.mPauseRecordWhenBackground = foreBackgroundManager.isBackground(); + foreBackgroundManager.registerForeBackgroundListener((ForeBackgroundManager.ForeBackgroundListener)new ForeBackgroundManager.DefaultForeBackgroundListener() { + public void onBackground() { + synchronized (AudioRecorderManager.this) { + AudioRecorderManager.this.mPauseRecordWhenBackground = true; + if (AudioRecorderManager.this.mIsRecord) + AudioRecorderManager.this.pause(); + return; + } + } + + public void onForeground() { + synchronized (AudioRecorderManager.this) { + AudioRecorderManager.this.mPauseRecordWhenBackground = false; + return; + } + } + }); + this.mCountDownHelper.setListener(new CountDownHelper.ICountDownListener() { + public void onFinish() { + AudioRecorderManager.this.stop(); + } + }); + } + + private static void com_tt_miniapp_audio_AudioRecorderManager_android_media_AudioRecord_stop(AudioRecord paramAudioRecord) { + paramAudioRecord.stop(); + b.a(null, paramAudioRecord, new Object[0], false, 100401, "android.media.AudioRecord.stop()"); + } + + public static String createTmpFile(String paramString) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append((new SimpleDateFormat("yyyyMMdd_HHmmss")).format(new Date())); + stringBuilder.append("."); + stringBuilder.append(paramString); + paramString = stringBuilder.toString(); + File file = new File(FileManager.inst().getTempDir(), paramString); + AppBrandLogger.d("tma_AudioRecorderManager", new Object[] { "destFile.getAbsolutePath() ", file.getAbsolutePath() }); + return file.getAbsolutePath(); + } + + private AudioRecorderConfig getAllConfig(AudioRecorderConfig paramAudioRecorderConfig) { + short s; + int i; + long l; + String str; + if (paramAudioRecorderConfig == null) + return this.DEFAULT_CONFIG; + if (paramAudioRecorderConfig.duration > 0L) { + l = paramAudioRecorderConfig.duration; + } else { + l = this.DEFAULT_CONFIG.duration; + } + paramAudioRecorderConfig.duration = l; + if (paramAudioRecorderConfig.sampleRate > 0) { + i = paramAudioRecorderConfig.sampleRate; + } else { + i = this.DEFAULT_CONFIG.sampleRate; + } + paramAudioRecorderConfig.sampleRate = i; + if (paramAudioRecorderConfig.encodeBitRate > 0) { + i = paramAudioRecorderConfig.encodeBitRate; + } else { + i = this.DEFAULT_CONFIG.encodeBitRate; + } + paramAudioRecorderConfig.encodeBitRate = i; + if (paramAudioRecorderConfig.numberOfChannels > 0) { + s = paramAudioRecorderConfig.numberOfChannels; + } else { + s = this.DEFAULT_CONFIG.numberOfChannels; + } + paramAudioRecorderConfig.numberOfChannels = s; + if (!TextUtils.isEmpty(paramAudioRecorderConfig.format)) { + str = paramAudioRecorderConfig.format; + } else { + str = this.DEFAULT_CONFIG.format; + } + paramAudioRecorderConfig.format = str; + if (paramAudioRecorderConfig.frameSize > 0) { + i = paramAudioRecorderConfig.frameSize; + } else { + i = this.DEFAULT_CONFIG.frameSize; + } + paramAudioRecorderConfig.frameSize = i; + return paramAudioRecorderConfig; + } + + private int getBufferSize(int paramInt1, int paramInt2) { + int i = 1; + while (i) { + i = paramInt1 % paramInt2; + if (i == 0) + return paramInt2; + paramInt2++; + } + return paramInt2; + } + + private int getChannelType(int paramInt) { + return (paramInt == 1) ? 16 : 12; + } + + public static AudioRecorderManager getInst() { + return Holder.instance; + } + + private void initAudioRecord(AudioRecorderConfig paramAudioRecorderConfig) { + int i = AudioRecord.getMinBufferSize(paramAudioRecorderConfig.sampleRate, getChannelType(paramAudioRecorderConfig.numberOfChannels), 2); + if (paramAudioRecorderConfig.frameSize != 0) { + int j = paramAudioRecorderConfig.frameSize * 1024; + this.mBufferSize = getBufferSize(j, i); + this.mAllStep = j / this.mBufferSize; + this.mFrameBuffer = new byte[j]; + AppBrandLogger.d("tma_AudioRecorderManager", new Object[] { "frameSize_byte = ", Integer.valueOf(j) }); + AppBrandLogger.d("tma_AudioRecorderManager", new Object[] { "mBufferSize = ", Integer.valueOf(this.mBufferSize) }); + } else { + this.mBufferSize = i; + } + this.mAudioRecord = new AudioRecord(1, paramAudioRecorderConfig.sampleRate, getChannelType(paramAudioRecorderConfig.numberOfChannels), 2, this.mBufferSize); + this.mPcmTmpFile = createTmpFile("pcm"); + } + + public void onError(String paramString) { + AppBrandLogger.e("tma_AudioRecorderManager", new Object[] { "onError:", paramString }); + IRecorderCallback iRecorderCallback = this.mRecorderCallback; + if (iRecorderCallback != null) + iRecorderCallback.onRecorderStateChange("error", paramString); + } + + public void pause() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mIsRecord : Z + // 6: ifne -> 44 + // 9: aload_0 + // 10: getfield mPauseRecordWhenBackground : Z + // 13: ifeq -> 34 + // 16: ldc 'tma_AudioRecorderManager' + // 18: iconst_1 + // 19: anewarray java/lang/Object + // 22: dup + // 23: iconst_0 + // 24: ldc_w 'PauseRecordWhenBackground' + // 27: aastore + // 28: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 31: aload_0 + // 32: monitorexit + // 33: return + // 34: aload_0 + // 35: ldc_w 'not recording' + // 38: invokevirtual onError : (Ljava/lang/String;)V + // 41: aload_0 + // 42: monitorexit + // 43: return + // 44: aload_0 + // 45: iconst_0 + // 46: putfield mIsRecord : Z + // 49: aload_0 + // 50: getfield mRecorderCallback : Lcom/tt/miniapp/audio/AudioRecorderManager$IRecorderCallback; + // 53: ifnull -> 69 + // 56: aload_0 + // 57: getfield mRecorderCallback : Lcom/tt/miniapp/audio/AudioRecorderManager$IRecorderCallback; + // 60: ldc_w 'pause' + // 63: aconst_null + // 64: invokeinterface onRecorderStateChange : (Ljava/lang/String;Ljava/lang/String;)V + // 69: aload_0 + // 70: getfield mCountDownHelper : Lcom/tt/miniapp/util/CountDownHelper; + // 73: invokevirtual pause : ()V + // 76: invokestatic inst : ()Lcom/tt/miniapp/secrecy/SecrecyManager; + // 79: bipush #13 + // 81: invokevirtual notifyStateStop : (I)Z + // 84: pop + // 85: aload_0 + // 86: monitorexit + // 87: return + // 88: astore_1 + // 89: aload_0 + // 90: monitorexit + // 91: aload_1 + // 92: athrow + // Exception table: + // from to target type + // 2 31 88 finally + // 34 41 88 finally + // 44 69 88 finally + // 69 85 88 finally + } + + public void registerRecorderCallback(IRecorderCallback paramIRecorderCallback) { + if (paramIRecorderCallback != null) + this.mRecorderCallback = paramIRecorderCallback; + } + + public void resume() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mPauseRecordWhenBackground : Z + // 6: ifeq -> 19 + // 9: aload_0 + // 10: ldc_w 'app in background' + // 13: invokevirtual onError : (Ljava/lang/String;)V + // 16: aload_0 + // 17: monitorexit + // 18: return + // 19: aload_0 + // 20: iconst_1 + // 21: putfield mIsRecord : Z + // 24: new com/tt/miniapp/audio/AudioRecorderManager$AudioRecordTask + // 27: dup + // 28: aload_0 + // 29: invokespecial : (Lcom/tt/miniapp/audio/AudioRecorderManager;)V + // 32: iconst_0 + // 33: anewarray java/lang/Void + // 36: invokevirtual execute : ([Ljava/lang/Object;)Landroid/os/AsyncTask; + // 39: pop + // 40: aload_0 + // 41: getfield mRecorderCallback : Lcom/tt/miniapp/audio/AudioRecorderManager$IRecorderCallback; + // 44: ifnull -> 60 + // 47: aload_0 + // 48: getfield mRecorderCallback : Lcom/tt/miniapp/audio/AudioRecorderManager$IRecorderCallback; + // 51: ldc_w 'resume' + // 54: aconst_null + // 55: invokeinterface onRecorderStateChange : (Ljava/lang/String;Ljava/lang/String;)V + // 60: aload_0 + // 61: getfield mCountDownHelper : Lcom/tt/miniapp/util/CountDownHelper; + // 64: invokevirtual resume : ()V + // 67: invokestatic inst : ()Lcom/tt/miniapp/secrecy/SecrecyManager; + // 70: bipush #13 + // 72: invokevirtual notifyStateStart : (I)Z + // 75: pop + // 76: aload_0 + // 77: monitorexit + // 78: return + // 79: astore_1 + // 80: aload_0 + // 81: monitorexit + // 82: aload_1 + // 83: athrow + // Exception table: + // from to target type + // 2 16 79 finally + // 19 60 79 finally + // 60 76 79 finally + } + + public void start(AudioRecorderConfig paramAudioRecorderConfig) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mPauseRecordWhenBackground : Z + // 6: ifeq -> 19 + // 9: aload_0 + // 10: ldc_w 'app in background' + // 13: invokevirtual onError : (Ljava/lang/String;)V + // 16: aload_0 + // 17: monitorexit + // 18: return + // 19: aload_0 + // 20: aload_1 + // 21: invokespecial getAllConfig : (Lcom/tt/miniapp/audio/AudioRecorderManager$AudioRecorderConfig;)Lcom/tt/miniapp/audio/AudioRecorderManager$AudioRecorderConfig; + // 24: astore_2 + // 25: aload_2 + // 26: ldc_w 'wav' + // 29: putfield format : Ljava/lang/String; + // 32: aload_2 + // 33: getfield format : Ljava/lang/String; + // 36: ldc_w 'wav' + // 39: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 42: ifne -> 55 + // 45: aload_0 + // 46: ldc_w 'format is error' + // 49: invokevirtual onError : (Ljava/lang/String;)V + // 52: aload_0 + // 53: monitorexit + // 54: return + // 55: invokestatic getInst : ()Lcom/tt/miniapp/audio/background/BgAudioManagerClient; + // 58: aconst_null + // 59: invokevirtual pause : (Lcom/tt/miniapp/audio/background/BgAudioManagerClient$TaskListener;)V + // 62: aload_0 + // 63: aload_2 + // 64: putfield mCurrentConfig : Lcom/tt/miniapp/audio/AudioRecorderManager$AudioRecorderConfig; + // 67: aload_0 + // 68: getfield mAudioRecord : Landroid/media/AudioRecord; + // 71: ifnonnull -> 82 + // 74: aload_0 + // 75: aload_0 + // 76: getfield mCurrentConfig : Lcom/tt/miniapp/audio/AudioRecorderManager$AudioRecorderConfig; + // 79: invokespecial initAudioRecord : (Lcom/tt/miniapp/audio/AudioRecorderManager$AudioRecorderConfig;)V + // 82: aload_0 + // 83: iconst_1 + // 84: putfield mIsRecord : Z + // 87: new com/tt/miniapp/audio/AudioRecorderManager$AudioRecordTask + // 90: dup + // 91: aload_0 + // 92: invokespecial : (Lcom/tt/miniapp/audio/AudioRecorderManager;)V + // 95: iconst_0 + // 96: anewarray java/lang/Void + // 99: invokevirtual execute : ([Ljava/lang/Object;)Landroid/os/AsyncTask; + // 102: pop + // 103: aload_0 + // 104: getfield mRecorderCallback : Lcom/tt/miniapp/audio/AudioRecorderManager$IRecorderCallback; + // 107: ifnull -> 123 + // 110: aload_0 + // 111: getfield mRecorderCallback : Lcom/tt/miniapp/audio/AudioRecorderManager$IRecorderCallback; + // 114: ldc_w 'start' + // 117: aconst_null + // 118: invokeinterface onRecorderStateChange : (Ljava/lang/String;Ljava/lang/String;)V + // 123: aload_0 + // 124: getfield mCountDownHelper : Lcom/tt/miniapp/util/CountDownHelper; + // 127: aload_1 + // 128: getfield duration : J + // 131: invokevirtual start : (J)V + // 134: invokestatic inst : ()Lcom/tt/miniapp/secrecy/SecrecyManager; + // 137: bipush #13 + // 139: invokevirtual notifyStateStart : (I)Z + // 142: pop + // 143: aload_0 + // 144: monitorexit + // 145: return + // 146: astore_1 + // 147: aload_0 + // 148: monitorexit + // 149: aload_1 + // 150: athrow + // Exception table: + // from to target type + // 2 16 146 finally + // 19 52 146 finally + // 55 82 146 finally + // 82 123 146 finally + // 123 143 146 finally + } + + public void stop() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: iconst_0 + // 4: putfield mIsRecord : Z + // 7: aload_0 + // 8: getfield mAudioRecord : Landroid/media/AudioRecord; + // 11: astore_1 + // 12: aload_1 + // 13: ifnull -> 58 + // 16: aload_0 + // 17: getfield mAudioRecord : Landroid/media/AudioRecord; + // 20: invokestatic com_tt_miniapp_audio_AudioRecorderManager_android_media_AudioRecord_stop : (Landroid/media/AudioRecord;)V + // 23: aload_0 + // 24: getfield mAudioRecord : Landroid/media/AudioRecord; + // 27: invokevirtual release : ()V + // 30: goto -> 53 + // 33: astore_1 + // 34: ldc 'tma_AudioRecorderManager' + // 36: iconst_2 + // 37: anewarray java/lang/Object + // 40: dup + // 41: iconst_0 + // 42: ldc_w 'stop audio record' + // 45: aastore + // 46: dup + // 47: iconst_1 + // 48: aload_1 + // 49: aastore + // 50: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 53: aload_0 + // 54: aconst_null + // 55: putfield mAudioRecord : Landroid/media/AudioRecord; + // 58: aload_0 + // 59: getfield mCountDownHelper : Lcom/tt/miniapp/util/CountDownHelper; + // 62: invokevirtual stop : ()V + // 65: aload_0 + // 66: getfield mCurrentConfig : Lcom/tt/miniapp/audio/AudioRecorderManager$AudioRecorderConfig; + // 69: ifnull -> 120 + // 72: invokestatic inst : ()Lcom/tt/miniapp/secrecy/SecrecyManager; + // 75: bipush #13 + // 77: invokevirtual isSecrecyDenied : (I)Z + // 80: ifeq -> 93 + // 83: aload_0 + // 84: ldc_w 'auth deny' + // 87: invokevirtual onError : (Ljava/lang/String;)V + // 90: goto -> 120 + // 93: new com/tt/miniapp/audio/AudioRecorderManager$AudioEncoderTask + // 96: dup + // 97: aload_0 + // 98: getfield mCurrentConfig : Lcom/tt/miniapp/audio/AudioRecorderManager$AudioRecorderConfig; + // 101: aload_0 + // 102: getfield mRecorderCallback : Lcom/tt/miniapp/audio/AudioRecorderManager$IRecorderCallback; + // 105: aload_0 + // 106: getfield mPcmTmpFile : Ljava/lang/String; + // 109: invokespecial : (Lcom/tt/miniapp/audio/AudioRecorderManager$AudioRecorderConfig;Lcom/tt/miniapp/audio/AudioRecorderManager$IRecorderCallback;Ljava/lang/String;)V + // 112: iconst_0 + // 113: anewarray java/lang/Void + // 116: invokevirtual execute : ([Ljava/lang/Object;)Landroid/os/AsyncTask; + // 119: pop + // 120: aload_0 + // 121: aconst_null + // 122: putfield mCurrentConfig : Lcom/tt/miniapp/audio/AudioRecorderManager$AudioRecorderConfig; + // 125: aload_0 + // 126: aconst_null + // 127: putfield mRecorderCallback : Lcom/tt/miniapp/audio/AudioRecorderManager$IRecorderCallback; + // 130: invokestatic inst : ()Lcom/tt/miniapp/secrecy/SecrecyManager; + // 133: bipush #13 + // 135: invokevirtual notifyStateStop : (I)Z + // 138: pop + // 139: aload_0 + // 140: monitorexit + // 141: return + // 142: astore_1 + // 143: aload_0 + // 144: monitorexit + // 145: aload_1 + // 146: athrow + // Exception table: + // from to target type + // 2 12 142 finally + // 16 30 33 java/lang/Exception + // 16 30 142 finally + // 34 53 142 finally + // 53 58 142 finally + // 58 90 142 finally + // 93 120 142 finally + // 120 139 142 finally + } + + static class AudioEncoderTask extends AsyncTask { + private AudioRecorderManager.IRecorderCallback mCallback; + + private AudioRecorderManager.AudioRecorderConfig mConfig; + + private String mPcmFile; + + public AudioEncoderTask(AudioRecorderManager.AudioRecorderConfig param1AudioRecorderConfig, AudioRecorderManager.IRecorderCallback param1IRecorderCallback, String param1String) { + this.mPcmFile = param1String; + this.mConfig = param1AudioRecorderConfig; + this.mCallback = param1IRecorderCallback; + } + + protected Void doInBackground(Void... param1VarArgs) { + String str = AudioRecorderManager.createTmpFile("wav"); + PcmToWav.makePCMFileToWAVFile(this.mPcmFile, str, true, this.mConfig); + AppBrandLogger.d("tma_AudioRecorderManager", new Object[] { "doInBackground ", str, " ", this.mCallback }); + AudioRecorderManager.IRecorderCallback iRecorderCallback = this.mCallback; + if (iRecorderCallback != null) + iRecorderCallback.onRecorderStateChange("stop", str); + return null; + } + } + + class AudioRecordTask extends AsyncTask { + private static void com_tt_miniapp_audio_AudioRecorderManager$AudioRecordTask_android_media_AudioRecord_startRecording(AudioRecord param1AudioRecord) { + param1AudioRecord.startRecording(); + b.a(null, param1AudioRecord, new Object[0], false, 100400, "android.media.AudioRecord.startRecording()"); + } + + private static void com_tt_miniapp_audio_AudioRecorderManager$AudioRecordTask_android_media_AudioRecord_stop(AudioRecord param1AudioRecord) { + param1AudioRecord.stop(); + b.a(null, param1AudioRecord, new Object[0], false, 100401, "android.media.AudioRecord.stop()"); + } + + protected Void doInBackground(Void... param1VarArgs) { + // Byte code: + // 0: aload_0 + // 1: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 4: getfield mAudioRecord : Landroid/media/AudioRecord; + // 7: ifnonnull -> 12 + // 10: aconst_null + // 11: areturn + // 12: new java/io/RandomAccessFile + // 15: dup + // 16: new java/io/File + // 19: dup + // 20: aload_0 + // 21: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 24: getfield mPcmTmpFile : Ljava/lang/String; + // 27: invokespecial : (Ljava/lang/String;)V + // 30: ldc 'rw' + // 32: invokespecial : (Ljava/io/File;Ljava/lang/String;)V + // 35: astore #4 + // 37: aload #4 + // 39: astore_1 + // 40: aload_0 + // 41: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 44: getfield mBufferSize : I + // 47: newarray byte + // 49: astore #5 + // 51: aload #4 + // 53: astore_1 + // 54: aload_0 + // 55: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 58: getfield mAudioRecord : Landroid/media/AudioRecord; + // 61: invokestatic com_tt_miniapp_audio_AudioRecorderManager$AudioRecordTask_android_media_AudioRecord_startRecording : (Landroid/media/AudioRecord;)V + // 64: aload #4 + // 66: astore_1 + // 67: aload_0 + // 68: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 71: getfield mIsRecord : Z + // 74: ifeq -> 346 + // 77: aload #4 + // 79: astore_1 + // 80: aload_0 + // 81: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 84: getfield mAudioRecord : Landroid/media/AudioRecord; + // 87: aload #5 + // 89: iconst_0 + // 90: aload #5 + // 92: arraylength + // 93: invokevirtual read : ([BII)I + // 96: istore_2 + // 97: iload_2 + // 98: iflt -> 346 + // 101: aload #4 + // 103: astore_1 + // 104: ldc 'tma_AudioRecorderManager' + // 106: iconst_2 + // 107: anewarray java/lang/Object + // 110: dup + // 111: iconst_0 + // 112: ldc 'readSize = ' + // 114: aastore + // 115: dup + // 116: iconst_1 + // 117: iload_2 + // 118: invokestatic valueOf : (I)Ljava/lang/Integer; + // 121: aastore + // 122: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 125: aload #4 + // 127: astore_1 + // 128: aload #4 + // 130: aload #4 + // 132: invokevirtual length : ()J + // 135: invokevirtual seek : (J)V + // 138: aload #4 + // 140: astore_1 + // 141: aload #4 + // 143: aload #5 + // 145: iconst_0 + // 146: aload #5 + // 148: arraylength + // 149: invokevirtual write : ([BII)V + // 152: aload #4 + // 154: astore_1 + // 155: aload_0 + // 156: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 159: getfield mCurrentConfig : Lcom/tt/miniapp/audio/AudioRecorderManager$AudioRecorderConfig; + // 162: astore #6 + // 164: aload #6 + // 166: ifnull -> 64 + // 169: aload #4 + // 171: astore_1 + // 172: aload #6 + // 174: getfield frameSize : I + // 177: ifle -> 64 + // 180: aload #4 + // 182: astore_1 + // 183: aload #5 + // 185: iconst_0 + // 186: aload_0 + // 187: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 190: getfield mFrameBuffer : [B + // 193: aload_0 + // 194: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 197: getfield mStepCount : I + // 200: aload_0 + // 201: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 204: getfield mBufferSize : I + // 207: imul + // 208: aload #5 + // 210: arraylength + // 211: invokestatic arraycopy : (Ljava/lang/Object;ILjava/lang/Object;II)V + // 214: aload #4 + // 216: astore_1 + // 217: aload_0 + // 218: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 221: astore #6 + // 223: aload #4 + // 225: astore_1 + // 226: aload #6 + // 228: aload #6 + // 230: getfield mStepCount : I + // 233: iconst_1 + // 234: iadd + // 235: putfield mStepCount : I + // 238: aload #4 + // 240: astore_1 + // 241: aload_0 + // 242: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 245: getfield mStepCount : I + // 248: aload_0 + // 249: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 252: getfield mAllStep : I + // 255: if_icmpne -> 64 + // 258: aload #4 + // 260: astore_1 + // 261: aload_0 + // 262: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 265: iconst_0 + // 266: putfield mStepCount : I + // 269: aload #4 + // 271: astore_1 + // 272: aload_0 + // 273: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 276: getfield mRecorderCallback : Lcom/tt/miniapp/audio/AudioRecorderManager$IRecorderCallback; + // 279: astore #6 + // 281: aload #6 + // 283: ifnull -> 329 + // 286: aload #4 + // 288: astore_1 + // 289: aload_0 + // 290: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 293: getfield mFrameBuffer : [B + // 296: astore #7 + // 298: aload #4 + // 300: astore_1 + // 301: aload_0 + // 302: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 305: getfield mIsRecord : Z + // 308: ifne -> 652 + // 311: iconst_1 + // 312: istore_3 + // 313: goto -> 316 + // 316: aload #4 + // 318: astore_1 + // 319: aload #6 + // 321: aload #7 + // 323: iload_3 + // 324: invokeinterface onFrameRecorded : ([BZ)V + // 329: aload #4 + // 331: astore_1 + // 332: aload_0 + // 333: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 336: getfield mFrameBuffer : [B + // 339: iconst_0 + // 340: invokestatic fill : ([BB)V + // 343: goto -> 64 + // 346: aload_0 + // 347: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 350: getfield mAudioRecord : Landroid/media/AudioRecord; + // 353: ifnull -> 388 + // 356: aload_0 + // 357: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 360: getfield mAudioRecord : Landroid/media/AudioRecord; + // 363: invokestatic com_tt_miniapp_audio_AudioRecorderManager$AudioRecordTask_android_media_AudioRecord_stop : (Landroid/media/AudioRecord;)V + // 366: goto -> 388 + // 369: astore_1 + // 370: ldc 'tma_AudioRecorderManager' + // 372: iconst_2 + // 373: anewarray java/lang/Object + // 376: dup + // 377: iconst_0 + // 378: ldc 'stop audio record' + // 380: aastore + // 381: dup + // 382: iconst_1 + // 383: aload_1 + // 384: aastore + // 385: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 388: aload #4 + // 390: invokevirtual close : ()V + // 393: aconst_null + // 394: areturn + // 395: astore_1 + // 396: ldc 'tma_AudioRecorderManager' + // 398: iconst_2 + // 399: anewarray java/lang/Object + // 402: dup + // 403: iconst_0 + // 404: ldc 'close random access file' + // 406: aastore + // 407: dup + // 408: iconst_1 + // 409: aload_1 + // 410: aastore + // 411: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 414: aconst_null + // 415: areturn + // 416: astore #5 + // 418: goto -> 433 + // 421: astore_1 + // 422: aconst_null + // 423: astore #4 + // 425: goto -> 566 + // 428: astore #5 + // 430: aconst_null + // 431: astore #4 + // 433: aload #4 + // 435: astore_1 + // 436: ldc 'tma_AudioRecorderManager' + // 438: iconst_2 + // 439: anewarray java/lang/Object + // 442: dup + // 443: iconst_0 + // 444: ldc 'audio recording error' + // 446: aastore + // 447: dup + // 448: iconst_1 + // 449: aload #5 + // 451: aastore + // 452: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 455: aload #4 + // 457: astore_1 + // 458: aload_0 + // 459: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 462: getfield mIsRecord : Z + // 465: ifeq -> 483 + // 468: aload #4 + // 470: astore_1 + // 471: aload_0 + // 472: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 475: aload #5 + // 477: invokevirtual getMessage : ()Ljava/lang/String; + // 480: invokevirtual onError : (Ljava/lang/String;)V + // 483: aload_0 + // 484: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 487: getfield mAudioRecord : Landroid/media/AudioRecord; + // 490: ifnull -> 525 + // 493: aload_0 + // 494: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 497: getfield mAudioRecord : Landroid/media/AudioRecord; + // 500: invokestatic com_tt_miniapp_audio_AudioRecorderManager$AudioRecordTask_android_media_AudioRecord_stop : (Landroid/media/AudioRecord;)V + // 503: goto -> 525 + // 506: astore_1 + // 507: ldc 'tma_AudioRecorderManager' + // 509: iconst_2 + // 510: anewarray java/lang/Object + // 513: dup + // 514: iconst_0 + // 515: ldc 'stop audio record' + // 517: aastore + // 518: dup + // 519: iconst_1 + // 520: aload_1 + // 521: aastore + // 522: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 525: aload #4 + // 527: ifnull -> 556 + // 530: aload #4 + // 532: invokevirtual close : ()V + // 535: aconst_null + // 536: areturn + // 537: astore_1 + // 538: ldc 'tma_AudioRecorderManager' + // 540: iconst_2 + // 541: anewarray java/lang/Object + // 544: dup + // 545: iconst_0 + // 546: ldc 'close random access file' + // 548: aastore + // 549: dup + // 550: iconst_1 + // 551: aload_1 + // 552: aastore + // 553: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 556: aconst_null + // 557: areturn + // 558: astore #5 + // 560: aload_1 + // 561: astore #4 + // 563: aload #5 + // 565: astore_1 + // 566: aload_0 + // 567: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 570: getfield mAudioRecord : Landroid/media/AudioRecord; + // 573: ifnull -> 610 + // 576: aload_0 + // 577: getfield this$0 : Lcom/tt/miniapp/audio/AudioRecorderManager; + // 580: getfield mAudioRecord : Landroid/media/AudioRecord; + // 583: invokestatic com_tt_miniapp_audio_AudioRecorderManager$AudioRecordTask_android_media_AudioRecord_stop : (Landroid/media/AudioRecord;)V + // 586: goto -> 610 + // 589: astore #5 + // 591: ldc 'tma_AudioRecorderManager' + // 593: iconst_2 + // 594: anewarray java/lang/Object + // 597: dup + // 598: iconst_0 + // 599: ldc 'stop audio record' + // 601: aastore + // 602: dup + // 603: iconst_1 + // 604: aload #5 + // 606: aastore + // 607: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 610: aload #4 + // 612: ifnull -> 644 + // 615: aload #4 + // 617: invokevirtual close : ()V + // 620: goto -> 644 + // 623: astore #4 + // 625: ldc 'tma_AudioRecorderManager' + // 627: iconst_2 + // 628: anewarray java/lang/Object + // 631: dup + // 632: iconst_0 + // 633: ldc 'close random access file' + // 635: aastore + // 636: dup + // 637: iconst_1 + // 638: aload #4 + // 640: aastore + // 641: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 644: goto -> 649 + // 647: aload_1 + // 648: athrow + // 649: goto -> 647 + // 652: iconst_0 + // 653: istore_3 + // 654: goto -> 316 + // Exception table: + // from to target type + // 12 37 428 java/lang/Exception + // 12 37 421 finally + // 40 51 416 java/lang/Exception + // 40 51 558 finally + // 54 64 416 java/lang/Exception + // 54 64 558 finally + // 67 77 416 java/lang/Exception + // 67 77 558 finally + // 80 97 416 java/lang/Exception + // 80 97 558 finally + // 104 125 416 java/lang/Exception + // 104 125 558 finally + // 128 138 416 java/lang/Exception + // 128 138 558 finally + // 141 152 416 java/lang/Exception + // 141 152 558 finally + // 155 164 416 java/lang/Exception + // 155 164 558 finally + // 172 180 416 java/lang/Exception + // 172 180 558 finally + // 183 214 416 java/lang/Exception + // 183 214 558 finally + // 217 223 416 java/lang/Exception + // 217 223 558 finally + // 226 238 416 java/lang/Exception + // 226 238 558 finally + // 241 258 416 java/lang/Exception + // 241 258 558 finally + // 261 269 416 java/lang/Exception + // 261 269 558 finally + // 272 281 416 java/lang/Exception + // 272 281 558 finally + // 289 298 416 java/lang/Exception + // 289 298 558 finally + // 301 311 416 java/lang/Exception + // 301 311 558 finally + // 319 329 416 java/lang/Exception + // 319 329 558 finally + // 332 343 416 java/lang/Exception + // 332 343 558 finally + // 346 366 369 java/lang/IllegalStateException + // 388 393 395 java/io/IOException + // 436 455 558 finally + // 458 468 558 finally + // 471 483 558 finally + // 483 503 506 java/lang/IllegalStateException + // 530 535 537 java/io/IOException + // 566 586 589 java/lang/IllegalStateException + // 615 620 623 java/io/IOException + } + } + + public static class AudioRecorderConfig { + public long duration; + + public int encodeBitRate; + + public String format; + + public int frameSize; + + public short numberOfChannels; + + public int sampleRate; + + public AudioRecorderConfig(long param1Long, int param1Int1, int param1Int2, short param1Short, String param1String, int param1Int3) { + this.duration = param1Long; + this.sampleRate = param1Int1; + this.encodeBitRate = param1Int2; + this.numberOfChannels = param1Short; + this.format = param1String; + this.frameSize = param1Int3; + } + } + + static class Holder { + static AudioRecorderManager instance = new AudioRecorderManager(); + } + + public static interface IRecorderCallback { + void onFrameRecorded(byte[] param1ArrayOfbyte, boolean param1Boolean); + + void onRecorderStateChange(String param1String1, String param1String2); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\AudioRecorderManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/AudioStateModule.java b/df_miniapp/classes/com/tt/miniapp/audio/AudioStateModule.java new file mode 100644 index 0000000..af67efd --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/AudioStateModule.java @@ -0,0 +1,107 @@ +package com.tt.miniapp.audio; + +import android.text.TextUtils; +import com.tt.miniapp.storage.filestorge.FileManager; +import com.tt.miniapp.streamloader.StreamLoader; +import com.tt.miniapphost.AppBrandLogger; +import org.json.JSONException; +import org.json.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +public class AudioStateModule { + public int audioId; + + public boolean autoplay; + + public String callProcessName; + + public long duration; + + public String encryptToken; + + public boolean isBgAudio; + + public boolean loop; + + public String miniAppId; + + public boolean obeyMuteSwitch; + + public boolean paused; + + public String src; + + public int startTime; + + public float volume; + + public static AudioStateModule parse(String paramString) throws Exception { + JSONObject jSONObject = new JSONObject(paramString); + AudioStateModule audioStateModule = new AudioStateModule(); + audioStateModule.audioId = jSONObject.optInt("audioId"); + audioStateModule.src = jSONObject.optString("src"); + audioStateModule.encryptToken = jSONObject.optString("encrypt_token"); + AppBrandLogger.d("tma_AudioStateModule", new Object[] { "before ", audioStateModule.src }); + audioStateModule.src = StreamLoader.waitExtractFinishIfNeeded(FileManager.inst().getRealFilePath(audioStateModule.src)); + AppBrandLogger.d("tma_AudioStateModule", new Object[] { "after ", audioStateModule.src }); + audioStateModule.startTime = jSONObject.optInt("startTime"); + audioStateModule.paused = jSONObject.optBoolean("paused"); + audioStateModule.duration = jSONObject.optLong("duration"); + audioStateModule.obeyMuteSwitch = jSONObject.optBoolean("obeyMuteSwitch"); + audioStateModule.autoplay = jSONObject.optBoolean("autoplay"); + audioStateModule.loop = jSONObject.optBoolean("loop"); + audioStateModule.volume = (float)jSONObject.optDouble("volume"); + return audioStateModule; + } + + public static AudioStateModule parseFromJSONStr(String paramString) { + if (!TextUtils.isEmpty(paramString)) + return null; + JSONParser jSONParser = new JSONParser(); + try { + JSONObject jSONObject = (JSONObject)jSONParser.parse(paramString); + AudioStateModule audioStateModule = new AudioStateModule(); + audioStateModule.src = jSONObject.optString("src"); + audioStateModule.encryptToken = jSONObject.optString("encryptToken"); + audioStateModule.startTime = jSONObject.optInt("startTime"); + audioStateModule.paused = jSONObject.optBoolean("paused"); + audioStateModule.duration = jSONObject.optLong("duration"); + audioStateModule.obeyMuteSwitch = jSONObject.optBoolean("obeyMuteSwitch"); + audioStateModule.autoplay = jSONObject.optBoolean("autoplay"); + audioStateModule.loop = jSONObject.optBoolean("loop"); + audioStateModule.audioId = jSONObject.optInt("audioId"); + audioStateModule.volume = jSONObject.optInt("volume"); + return audioStateModule; + } catch (ParseException parseException) { + AppBrandLogger.e("tma_AudioStateModule", new Object[] { "", parseException }); + return null; + } + } + + public String toJSONStr() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("src", this.src); + jSONObject.put("encryptToken", this.encryptToken); + jSONObject.put("startTime", this.startTime); + jSONObject.put("paused", this.paused); + jSONObject.put("duration", this.duration); + jSONObject.put("obeyMuteSwitch", this.obeyMuteSwitch); + jSONObject.put("autoplay", this.autoplay); + jSONObject.put("loop", this.loop); + jSONObject.put("audioId", this.audioId); + jSONObject.put("volume", this.volume); + return jSONObject.toString(); + } catch (JSONException jSONException) { + AppBrandLogger.e("tma_AudioStateModule", new Object[] { "", jSONException }); + return null; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\AudioStateModule.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/TTVideoAudio.java b/df_miniapp/classes/com/tt/miniapp/audio/TTVideoAudio.java new file mode 100644 index 0000000..e9f96d4 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/TTVideoAudio.java @@ -0,0 +1,1016 @@ +package com.tt.miniapp.audio; + +import android.app.Activity; +import android.app.Application; +import android.content.Context; +import android.media.AudioManager; +import android.text.TextUtils; +import android.util.SparseArray; +import com.ss.ttvideoengine.DataSource; +import com.ss.ttvideoengine.SeekCompletionListener; +import com.ss.ttvideoengine.TTVideoEngine; +import com.ss.ttvideoengine.VideoEngineListener; +import com.ss.ttvideoengine.log.VideoEventListener; +import com.ss.ttvideoengine.log.VideoEventManager; +import com.ss.ttvideoengine.utils.Error; +import com.ss.ttvideoengine.utils.TTVideoEngineLog; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.video.player.VideoEventListenerImpl; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.ApiErrorInfoEntity; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.util.DebugUtil; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TTVideoAudio extends AudioManager { + public static SparseArray mSparseArray = new SparseArray(); + + public boolean isTelPhoneRequestPlay = false; + + private AudioManager mAudioManager; + + private List mStashPlayingAudioList = new ArrayList(); + + public int telPhoneRequestPlayAudioId = -1; + + public TTVideoAudio() { + Application application = AppbrandContext.getInst().getApplicationContext(); + if (application != null) + this.mAudioManager = (AudioManager)application.getSystemService("audio"); + } + + public TTVideoAudio(boolean paramBoolean, AudioManager.BgSendMsgStateListener paramBgSendMsgStateListener) { + this(); + isBgAudio = paramBoolean; + bgSendMsgStateListener = paramBgSendMsgStateListener; + } + + private static String buildFailReason(String paramString, int paramInt) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramString); + stringBuilder.append(", audioId == "); + stringBuilder.append(paramInt); + return stringBuilder.toString(); + } + + private static TTVideoEngine buildTTVideoEngine(AudioStateModule paramAudioStateModule, TTMedia paramTTMedia) { + String str; + int i = paramAudioStateModule.audioId; + TTVideoEngine tTVideoEngine = new TTVideoEngine((Context)AppbrandContext.getInst().getApplicationContext(), 0); + tTVideoEngine.setListener(new MiniAppAudioListener(i, paramTTMedia)); + tTVideoEngine.setIntOption(110, 1); + VideoEventManager.instance.setListener((VideoEventListener)VideoEventListenerImpl.getInstance()); + tTVideoEngine.setTag("miniapp"); + if (TextUtils.isEmpty(paramTTMedia.miniAppId)) { + str = getCurrentMiniAppId(); + } else { + str = paramTTMedia.miniAppId; + } + StringBuilder stringBuilder = new StringBuilder("miniapp_appid:"); + stringBuilder.append(str); + tTVideoEngine.setSubTag(stringBuilder.toString()); + tTVideoEngine.setIntOption(415, 1); + return tTVideoEngine; + } + + private static String getCurrentMiniAppId() { + AppInfoEntity appInfoEntity = AppbrandApplication.getInst().getAppInfo(); + return (appInfoEntity != null) ? appInfoEntity.appId : ""; + } + + private boolean requestFocusAndPlay(TTMedia paramTTMedia) { + int i = this.mAudioManager.requestAudioFocus(paramTTMedia.mAudioFocusChangeListener, 3, 2); + if (AppbrandApplicationImpl.getInst().getMiniAppLaunchConfig().isLaunchWithFloatStyle()) + HostDependManager.getInst().muteLiveWindowView((Activity)AppbrandContext.getInst().getCurrentActivity(), AppbrandApplicationImpl.getInst().getSchema()); + if ((i == 2 || i == 1) && paramTTMedia.videoEngine != null) { + paramTTMedia.isSeekEnd = false; + paramTTMedia.videoEngine.play(); + paramTTMedia.isPauseToSeek = false; + paramTTMedia.isPlayToSeek = false; + if (paramTTMedia.state != 0 && paramTTMedia.state != 6) { + sendMsgState(paramTTMedia.audioId, "play"); + paramTTMedia.state = 2; + } + this.isTelPhoneRequestPlay = false; + return true; + } + return false; + } + + private static TTVideoEngine setTTVideoEnginePath(String paramString, TTVideoEngine paramTTVideoEngine) { + if (paramString.startsWith("file") || paramString.startsWith("/") || paramString.startsWith(".") || paramString.startsWith("~")) { + paramTTVideoEngine.setLocalURL(paramString); + return paramTTVideoEngine; + } + paramTTVideoEngine.setDirectURL(paramString); + return paramTTVideoEngine; + } + + private static void setVolume(TTMedia paramTTMedia) { + if (paramTTMedia != null) { + if (paramTTMedia.videoEngine == null) + return; + TTVideoEngine tTVideoEngine = paramTTMedia.videoEngine; + AudioManager audioManager = (AudioManager)AppbrandContext.getInst().getApplicationContext().getSystemService("audio"); + if (audioManager != null && !paramTTMedia.isBgAudio) { + AppBrandLogger.d("tma_TTVideoAudio", new Object[] { "getMode ", Integer.valueOf(audioManager.getMode()) }); + if (audioManager.getMode() != 0) + audioManager.setMode(0); + float f2 = paramTTMedia.volume; + float f1 = 1.0F; + if (f2 <= 1.0F) + if (paramTTMedia.volume < 0.0F) { + f1 = 0.0F; + } else { + f1 = paramTTMedia.volume; + } + if (paramTTMedia.obeyMuteSwitch) { + if (audioManager.getRingerMode() != 2) { + tTVideoEngine.setVolume(0.0F, 0.0F); + return; + } + tTVideoEngine.setVolume(f1, f1); + return; + } + tTVideoEngine.setVolume(f1, f1); + } + } + } + + public boolean containAudioId(int paramInt) { + return ((TTMedia)mSparseArray.get(paramInt) != null); + } + + public int createAudio(AudioStateModule paramAudioStateModule, String paramString, ApiErrorInfoEntity paramApiErrorInfoEntity) { + TTVideoEngine.setHTTPDNSFirst(false); + final TTMedia media = new TTMedia(); + tTMedia.state = 0; + int i = paramAudioStateModule.audioId; + tTMedia.audioId = i; + tTMedia.miniAppId = paramString; + tTMedia.videoEngine = buildTTVideoEngine(paramAudioStateModule, tTMedia); + if (DebugUtil.debug()) + TTVideoEngineLog.turnOn(1, 1); + TTVideoEngine tTVideoEngine = tTMedia.videoEngine; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(i); + tTVideoEngine.setVideoID(stringBuilder.toString()); + tTMedia.videoEngine.setDataSource(new DataSource() { + public String apiForFetcher(Map param1Map, int param1Int) { + return null; + } + }); + tTMedia.mAudioFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() { + public void onAudioFocusChange(int param1Int) { + if (param1Int != -3 && param1Int != -2 && param1Int != -1) { + if (param1Int != 1) + return; + if (TTVideoAudio.this.isTelPhoneRequestPlay) { + TTVideoAudio tTVideoAudio = TTVideoAudio.this; + tTVideoAudio.play(tTVideoAudio.telPhoneRequestPlayAudioId, (AudioManager.TaskListener)null); + TTVideoAudio.this.isTelPhoneRequestPlay = false; + } + return; + } + if (media.videoEngine != null) + TTVideoAudio.this.pause(media.audioId, (AudioManager.TaskListener)null); + AudioManager.isAudioFocusChangePause = true; + } + }; + mSparseArray.put(i, tTMedia); + return i; + } + + public AudioManager.AudioState getAudioState(int paramInt, ApiErrorInfoEntity paramApiErrorInfoEntity) { + ApiErrorInfoEntity apiErrorInfoEntity = paramApiErrorInfoEntity; + if (paramApiErrorInfoEntity == null) + apiErrorInfoEntity = new ApiErrorInfoEntity(); + TTMedia tTMedia = (TTMedia)mSparseArray.get(paramInt); + if (tTMedia == null) { + apiErrorInfoEntity.append(buildFailReason("audio init fail", paramInt)); + return null; + } + TTVideoEngine tTVideoEngine = tTMedia.videoEngine; + if (tTVideoEngine == null) { + apiErrorInfoEntity.append(buildFailReason("audio create fail", paramInt)); + return null; + } + AudioManager.AudioState audioState = new AudioManager.AudioState(); + audioState.src = tTMedia.src; + try { + if (tTMedia.isPreparing) { + audioState.duration = 0L; + } else { + audioState.duration = tTVideoEngine.getDuration(); + } + } catch (Exception exception) { + AppBrandLogger.e("tma_TTVideoAudio", new Object[] { "mediaPlayer is not Playing", exception }); + audioState.duration = 0L; + } + AppBrandLogger.d("tma_TTVideoAudio", new Object[] { "audioState.src ", audioState.src, " ", Long.valueOf(audioState.duration) }); + try { + if (tTMedia.isPreparing) { + audioState.currentTime = 0L; + } else if (tTMedia.isSeekEnd) { + audioState.currentTime = tTVideoEngine.getDuration(); + } else { + audioState.currentTime = tTVideoEngine.getCurrentPlaybackTime(); + } + } catch (Exception exception) { + AppBrandLogger.e("tma_TTVideoAudio", new Object[] { "mediaPlayer is not Playing", exception }); + audioState.currentTime = 0L; + } + try { + if (tTMedia.state == 8) { + if (tTMedia.isPlayToSeek) { + audioState.paused = false; + } else { + audioState.paused = true; + } + } else { + boolean bool; + if (tTMedia.state != 2) { + bool = true; + } else { + bool = false; + } + audioState.paused = bool; + } + } catch (Exception exception) { + AppBrandLogger.e("tma_TTVideoAudio", new Object[] { "mediaPlayer is not Playing", exception }); + audioState.paused = true; + } + audioState.buffered = tTMedia.buffer; + audioState.obeyMuteSwitch = tTMedia.obeyMuteSwitch; + audioState.autoplay = tTMedia.autoPlay; + audioState.loop = tTMedia.loop; + audioState.volume = tTMedia.volume; + return audioState; + } + + public boolean isMediaValid(int paramInt) { + TTMedia tTMedia = (TTMedia)mSparseArray.get(paramInt); + return (tTMedia != null && tTMedia.videoEngine != null); + } + + public boolean isPlaying(int paramInt) { + TTMedia tTMedia = (TTMedia)mSparseArray.get(paramInt); + return (tTMedia == null) ? false : ((tTMedia.state == 2)); + } + + public void onEnterBackground() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: ldc_w 'tma_TTVideoAudio' + // 5: iconst_1 + // 6: anewarray java/lang/Object + // 9: dup + // 10: iconst_0 + // 11: ldc_w 'onEnterBackground' + // 14: aastore + // 15: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 18: iconst_1 + // 19: putstatic com/tt/miniapp/audio/TTVideoAudio.isAppInBackground : Z + // 22: getstatic com/tt/miniapp/audio/TTVideoAudio.mSparseArray : Landroid/util/SparseArray; + // 25: invokevirtual size : ()I + // 28: istore_2 + // 29: aload_0 + // 30: getfield mStashPlayingAudioList : Ljava/util/List; + // 33: invokeinterface clear : ()V + // 38: iconst_0 + // 39: istore_1 + // 40: iload_1 + // 41: iload_2 + // 42: if_icmpge -> 154 + // 45: getstatic com/tt/miniapp/audio/TTVideoAudio.mSparseArray : Landroid/util/SparseArray; + // 48: iload_1 + // 49: invokevirtual keyAt : (I)I + // 52: istore_3 + // 53: aload_0 + // 54: iload_3 + // 55: aconst_null + // 56: invokevirtual getAudioState : (ILcom/tt/miniapphost/entity/ApiErrorInfoEntity;)Lcom/tt/miniapp/audio/AudioManager$AudioState; + // 59: astore #4 + // 61: getstatic com/tt/miniapp/audio/TTVideoAudio.mSparseArray : Landroid/util/SparseArray; + // 64: iload_3 + // 65: invokevirtual get : (I)Ljava/lang/Object; + // 68: checkcast com/tt/miniapp/audio/TTVideoAudio$TTMedia + // 71: astore #5 + // 73: new java/lang/StringBuilder + // 76: dup + // 77: ldc_w 'onEnterBackground ' + // 80: invokespecial : (Ljava/lang/String;)V + // 83: astore #6 + // 85: aload #6 + // 87: aload #5 + // 89: getfield state : I + // 92: invokevirtual append : (I)Ljava/lang/StringBuilder; + // 95: pop + // 96: ldc_w 'tma_TTVideoAudio' + // 99: iconst_1 + // 100: anewarray java/lang/Object + // 103: dup + // 104: iconst_0 + // 105: aload #6 + // 107: invokevirtual toString : ()Ljava/lang/String; + // 110: aastore + // 111: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 114: aload #4 + // 116: ifnull -> 147 + // 119: aload #4 + // 121: getfield paused : Z + // 124: ifne -> 147 + // 127: aload_0 + // 128: getfield mStashPlayingAudioList : Ljava/util/List; + // 131: iload_3 + // 132: invokestatic valueOf : (I)Ljava/lang/Integer; + // 135: invokeinterface add : (Ljava/lang/Object;)Z + // 140: pop + // 141: aload_0 + // 142: iload_3 + // 143: aconst_null + // 144: invokevirtual pause : (ILcom/tt/miniapp/audio/AudioManager$TaskListener;)V + // 147: iload_1 + // 148: iconst_1 + // 149: iadd + // 150: istore_1 + // 151: goto -> 40 + // 154: aload_0 + // 155: monitorexit + // 156: return + // 157: astore #4 + // 159: aload_0 + // 160: monitorexit + // 161: goto -> 167 + // 164: aload #4 + // 166: athrow + // 167: goto -> 164 + // Exception table: + // from to target type + // 2 38 157 finally + // 45 114 157 finally + // 119 147 157 finally + } + + public void onEnterForeground() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: ldc_w 'tma_TTVideoAudio' + // 5: iconst_1 + // 6: anewarray java/lang/Object + // 9: dup + // 10: iconst_0 + // 11: ldc_w 'onEnterForeground' + // 14: aastore + // 15: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 18: iconst_0 + // 19: putstatic com/tt/miniapp/audio/TTVideoAudio.isAppInBackground : Z + // 22: aload_0 + // 23: getfield mStashPlayingAudioList : Ljava/util/List; + // 26: invokeinterface iterator : ()Ljava/util/Iterator; + // 31: astore_1 + // 32: aload_1 + // 33: invokeinterface hasNext : ()Z + // 38: ifeq -> 61 + // 41: aload_0 + // 42: aload_1 + // 43: invokeinterface next : ()Ljava/lang/Object; + // 48: checkcast java/lang/Integer + // 51: invokevirtual intValue : ()I + // 54: aconst_null + // 55: invokevirtual play : (ILcom/tt/miniapp/audio/AudioManager$TaskListener;)V + // 58: goto -> 32 + // 61: aload_0 + // 62: getfield mStashPlayingAudioList : Ljava/util/List; + // 65: invokeinterface clear : ()V + // 70: aload_0 + // 71: monitorexit + // 72: return + // 73: astore_1 + // 74: aload_0 + // 75: monitorexit + // 76: goto -> 81 + // 79: aload_1 + // 80: athrow + // 81: goto -> 79 + // Exception table: + // from to target type + // 2 32 73 finally + // 32 58 73 finally + // 61 70 73 finally + } + + public void pause(int paramInt, AudioManager.TaskListener paramTaskListener) { + TTMedia tTMedia = (TTMedia)mSparseArray.get(paramInt); + if (tTMedia == null) { + if (paramTaskListener != null) + paramTaskListener.onFail(buildFailReason("audio init fail", paramInt), null); + return; + } + if (tTMedia.videoEngine == null) { + if (paramTaskListener != null) + paramTaskListener.onFail(buildFailReason("audio create fail", paramInt), null); + return; + } + tTMedia.isSeekEnd = false; + tTMedia.isPlayToSeek = false; + if (tTMedia.state == 7) { + if (paramTaskListener != null) + paramTaskListener.onFail(buildFailReason("audio state fail", paramInt), null); + return; + } + if (tTMedia.state == 2) + try { + sendMsgState(paramInt, "pause"); + tTMedia.videoEngine.pause(); + tTMedia.state = 4; + } catch (Exception exception) { + AppBrandLogger.e("tma_TTVideoAudio", new Object[] { "pause", exception }); + if (paramTaskListener != null) + paramTaskListener.onFail("audio pause fail", exception); + return; + } + if (paramTaskListener != null) + paramTaskListener.onSuccess(); + } + + public void play(int paramInt, AudioManager.TaskListener paramTaskListener) { + TTMedia tTMedia = (TTMedia)mSparseArray.get(paramInt); + if (tTMedia == null) { + if (paramTaskListener != null) + paramTaskListener.onFail(buildFailReason("audio init fail", paramInt), null); + return; + } + if (tTMedia.videoEngine == null) { + if (paramTaskListener != null) + paramTaskListener.onFail(buildFailReason("audio create fail", paramInt), null); + return; + } + if (isAppInBackground) { + if (paramTaskListener != null) + paramTaskListener.onFail(buildFailReason("app in background", paramInt), null); + return; + } + if (requestFocusAndPlay(tTMedia)) { + if (tTMedia.state == 0 || tTMedia.state == 6) + tTMedia.startByUser = true; + if (paramTaskListener != null) { + paramTaskListener.onSuccess(); + return; + } + } else if (paramTaskListener != null) { + paramTaskListener.onFail(buildFailReason("request focus and play", paramInt), null); + } + } + + public void releaseAllPlayers() { + for (int i = 0; i < mSparseArray.size(); i++) { + TTMedia tTMedia = (TTMedia)mSparseArray.valueAt(i); + if (tTMedia != null && tTMedia.videoEngine != null) { + tTMedia.videoEngine.release(); + tTMedia.videoEngine = null; + sendMsgState(mSparseArray.keyAt(i), "ended"); + } + } + mSparseArray.clear(); + this.playingAudioId.clear(); + } + + public boolean releaseAudio(int paramInt, ApiErrorInfoEntity paramApiErrorInfoEntity) { + return releaseAudio(paramInt, paramApiErrorInfoEntity, false); + } + + public boolean releaseAudio(int paramInt, ApiErrorInfoEntity paramApiErrorInfoEntity, boolean paramBoolean) { + ApiErrorInfoEntity apiErrorInfoEntity = paramApiErrorInfoEntity; + if (paramApiErrorInfoEntity == null) + apiErrorInfoEntity = new ApiErrorInfoEntity(); + AppBrandLogger.d("tma_TTVideoAudio", new Object[] { "releaseAudio ", Integer.valueOf(paramInt) }); + TTMedia tTMedia = (TTMedia)mSparseArray.get(paramInt); + if (tTMedia == null) { + apiErrorInfoEntity.append(buildFailReason("audio init fail", paramInt)); + return false; + } + TTVideoEngine tTVideoEngine = tTMedia.videoEngine; + if (tTVideoEngine == null) { + apiErrorInfoEntity.append(buildFailReason("audio create fail", paramInt)); + return false; + } + if (!paramBoolean) + sendMsgState(paramInt, "ended"); + try { + tTVideoEngine.release(); + this.mAudioManager.abandonAudioFocus(tTMedia.mAudioFocusChangeListener); + mSparseArray.delete(paramInt); + this.playingAudioId.remove(paramInt); + return true; + } catch (Exception exception) { + AppBrandLogger.e("tma_TTVideoAudio", new Object[] { "releaseAudio", exception }); + StringBuilder stringBuilder = new StringBuilder("release fail, audioId == "); + stringBuilder.append(paramInt); + apiErrorInfoEntity.append(stringBuilder.toString()); + apiErrorInfoEntity.setThrowable(exception); + return false; + } + } + + public void releaseBgAudio(int paramInt) { + for (int i = 0; i < mSparseArray.size(); i++) { + TTMedia tTMedia = (TTMedia)mSparseArray.valueAt(i); + if (tTMedia != null && tTMedia.audioId == paramInt && tTMedia.videoEngine != null) { + if (tTMedia.state != 0) + tTMedia.videoEngine.stop(); + releaseAudio(tTMedia.audioId, (ApiErrorInfoEntity)null); + } + } + } + + public void seek(final int audioId, final int currentTime, final AudioManager.TaskListener taskListener) { + final TTMedia media = (TTMedia)mSparseArray.get(audioId); + if (tTMedia == null) { + if (taskListener != null) + taskListener.onFail(buildFailReason("audio init fail", audioId), null); + return; + } + if (tTMedia.videoEngine == null) { + if (taskListener != null) + taskListener.onFail(buildFailReason("audio create fail", audioId), null); + return; + } + tTMedia.isSeekEnd = false; + if (tTMedia.state == 2) { + tTMedia.isPlayToSeek = true; + } else { + tTMedia.isPlayToSeek = false; + } + if ((!tTMedia.isPauseToSeek && tTMedia.state == 4) || (tTMedia.isPauseToSeek && tTMedia.state == 9) || (tTMedia.isPauseToSeek && tTMedia.state == 5)) { + tTMedia.isPauseToSeek = true; + } else { + tTMedia.isPauseToSeek = false; + } + if (currentTime > tTMedia.videoEngine.getDuration() - 1000) + tTMedia.isSeekEnd = true; + sendMsgState(audioId, "seeking"); + tTMedia.videoEngine.seekTo(currentTime, new SeekCompletionListener() { + public void onCompletion(boolean param1Boolean) { + if (param1Boolean) { + AudioManager.sendMsgState(audioId, "seeked"); + AudioManager.TaskListener taskListener = taskListener; + if (taskListener != null) + taskListener.onSuccess(); + } else { + media.videoEngine.setStartTime(currentTime); + if (media.isPlayToSeek) { + media.videoEngine.play(); + } else { + media.videoEngine.pause(); + } + AudioManager.sendMsgState(audioId, "seeked"); + AudioManager.TaskListener taskListener = taskListener; + if (taskListener != null) + taskListener.onSuccess(); + } + if (media.isPlayToSeek) { + media.state = 2; + return; + } + media.state = 9; + } + }); + } + + public void setAudioState(AudioStateModule paramAudioStateModule, AudioManager.TaskListener paramTaskListener) { + // Byte code: + // 0: aload_1 + // 1: getfield audioId : I + // 4: istore #5 + // 6: getstatic com/tt/miniapp/audio/TTVideoAudio.mSparseArray : Landroid/util/SparseArray; + // 9: iload #5 + // 11: invokevirtual get : (I)Ljava/lang/Object; + // 14: checkcast com/tt/miniapp/audio/TTVideoAudio$TTMedia + // 17: astore #7 + // 19: aload #7 + // 21: astore #6 + // 23: aload #7 + // 25: ifnonnull -> 58 + // 28: aload_0 + // 29: aload_1 + // 30: aload_1 + // 31: getfield miniAppId : Ljava/lang/String; + // 34: new com/tt/miniapphost/entity/ApiErrorInfoEntity + // 37: dup + // 38: invokespecial : ()V + // 41: invokevirtual createAudio : (Lcom/tt/miniapp/audio/AudioStateModule;Ljava/lang/String;Lcom/tt/miniapphost/entity/ApiErrorInfoEntity;)I + // 44: pop + // 45: getstatic com/tt/miniapp/audio/TTVideoAudio.mSparseArray : Landroid/util/SparseArray; + // 48: iload #5 + // 50: invokevirtual get : (I)Ljava/lang/Object; + // 53: checkcast com/tt/miniapp/audio/TTVideoAudio$TTMedia + // 56: astore #6 + // 58: aload #6 + // 60: ifnonnull -> 99 + // 63: ldc_w 'tma_TTVideoAudio' + // 66: iconst_1 + // 67: anewarray java/lang/Object + // 70: dup + // 71: iconst_0 + // 72: ldc_w 'setAudioState media == null' + // 75: aastore + // 76: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 79: aload_2 + // 80: ifnull -> 98 + // 83: aload_2 + // 84: ldc_w 'audio init fail' + // 87: iload #5 + // 89: invokestatic buildFailReason : (Ljava/lang/String;I)Ljava/lang/String; + // 92: aconst_null + // 93: invokeinterface onFail : (Ljava/lang/String;Ljava/lang/Throwable;)V + // 98: return + // 99: aload #6 + // 101: getfield videoEngine : Lcom/ss/ttvideoengine/TTVideoEngine; + // 104: astore #8 + // 106: aload #8 + // 108: ifnonnull -> 147 + // 111: ldc_w 'tma_TTVideoAudio' + // 114: iconst_1 + // 115: anewarray java/lang/Object + // 118: dup + // 119: iconst_0 + // 120: ldc_w 'setAudioState mediaPlayer == null' + // 123: aastore + // 124: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 127: aload_2 + // 128: ifnull -> 146 + // 131: aload_2 + // 132: ldc_w 'audio create fail' + // 135: iload #5 + // 137: invokestatic buildFailReason : (Ljava/lang/String;I)Ljava/lang/String; + // 140: aconst_null + // 141: invokeinterface onFail : (Ljava/lang/String;Ljava/lang/Throwable;)V + // 146: return + // 147: aload_1 + // 148: getfield src : Ljava/lang/String; + // 151: astore #7 + // 153: aload #7 + // 155: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 158: ifeq -> 197 + // 161: ldc_w 'tma_TTVideoAudio' + // 164: iconst_1 + // 165: anewarray java/lang/Object + // 168: dup + // 169: iconst_0 + // 170: ldc_w 'setAudioState src is empty' + // 173: aastore + // 174: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 177: aload_2 + // 178: ifnull -> 196 + // 181: aload_2 + // 182: ldc_w 'audio set fail, src is empty' + // 185: iload #5 + // 187: invokestatic buildFailReason : (Ljava/lang/String;I)Ljava/lang/String; + // 190: aconst_null + // 191: invokeinterface onFail : (Ljava/lang/String;Ljava/lang/Throwable;)V + // 196: return + // 197: aload #7 + // 199: ldc_w 'http' + // 202: invokevirtual startsWith : (Ljava/lang/String;)Z + // 205: ifeq -> 320 + // 208: invokestatic isMiniappProcess : ()Z + // 211: ifeq -> 320 + // 214: ldc_w 'request' + // 217: aload #7 + // 219: invokestatic isSafeDomain : (Ljava/lang/String;Ljava/lang/String;)Z + // 222: ifne -> 320 + // 225: ldc_w 'tma_TTVideoAudio' + // 228: iconst_1 + // 229: anewarray java/lang/Object + // 232: dup + // 233: iconst_0 + // 234: ldc_w 'setAudioState src is not valid domain' + // 237: aastore + // 238: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 241: new java/util/HashMap + // 244: dup + // 245: invokespecial : ()V + // 248: astore_1 + // 249: aload_1 + // 250: ldc_w 'errCode' + // 253: iconst_0 + // 254: invokestatic valueOf : (I)Ljava/lang/Integer; + // 257: invokevirtual put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 260: pop + // 261: aload_1 + // 262: ldc_w 'errMsg' + // 265: ldc_w 'not in valid domains' + // 268: invokevirtual put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 271: pop + // 272: iload #5 + // 274: ldc_w 'error' + // 277: aload_1 + // 278: invokestatic sendMsgState : (ILjava/lang/String;Ljava/util/Map;)V + // 281: aload_2 + // 282: ifnull -> 319 + // 285: new java/lang/StringBuilder + // 288: dup + // 289: ldc_w 'audio set fail, src is not valid domain, src == ' + // 292: invokespecial : (Ljava/lang/String;)V + // 295: astore_1 + // 296: aload_1 + // 297: aload #7 + // 299: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 302: pop + // 303: aload_2 + // 304: aload_1 + // 305: invokevirtual toString : ()Ljava/lang/String; + // 308: iload #5 + // 310: invokestatic buildFailReason : (Ljava/lang/String;I)Ljava/lang/String; + // 313: aconst_null + // 314: invokeinterface onFail : (Ljava/lang/String;Ljava/lang/Throwable;)V + // 319: return + // 320: aload #6 + // 322: getfield src : Ljava/lang/String; + // 325: aload #7 + // 327: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 330: ifeq -> 357 + // 333: ldc_w 'tma_TTVideoAudio' + // 336: iconst_2 + // 337: anewarray java/lang/Object + // 340: dup + // 341: iconst_0 + // 342: ldc_w 'setAudioState TextUtils.equals(media.src, playUrl) ' + // 345: aastore + // 346: dup + // 347: iconst_1 + // 348: aload #7 + // 350: aastore + // 351: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 354: goto -> 449 + // 357: ldc_w 'tma_TTVideoAudio' + // 360: iconst_2 + // 361: anewarray java/lang/Object + // 364: dup + // 365: iconst_0 + // 366: ldc_w 'setAudioState src is ' + // 369: aastore + // 370: dup + // 371: iconst_1 + // 372: aload #7 + // 374: aastore + // 375: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 378: aload_1 + // 379: getfield encryptToken : Ljava/lang/String; + // 382: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 385: ifne -> 397 + // 388: aload #8 + // 390: aload_1 + // 391: getfield encryptToken : Ljava/lang/String; + // 394: invokevirtual setDecryptionKey : (Ljava/lang/String;)V + // 397: aload #7 + // 399: aload #8 + // 401: invokestatic setTTVideoEnginePath : (Ljava/lang/String;Lcom/ss/ttvideoengine/TTVideoEngine;)Lcom/ss/ttvideoengine/TTVideoEngine; + // 404: pop + // 405: aload #6 + // 407: iconst_1 + // 408: putfield isPreparing : Z + // 411: aload #6 + // 413: bipush #6 + // 415: putfield state : I + // 418: aload_1 + // 419: getfield autoplay : Z + // 422: ifeq -> 449 + // 425: aload_0 + // 426: aload #6 + // 428: invokespecial requestFocusAndPlay : (Lcom/tt/miniapp/audio/TTVideoAudio$TTMedia;)Z + // 431: ifne -> 449 + // 434: aload_2 + // 435: ifnull -> 448 + // 438: aload_2 + // 439: ldc_w 'audio set fail, auto play fail' + // 442: aconst_null + // 443: invokeinterface onFail : (Ljava/lang/String;Ljava/lang/Throwable;)V + // 448: return + // 449: aload #6 + // 451: aload #7 + // 453: putfield src : Ljava/lang/String; + // 456: aload #6 + // 458: aload_1 + // 459: getfield autoplay : Z + // 462: putfield autoPlay : Z + // 465: aload #6 + // 467: aload_1 + // 468: getfield loop : Z + // 471: putfield loop : Z + // 474: aload #6 + // 476: aload_1 + // 477: getfield obeyMuteSwitch : Z + // 480: putfield obeyMuteSwitch : Z + // 483: aload_1 + // 484: getfield volume : F + // 487: fstore #4 + // 489: fconst_0 + // 490: fstore_3 + // 491: fload #4 + // 493: fconst_1 + // 494: fcmpl + // 495: ifle -> 503 + // 498: fconst_1 + // 499: fstore_3 + // 500: goto -> 520 + // 503: aload_1 + // 504: getfield volume : F + // 507: fconst_0 + // 508: fcmpg + // 509: ifge -> 515 + // 512: goto -> 520 + // 515: aload_1 + // 516: getfield volume : F + // 519: fstore_3 + // 520: aload #6 + // 522: fload_3 + // 523: putfield volume : F + // 526: aload #6 + // 528: aload_1 + // 529: getfield isBgAudio : Z + // 532: putfield isBgAudio : Z + // 535: aload #6 + // 537: invokestatic setVolume : (Lcom/tt/miniapp/audio/TTVideoAudio$TTMedia;)V + // 540: aload_2 + // 541: ifnull -> 550 + // 544: aload_2 + // 545: invokeinterface onSuccess : ()V + // 550: return + // 551: astore_1 + // 552: aload_2 + // 553: ifnull -> 588 + // 556: new java/lang/StringBuilder + // 559: dup + // 560: ldc_w 'audio set fail, src is error, src == ' + // 563: invokespecial : (Ljava/lang/String;)V + // 566: astore #6 + // 568: aload #6 + // 570: aload #7 + // 572: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 575: pop + // 576: aload_2 + // 577: aload #6 + // 579: invokevirtual toString : ()Ljava/lang/String; + // 582: aload_1 + // 583: invokeinterface onFail : (Ljava/lang/String;Ljava/lang/Throwable;)V + // 588: return + // Exception table: + // from to target type + // 378 397 551 java/lang/Exception + // 397 405 551 java/lang/Exception + } + + public void stop(int paramInt, AudioManager.TaskListener paramTaskListener) { + stop(paramInt, paramTaskListener, false); + } + + public void stop(int paramInt, AudioManager.TaskListener paramTaskListener, boolean paramBoolean) { + TTMedia tTMedia = (TTMedia)mSparseArray.get(paramInt); + if (tTMedia == null || tTMedia.videoEngine == null) { + if (paramTaskListener != null) + paramTaskListener.onSuccess(); + return; + } + tTMedia.isSeekEnd = false; + tTMedia.isPauseToSeek = false; + tTMedia.isPlayToSeek = false; + tTMedia.videoEngine.stop(); + tTMedia.state = 5; + if (!paramBoolean) + sendMsgState(paramInt, "stop"); + if (paramTaskListener != null) + paramTaskListener.onSuccess(); + } + + static class MiniAppAudioListener implements VideoEngineListener { + private int mAudioId; + + private TTVideoAudio.TTMedia mMedia; + + public MiniAppAudioListener(int param1Int, TTVideoAudio.TTMedia param1TTMedia) { + this.mAudioId = param1Int; + this.mMedia = param1TTMedia; + } + + public void onBufferingUpdate(TTVideoEngine param1TTVideoEngine, int param1Int) { + this.mMedia.buffer = param1Int; + } + + public void onCompletion(TTVideoEngine param1TTVideoEngine) { + TTVideoAudio.TTMedia tTMedia = this.mMedia; + if (tTMedia == null) + return; + if (tTMedia.loop && !this.mMedia.isPauseToSeek) { + tTMedia = this.mMedia; + tTMedia.isSeekEnd = false; + tTMedia.videoEngine.play(); + AudioManager.sendMsgState(this.mMedia.audioId, "play"); + return; + } + if (this.mMedia.isSeekEnd) { + AudioManager.sendMsgState(this.mAudioId, "pause"); + return; + } + tTMedia = this.mMedia; + tTMedia.isPauseToSeek = false; + tTMedia.state = 3; + AudioManager.sendMsgState(this.mAudioId, "ended"); + } + + public void onError(Error param1Error) { + int i = param1Error.code; + String str = param1Error.description; + TTVideoAudio.TTMedia tTMedia = this.mMedia; + if (tTMedia != null) + tTMedia.state = 7; + AppBrandLogger.e("tma_TTVideoAudio", new Object[] { "audioId ", Integer.valueOf(this.mAudioId), " onError what ", Integer.valueOf(i), " extra ", str }); + HashMap hashMap = new HashMap(); + hashMap.put("errCode", Integer.valueOf(i)); + hashMap.put("errMsg", str); + AudioManager.sendMsgState(this.mAudioId, "error", (Map)hashMap); + } + + public void onLoadStateChanged(TTVideoEngine param1TTVideoEngine, int param1Int) {} + + public void onPlaybackStateChanged(TTVideoEngine param1TTVideoEngine, int param1Int) { + if (param1Int != 0) { + if (param1Int != 1) { + if (param1Int != 2) { + if (param1Int != 3) + return; + this.mMedia.state = 7; + return; + } + this.mMedia.state = 4; + return; + } + this.mMedia.state = 2; + return; + } + this.mMedia.state = 5; + } + + public void onPrepare(TTVideoEngine param1TTVideoEngine) { + TTVideoAudio.TTMedia tTMedia = this.mMedia; + tTMedia.isPreparing = true; + tTMedia.state = 6; + } + + public void onPrepared(TTVideoEngine param1TTVideoEngine) { + AppBrandLogger.d("tma_TTVideoAudio", new Object[] { "onPrepared audioId ", Integer.valueOf(this.mAudioId) }); + TTVideoAudio.TTMedia tTMedia = this.mMedia; + if (tTMedia == null) + return; + if (tTMedia.src != null && !this.mMedia.src.startsWith("http")) + this.mMedia.buffer = 100; + tTMedia = this.mMedia; + tTMedia.isPreparing = false; + if (tTMedia.videoEngine != null) { + this.mMedia.state = 1; + AudioManager.sendMsgState(this.mAudioId, "canplay"); + } + if (AudioManager.isAppInBackground) + return; + if (this.mMedia.autoPlay || this.mMedia.startByUser) { + tTMedia = this.mMedia; + tTMedia.startByUser = false; + tTMedia.state = 2; + AudioManager.sendMsgState(tTMedia.audioId, "play"); + } + } + + public void onRenderStart(TTVideoEngine param1TTVideoEngine) {} + + public void onStreamChanged(TTVideoEngine param1TTVideoEngine, int param1Int) {} + + public void onVideoSizeChanged(TTVideoEngine param1TTVideoEngine, int param1Int1, int param1Int2) {} + + public void onVideoStatusException(int param1Int) {} + } + + public static class TTMedia extends AudioManager.BaseMedia { + public boolean isPauseToSeek; + + public boolean isSeekEnd; + + public String miniAppId; + + public TTVideoEngine videoEngine; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\TTVideoAudio.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioCallExtra.java b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioCallExtra.java new file mode 100644 index 0000000..8dc1d7b --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioCallExtra.java @@ -0,0 +1,82 @@ +package com.tt.miniapp.audio.background; + +import android.os.Parcel; +import android.os.Parcelable; +import android.text.TextUtils; +import com.tt.miniapphost.AppBrandLogger; +import org.json.JSONObject; + +public class BgAudioCallExtra implements Parcelable { + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + public final BgAudioCallExtra createFromParcel(Parcel param1Parcel) { + return new BgAudioCallExtra(param1Parcel); + } + + public final BgAudioCallExtra[] newArray(int param1Int) { + return new BgAudioCallExtra[param1Int]; + } + }; + + public String callAppId; + + public String callProcessName; + + public boolean isGame; + + public BgAudioCallExtra() {} + + protected BgAudioCallExtra(Parcel paramParcel) { + boolean bool; + this.callAppId = paramParcel.readString(); + this.callProcessName = paramParcel.readString(); + if (paramParcel.readByte() != 0) { + bool = true; + } else { + bool = false; + } + this.isGame = bool; + } + + public static BgAudioCallExtra parseFromJSONStr(String paramString) { + if (TextUtils.isEmpty(paramString)) + return null; + try { + JSONObject jSONObject = new JSONObject(paramString); + BgAudioCallExtra bgAudioCallExtra = new BgAudioCallExtra(); + bgAudioCallExtra.callAppId = jSONObject.optString("callAppId"); + bgAudioCallExtra.callProcessName = jSONObject.optString("callProcessName"); + bgAudioCallExtra.isGame = jSONObject.optBoolean("isGame"); + return bgAudioCallExtra; + } catch (Exception exception) { + AppBrandLogger.e("BgAudioCallExtra", new Object[] { "parseFromJSONStr", exception }); + return null; + } + } + + public int describeContents() { + return 0; + } + + public String toJSONStr() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("callAppId", this.callAppId); + jSONObject.put("callProcessName", this.callProcessName); + jSONObject.put("isGame", this.isGame); + return jSONObject.toString(); + } catch (Exception exception) { + AppBrandLogger.e("BgAudioCallExtra", new Object[] { "toJSONStr", exception }); + return null; + } + } + + public void writeToParcel(Parcel paramParcel, int paramInt) { + throw new RuntimeException("d2j fail translate: java.lang.RuntimeException: can not merge I and Z\r\n\tat com.googlecode.dex2jar.ir.TypeClass.merge(TypeClass.java:100)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeRef.updateTypeClass(TypeTransformer.java:174)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.provideAs(TypeTransformer.java:780)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.e1expr(TypeTransformer.java:496)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:713)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.s1stmt(TypeTransformer.java:810)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.sxStmt(TypeTransformer.java:840)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.analyze(TypeTransformer.java:206)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer.transform(TypeTransformer.java:44)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:162)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:414)\r\n\tat com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:42)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:128)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:509)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:406)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:422)\r\n\tat com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:172)\r\n\tat com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:272)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:108)\r\n\tat com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)\r\n"); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\background\BgAudioCallExtra.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioCommand.java b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioCommand.java new file mode 100644 index 0000000..f340168 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioCommand.java @@ -0,0 +1,50 @@ +package com.tt.miniapp.audio.background; + +import android.text.TextUtils; + +public enum BgAudioCommand { + GET_AUDIO_STATE, + NEED_KEEP_ALIVE, + OBTAIN_MANAGER("obtainManager"), + PAUSE("obtainManager"), + PLAY("play"), + SEEK("play"), + SET_AUDIO_MODEL("play"), + STOP("play"); + + private String mCommand; + + static { + PAUSE = new BgAudioCommand("PAUSE", 2, "pause"); + STOP = new BgAudioCommand("STOP", 3, "stop"); + SEEK = new BgAudioCommand("SEEK", 4, "seek"); + SET_AUDIO_MODEL = new BgAudioCommand("SET_AUDIO_MODEL", 5, "setAudioModel"); + GET_AUDIO_STATE = new BgAudioCommand("GET_AUDIO_STATE", 6, "getAudioState"); + NEED_KEEP_ALIVE = new BgAudioCommand("NEED_KEEP_ALIVE", 7, "needKeepAlive"); + $VALUES = new BgAudioCommand[] { OBTAIN_MANAGER, PLAY, PAUSE, STOP, SEEK, SET_AUDIO_MODEL, GET_AUDIO_STATE, NEED_KEEP_ALIVE }; + } + + BgAudioCommand(String paramString1) { + this.mCommand = paramString1; + } + + public static BgAudioCommand fromString(String paramString) { + if (TextUtils.isEmpty(paramString)) + return null; + for (BgAudioCommand bgAudioCommand : values()) { + if (bgAudioCommand.mCommand.equalsIgnoreCase(paramString)) + return bgAudioCommand; + } + return null; + } + + public final String getCommand() { + return this.mCommand; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\background\BgAudioCommand.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioManagerClient.java b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioManagerClient.java new file mode 100644 index 0000000..d2fc90e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioManagerClient.java @@ -0,0 +1,281 @@ +package com.tt.miniapp.audio.background; + +import android.app.Activity; +import android.content.Context; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.util.NetUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.process.bridge.ProcessCallControlBridge; +import com.tt.miniapphost.process.callback.IpcCallback; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.util.ProcessUtil; +import java.util.LinkedList; +import java.util.Queue; +import org.json.JSONObject; + +public class BgAudioManagerClient { + public static volatile int sAudioId = -1; + + private BgAudioModel mCacheAudioModel; + + private Queue mTaskQueue = new LinkedList(); + + private BgAudioManagerClient() {} + + private void bindRemoteService() { + AppBrandLogger.d("BgAudioManagerClient", new Object[] { "bindRemoteService" }); + try { + BgAudioCallExtra bgAudioCallExtra = new BgAudioCallExtra(); + AppInfoEntity appInfoEntity = AppbrandApplication.getInst().getAppInfo(); + if (appInfoEntity != null) { + boolean bool; + bgAudioCallExtra.callAppId = appInfoEntity.appId; + if (appInfoEntity.type == 2) { + bool = true; + } else { + bool = false; + } + bgAudioCallExtra.isGame = bool; + bgAudioCallExtra.callProcessName = ProcessUtil.getCurProcessName((Context)AppbrandContext.getInst().getApplicationContext()); + } + sAudioId = sendBgCommand(sAudioId, BgAudioCommand.OBTAIN_MANAGER, bgAudioCallExtra.toJSONStr()).getInt("bgAudioId"); + ProcessCallControlBridge.callHostProcessAsync("registerBgAudioPlayState", CrossProcessDataEntity.Builder.create().put("bgAudioId", Integer.valueOf(sAudioId)).build(), new IpcCallback() { + public void onIpcCallback(CrossProcessDataEntity param1CrossProcessDataEntity) { + AppBrandLogger.d("BgAudioManagerClient", new Object[] { "bindRemoteService onIpcCallback callbackData:", param1CrossProcessDataEntity }); + if (param1CrossProcessDataEntity == null) + return; + String str = param1CrossProcessDataEntity.getString("bgAudioPlayState"); + if (str != null) + BgAudioManagerClient.sendBgAudioState(str); + } + + public void onIpcConnectError() { + AppBrandLogger.i("BgAudioManagerClient", new Object[] { "onIpcConnectError" }); + BgAudioManagerClient.sAudioId = -1; + } + }); + } catch (Exception exception) { + AppBrandLogger.e("BgAudioManagerClient", new Object[] { "bindRemoteService", exception }); + } + while (!this.mTaskQueue.isEmpty()) + ((AudioRunnable)this.mTaskQueue.poll()).run(); + } + + public static BgAudioManagerClient getInst() { + return Holder.INSTANCE; + } + + public static void sendBgAudioState(String paramString) { + try { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("state", paramString); + AppbrandApplication.getInst().getJsBridge().sendMsgToJsCore("onBgAudioStateChange", jSONObject.toString()); + return; + } catch (Exception exception) { + AppBrandLogger.e("BgAudioManagerClient", new Object[] { "sendBgAudioState", exception }); + return; + } + } + + private void sendRequest(AudioRunnable paramAudioRunnable) { + sendRequest(paramAudioRunnable, false); + } + + private void sendRequest(AudioRunnable paramAudioRunnable, boolean paramBoolean) { + if (!paramBoolean && sAudioId == -1) { + BgAudioModel bgAudioModel = this.mCacheAudioModel; + if (bgAudioModel != null) + setAudioModel(bgAudioModel, null); + } + paramAudioRunnable.run(); + } + + public BgAudioState getAudioState() { + BgAudioState bgAudioState = new BgAudioState(); + if (sAudioId == -1) { + bgAudioState.paused = true; + return bgAudioState; + } + try { + return BgAudioState.parseFromJSONStr(sendBgCommand(sAudioId, BgAudioCommand.GET_AUDIO_STATE).getString("bgAudioCommondRetState")); + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "BgAudioManagerClient", exception.getStackTrace()); + return bgAudioState; + } + } + + public boolean needKeepAlive() { + if (sAudioId < 0) + return false; + try { + return sendBgCommand(sAudioId, BgAudioCommand.NEED_KEEP_ALIVE).getBoolean("bgAudioCommandRetNeedKeepAlive"); + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "BgAudioManagerClient", exception.getStackTrace()); + return false; + } + } + + public void obtainManager(final IBindCallback callback) { + if (sAudioId >= 0) { + callback.onBind(sAudioId); + return; + } + this.mTaskQueue.offer(new AudioRunnable() { + public void run() { + callback.onBind(BgAudioManagerClient.sAudioId); + } + }); + bindRemoteService(); + } + + public void pause(final TaskListener taskListener) { + sendRequest(new AudioRunnable() { + public void run() { + try { + BgAudioManagerClient.this.sendBgCommand(BgAudioManagerClient.sAudioId, BgAudioCommand.PAUSE); + if (taskListener != null) + taskListener.onSuccess(); + return; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "BgAudioManagerClient", exception.getStackTrace()); + BgAudioManagerClient.TaskListener taskListener = taskListener; + if (taskListener != null) + taskListener.onFail("exception", exception); + return; + } + } + }); + } + + public void play(final TaskListener taskListener) { + if (AppbrandApplicationImpl.getInst().getMiniAppLaunchConfig().isLaunchWithFloatStyle()) + HostDependManager.getInst().muteLiveWindowView((Activity)AppbrandContext.getInst().getCurrentActivity(), AppbrandApplicationImpl.getInst().getSchema()); + sendRequest(new AudioRunnable() { + public void run() { + try { + BgAudioManagerClient.this.sendBgCommand(BgAudioManagerClient.sAudioId, BgAudioCommand.PLAY); + if (taskListener != null) + taskListener.onSuccess(); + return; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "BgAudioManagerClient", exception.getStackTrace()); + BgAudioManagerClient.TaskListener taskListener = taskListener; + if (taskListener != null) + taskListener.onFail("exception", exception); + return; + } + } + }); + } + + public void seek(final int position, final TaskListener taskListener) { + sendRequest(new AudioRunnable() { + public void run() { + try { + BgAudioManagerClient bgAudioManagerClient = BgAudioManagerClient.this; + int i = BgAudioManagerClient.sAudioId; + BgAudioCommand bgAudioCommand = BgAudioCommand.SEEK; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(position); + bgAudioManagerClient.sendBgCommand(i, bgAudioCommand, stringBuilder.toString()); + if (taskListener != null) + taskListener.onSuccess(); + return; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "BgAudioManagerClient", exception.getStackTrace()); + BgAudioManagerClient.TaskListener taskListener = taskListener; + if (taskListener != null) + taskListener.onFail("exception", exception); + return; + } + } + }); + } + + public CrossProcessDataEntity sendBgCommand(int paramInt, BgAudioCommand paramBgAudioCommand) { + return sendBgCommand(paramInt, paramBgAudioCommand, null); + } + + public CrossProcessDataEntity sendBgCommand(int paramInt, BgAudioCommand paramBgAudioCommand, String paramString) { + AppBrandLogger.d("BgAudioManagerClient", new Object[] { "commondType:", paramBgAudioCommand, "commondInfo:", paramString }); + return ProcessCallControlBridge.callHostProcessSync("type_bg_audio_sync_commond", CrossProcessDataEntity.Builder.create().put("bgAudioId", Integer.valueOf(paramInt)).put("bgAudioCommondType", paramBgAudioCommand.getCommand()).put("bgAudioCommondInfo", paramString).build()); + } + + public void setAudioId(int paramInt) { + sAudioId = paramInt; + } + + public void setAudioModel(final BgAudioModel model, final TaskListener taskListener) { + if (model != null && model.src != null && !NetUtil.isSafeDomain("request", model.src)) { + if (taskListener != null) + taskListener.onFail("exception", new Exception()); + return; + } + this.mCacheAudioModel = model; + if (sAudioId == -1) + bindRemoteService(); + sendRequest(new AudioRunnable() { + public void run() { + try { + BgAudioManagerClient.this.sendBgCommand(BgAudioManagerClient.sAudioId, BgAudioCommand.SET_AUDIO_MODEL, model.toJSONStr()); + if (taskListener != null) + taskListener.onSuccess(); + return; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "BgAudioManagerClient", exception.getStackTrace()); + BgAudioManagerClient.TaskListener taskListener = taskListener; + if (taskListener != null) + taskListener.onFail("exception", exception); + return; + } + } + }true); + } + + public void stop(final TaskListener taskListener) { + sendRequest(new AudioRunnable() { + public void run() { + try { + BgAudioManagerClient.this.sendBgCommand(BgAudioManagerClient.sAudioId, BgAudioCommand.STOP); + if (taskListener != null) + taskListener.onSuccess(); + return; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "BgAudioManagerClient", exception.getStackTrace()); + BgAudioManagerClient.TaskListener taskListener = taskListener; + if (taskListener != null) + taskListener.onFail("exception", exception); + return; + } + } + }); + } + + static interface AudioRunnable { + void run(); + } + + static class Holder { + public static final BgAudioManagerClient INSTANCE = new BgAudioManagerClient(); + } + + public static interface IBindCallback { + void onBind(int param1Int); + } + + public static interface TaskListener { + void onFail(String param1String, Throwable param1Throwable); + + void onSuccess(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\background\BgAudioManagerClient.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioManagerServiceNative.java b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioManagerServiceNative.java new file mode 100644 index 0000000..0ccc787 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioManagerServiceNative.java @@ -0,0 +1,1063 @@ +package com.tt.miniapp.audio.background; + +import android.os.Looper; +import android.telephony.PhoneStateListener; +import android.telephony.TelephonyManager; +import android.text.TextUtils; +import android.util.SparseArray; +import com.tt.miniapp.audio.AudioManager; +import com.tt.miniapp.audio.AudioStateModule; +import com.tt.miniapp.audio.TTVideoAudio; +import com.tt.miniapp.process.AppProcessManager; +import com.tt.miniapp.process.MiniProcessMonitor; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +public class BgAudioManagerServiceNative { + private static BgAudioManagerServiceNative sInstance; + + public volatile BgAudioControlCell mCurrentBgAudioControlCell; + + public int mCurrentPlayAudioId = -1; + + private GetProgressTask mGetProgressTask = new GetProgressTask(); + + public List mHostPlayStateListeners = new ArrayList(); + + private AtomicInteger mId = new AtomicInteger(0); + + public boolean mIsRing; + + private boolean mKeepAlive = false; + + private AtomicBoolean mListeningPhoneState = new AtomicBoolean(false); + + private SparseArray mMiniAppProcessBgAudios = new SparseArray(); + + public final TTVideoAudio mTtVideoAudio = new TTVideoAudio(true, new AudioManager.BgSendMsgStateListener() { + public void onSendMsgState(int param1Int, String param1String) { + BgAudioManagerServiceNative.this.onEvent(param1Int, param1String); + } + }); + + private BgAudioManagerServiceNative() { + AppProcessManager.registerProcessLifeListener(new MiniProcessMonitor.ProcessLifeListener() { + public void onAlive(AppProcessManager.ProcessInfo param1ProcessInfo) {} + + public void onDied(AppProcessManager.ProcessInfo param1ProcessInfo) { + BgAudioManagerServiceNative.this.onProcessDied(param1ProcessInfo.mProcessName); + } + }); + } + + public static BgAudioManagerServiceNative getInst() { + // Byte code: + // 0: getstatic com/tt/miniapp/audio/background/BgAudioManagerServiceNative.sInstance : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 3: ifnonnull -> 31 + // 6: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 8: monitorenter + // 9: new com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 12: dup + // 13: invokespecial : ()V + // 16: putstatic com/tt/miniapp/audio/background/BgAudioManagerServiceNative.sInstance : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 19: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 21: monitorexit + // 22: goto -> 31 + // 25: astore_0 + // 26: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 28: monitorexit + // 29: aload_0 + // 30: athrow + // 31: getstatic com/tt/miniapp/audio/background/BgAudioManagerServiceNative.sInstance : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 34: areturn + // Exception table: + // from to target type + // 9 22 25 finally + // 26 29 25 finally + } + + private BgAudioControlCell getMiniAppProcessBgAudioModel(int paramInt) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mMiniAppProcessBgAudios : Landroid/util/SparseArray; + // 6: iload_1 + // 7: invokevirtual get : (I)Ljava/lang/Object; + // 10: checkcast com/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell + // 13: astore_2 + // 14: aload_2 + // 15: ifnull -> 22 + // 18: aload_0 + // 19: monitorexit + // 20: aload_2 + // 21: areturn + // 22: new com/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell + // 25: dup + // 26: aload_0 + // 27: iload_1 + // 28: aconst_null + // 29: invokespecial : (Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative;ILcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$1;)V + // 32: astore_2 + // 33: aload_0 + // 34: getfield mMiniAppProcessBgAudios : Landroid/util/SparseArray; + // 37: iload_1 + // 38: aload_2 + // 39: invokevirtual put : (ILjava/lang/Object;)V + // 42: aload_0 + // 43: monitorexit + // 44: aload_2 + // 45: areturn + // 46: astore_2 + // 47: aload_0 + // 48: monitorexit + // 49: aload_2 + // 50: athrow + // Exception table: + // from to target type + // 2 14 46 finally + // 22 42 46 finally + } + + private void listenPhoneState() { + if (!this.mListeningPhoneState.compareAndSet(false, true)) { + AppBrandLogger.d("BgAudioManagerServiceNative", new Object[] { "isListeningPhoneState" }); + return; + } + AppBrandLogger.d("BgAudioManagerServiceNative", new Object[] { "startListenPhoneState" }); + ThreadUtil.getThread(new Runnable() { + public void run() { + Looper.prepare(); + ((TelephonyManager)AppbrandContext.getInst().getApplicationContext().getSystemService("phone")).listen(new PhoneStateListener() { + public void onCallStateChanged(int param2Int, String param2String) { + if (param2Int != 0) { + if (param2Int == 1) + BgAudioManagerServiceNative.this.mIsRing = true; + } else { + if (BgAudioManagerServiceNative.this.mCurrentPlayAudioId >= 0 && BgAudioManagerServiceNative.this.mIsRing) { + BgAudioManagerServiceNative.this.mTtVideoAudio.isTelPhoneRequestPlay = true; + BgAudioManagerServiceNative.this.mTtVideoAudio.telPhoneRequestPlayAudioId = BgAudioManagerServiceNative.this.mCurrentPlayAudioId; + BgAudioManagerServiceNative.this.mTtVideoAudio.play(BgAudioManagerServiceNative.this.mCurrentPlayAudioId, null); + } + BgAudioManagerServiceNative.this.mIsRing = false; + } + super.onCallStateChanged(param2Int, param2String); + } + }32); + Looper.loop(); + } + }"BgListenerPhoneState").start(); + } + + public BgAudioState getAudioState(int paramInt) { + AudioManager.AudioState audioState = this.mTtVideoAudio.getAudioState(paramInt, null); + if (audioState == null) + return null; + BgAudioState bgAudioState = new BgAudioState(); + bgAudioState.duration = (int)audioState.duration; + bgAudioState.currentTime = (int)audioState.currentTime; + bgAudioState.paused = audioState.paused; + bgAudioState.bufferd = audioState.buffered; + bgAudioState.volume = Math.round(audioState.volume); + return bgAudioState; + } + + public boolean needKeepAlive(int paramInt) { + String str = getMiniAppProcessBgAudioModel(paramInt).getMiniAppProcessName(); + return (str == null) ? false : TextUtils.equals(AppProcessManager.playingBgAudioProcessName, str); + } + + public int obtainManager(int paramInt, BgAudioCallExtra paramBgAudioCallExtra) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: invokespecial listenPhoneState : ()V + // 6: aload_0 + // 7: getfield mTtVideoAudio : Lcom/tt/miniapp/audio/TTVideoAudio; + // 10: iload_1 + // 11: invokevirtual containAudioId : (I)Z + // 14: istore_3 + // 15: iload_3 + // 16: ifeq -> 23 + // 19: aload_0 + // 20: monitorexit + // 21: iload_1 + // 22: ireturn + // 23: aload_0 + // 24: getfield mId : Ljava/util/concurrent/atomic/AtomicInteger; + // 27: invokevirtual incrementAndGet : ()I + // 30: istore_1 + // 31: aload_0 + // 32: iload_1 + // 33: invokespecial getMiniAppProcessBgAudioModel : (I)Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 36: aload_2 + // 37: putfield mBgAudioCallExtra : Lcom/tt/miniapp/audio/background/BgAudioCallExtra; + // 40: aload_0 + // 41: monitorexit + // 42: iload_1 + // 43: ireturn + // 44: astore_2 + // 45: aload_0 + // 46: monitorexit + // 47: aload_2 + // 48: athrow + // Exception table: + // from to target type + // 2 15 44 finally + // 23 40 44 finally + } + + public void onEvent(int paramInt, String paramString) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: ldc 'BgAudioManagerServiceNative' + // 4: iconst_4 + // 5: anewarray java/lang/Object + // 8: dup + // 9: iconst_0 + // 10: ldc 'onEvent state' + // 12: aastore + // 13: dup + // 14: iconst_1 + // 15: aload_2 + // 16: aastore + // 17: dup + // 18: iconst_2 + // 19: ldc 'audioId' + // 21: aastore + // 22: dup + // 23: iconst_3 + // 24: iload_1 + // 25: invokestatic valueOf : (I)Ljava/lang/Integer; + // 28: aastore + // 29: invokestatic i : (Ljava/lang/String;[Ljava/lang/Object;)V + // 32: aload_0 + // 33: iload_1 + // 34: invokespecial getMiniAppProcessBgAudioModel : (I)Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 37: astore #4 + // 39: iconst_m1 + // 40: istore_3 + // 41: aload_2 + // 42: invokevirtual hashCode : ()I + // 45: lookupswitch default -> 221, -906224361 -> 130, 3443508 -> 116, 550609668 -> 102, 1971820138 -> 88 + // 88: aload_2 + // 89: ldc 'seeking' + // 91: invokevirtual equals : (Ljava/lang/Object;)Z + // 94: ifeq -> 141 + // 97: iconst_2 + // 98: istore_3 + // 99: goto -> 141 + // 102: aload_2 + // 103: ldc 'canplay' + // 105: invokevirtual equals : (Ljava/lang/Object;)Z + // 108: ifeq -> 141 + // 111: iconst_1 + // 112: istore_3 + // 113: goto -> 141 + // 116: aload_2 + // 117: ldc 'play' + // 119: invokevirtual equals : (Ljava/lang/Object;)Z + // 122: ifeq -> 141 + // 125: iconst_0 + // 126: istore_3 + // 127: goto -> 141 + // 130: aload_2 + // 131: ldc 'seeked' + // 133: invokevirtual equals : (Ljava/lang/Object;)Z + // 136: ifeq -> 141 + // 139: iconst_3 + // 140: istore_3 + // 141: iload_3 + // 142: ifeq -> 181 + // 145: iload_3 + // 146: iconst_1 + // 147: if_icmpeq -> 207 + // 150: iload_3 + // 151: iconst_2 + // 152: if_icmpeq -> 207 + // 155: iload_3 + // 156: iconst_3 + // 157: if_icmpeq -> 207 + // 160: aload_0 + // 161: getfield mKeepAlive : Z + // 164: ifne -> 171 + // 167: aconst_null + // 168: putstatic com/tt/miniapp/process/AppProcessManager.playingBgAudioProcessName : Ljava/lang/String; + // 171: aload_0 + // 172: getfield mGetProgressTask : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$GetProgressTask; + // 175: invokevirtual stop : ()V + // 178: goto -> 207 + // 181: aload_0 + // 182: iload_1 + // 183: putfield mCurrentPlayAudioId : I + // 186: aload_0 + // 187: aload #4 + // 189: putfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 192: aload #4 + // 194: invokevirtual getMiniAppProcessName : ()Ljava/lang/String; + // 197: putstatic com/tt/miniapp/process/AppProcessManager.playingBgAudioProcessName : Ljava/lang/String; + // 200: aload_0 + // 201: getfield mGetProgressTask : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$GetProgressTask; + // 204: invokevirtual start : ()V + // 207: aload #4 + // 209: aload_2 + // 210: invokevirtual notifyStateChange : (Ljava/lang/String;)V + // 213: aload_0 + // 214: monitorexit + // 215: return + // 216: astore_2 + // 217: aload_0 + // 218: monitorexit + // 219: aload_2 + // 220: athrow + // 221: goto -> 141 + // Exception table: + // from to target type + // 2 39 216 finally + // 41 88 216 finally + // 88 97 216 finally + // 102 111 216 finally + // 116 125 216 finally + // 130 139 216 finally + // 160 171 216 finally + // 171 178 216 finally + // 181 207 216 finally + // 207 213 216 finally + } + + public void onProcessDied(String paramString) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: ldc 'BgAudioManagerServiceNative' + // 4: iconst_2 + // 5: anewarray java/lang/Object + // 8: dup + // 9: iconst_0 + // 10: ldc_w 'onProcessDied processName:' + // 13: aastore + // 14: dup + // 15: iconst_1 + // 16: aload_1 + // 17: aastore + // 18: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 21: aload_0 + // 22: getfield mMiniAppProcessBgAudios : Landroid/util/SparseArray; + // 25: invokevirtual size : ()I + // 28: istore_3 + // 29: iconst_0 + // 30: istore_2 + // 31: iload_2 + // 32: iload_3 + // 33: if_icmpge -> 115 + // 36: aload_0 + // 37: getfield mMiniAppProcessBgAudios : Landroid/util/SparseArray; + // 40: iload_2 + // 41: invokevirtual valueAt : (I)Ljava/lang/Object; + // 44: checkcast com/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell + // 47: astore #4 + // 49: aload #4 + // 51: invokevirtual getMiniAppProcessName : ()Ljava/lang/String; + // 54: aload_1 + // 55: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 58: ifeq -> 108 + // 61: ldc 'BgAudioManagerServiceNative' + // 63: iconst_2 + // 64: anewarray java/lang/Object + // 67: dup + // 68: iconst_0 + // 69: ldc_w 'onBgPlayProcessDied processName:' + // 72: aastore + // 73: dup + // 74: iconst_1 + // 75: aload_1 + // 76: aastore + // 77: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 80: aload_0 + // 81: getfield mTtVideoAudio : Lcom/tt/miniapp/audio/TTVideoAudio; + // 84: aload #4 + // 86: getfield mAudioId : I + // 89: invokevirtual releaseBgAudio : (I)V + // 92: aload #4 + // 94: invokevirtual notifyProgressDied : ()V + // 97: aload_0 + // 98: getfield mMiniAppProcessBgAudios : Landroid/util/SparseArray; + // 101: iload_2 + // 102: invokevirtual removeAt : (I)V + // 105: aload_0 + // 106: monitorexit + // 107: return + // 108: iload_2 + // 109: iconst_1 + // 110: iadd + // 111: istore_2 + // 112: goto -> 31 + // 115: aload_0 + // 116: monitorexit + // 117: return + // 118: astore_1 + // 119: aload_0 + // 120: monitorexit + // 121: goto -> 126 + // 124: aload_1 + // 125: athrow + // 126: goto -> 124 + // Exception table: + // from to target type + // 2 29 118 finally + // 36 105 118 finally + } + + public void openCurrentBgPlayMiniApp(String paramString1, String paramString2, String paramString3) { + // Byte code: + // 0: ldc 'BgAudioManagerServiceNative' + // 2: iconst_1 + // 3: anewarray java/lang/Object + // 6: dup + // 7: iconst_0 + // 8: ldc_w 'openCurrentBgPlayMiniApp' + // 11: aastore + // 12: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 15: aload_0 + // 16: getfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 19: ifnonnull -> 38 + // 22: ldc 'BgAudioManagerServiceNative' + // 24: iconst_1 + // 25: anewarray java/lang/Object + // 28: dup + // 29: iconst_0 + // 30: ldc_w 'mCurrentBgAudioControlCell == null' + // 33: aastore + // 34: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 37: return + // 38: aload_0 + // 39: getfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 42: getfield mBgAudioCallExtra : Lcom/tt/miniapp/audio/background/BgAudioCallExtra; + // 45: astore #5 + // 47: aconst_null + // 48: astore #6 + // 50: aload #5 + // 52: ifnull -> 82 + // 55: aload_0 + // 56: getfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 59: getfield mBgAudioCallExtra : Lcom/tt/miniapp/audio/background/BgAudioCallExtra; + // 62: getfield callAppId : Ljava/lang/String; + // 65: astore #5 + // 67: aload_0 + // 68: getfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 71: getfield mBgAudioCallExtra : Lcom/tt/miniapp/audio/background/BgAudioCallExtra; + // 74: getfield isGame : Z + // 77: istore #4 + // 79: goto -> 88 + // 82: aconst_null + // 83: astore #5 + // 85: iconst_0 + // 86: istore #4 + // 88: aload #5 + // 90: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 93: ifeq -> 119 + // 96: ldc 'BgAudioManagerServiceNative' + // 98: iconst_2 + // 99: anewarray java/lang/Object + // 102: dup + // 103: iconst_0 + // 104: ldc_w 'TextUtils.isEmpty(appId) mCurrentBgAudioControlCell:' + // 107: aastore + // 108: dup + // 109: iconst_1 + // 110: aload_0 + // 111: getfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 114: aastore + // 115: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 118: return + // 119: aload_0 + // 120: getfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 123: getfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 126: ifnull -> 201 + // 129: aload_0 + // 130: getfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 133: getfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 136: getfield mAudioPage : Lorg/json/JSONObject; + // 139: astore #8 + // 141: aload #8 + // 143: ifnull -> 201 + // 146: aload #8 + // 148: ldc_w 'path' + // 151: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 154: astore #7 + // 156: aload #8 + // 158: ldc_w 'query' + // 161: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 164: invokestatic getMapFromJson : (Ljava/lang/String;)Ljava/util/Map; + // 167: astore #8 + // 169: aload #8 + // 171: astore #6 + // 173: goto -> 204 + // 176: astore #8 + // 178: ldc 'BgAudioManagerServiceNative' + // 180: iconst_2 + // 181: anewarray java/lang/Object + // 184: dup + // 185: iconst_0 + // 186: ldc_w 'openCurrentBgPlayMiniApp' + // 189: aastore + // 190: dup + // 191: iconst_1 + // 192: aload #8 + // 194: aastore + // 195: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 198: goto -> 204 + // 201: aconst_null + // 202: astore #7 + // 204: new com/tt/miniapphost/entity/MicroSchemaEntity$Builder + // 207: dup + // 208: invokespecial : ()V + // 211: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 214: invokevirtual getInitParams : ()Lcom/tt/miniapphost/entity/InitParamsEntity; + // 217: sipush #1008 + // 220: ldc_w 'sslocal' + // 223: invokevirtual getHostStr : (ILjava/lang/String;)Ljava/lang/String; + // 226: invokevirtual protocol : (Ljava/lang/String;)Lcom/tt/miniapphost/entity/MicroSchemaEntity$Builder; + // 229: astore #9 + // 231: iload #4 + // 233: ifeq -> 244 + // 236: getstatic com/tt/miniapphost/entity/MicroSchemaEntity$Host.MICROGAME : Lcom/tt/miniapphost/entity/MicroSchemaEntity$Host; + // 239: astore #8 + // 241: goto -> 249 + // 244: getstatic com/tt/miniapphost/entity/MicroSchemaEntity$Host.MICROAPP : Lcom/tt/miniapphost/entity/MicroSchemaEntity$Host; + // 247: astore #8 + // 249: aload #9 + // 251: aload #8 + // 253: invokevirtual host : (Lcom/tt/miniapphost/entity/MicroSchemaEntity$Host;)Lcom/tt/miniapphost/entity/MicroSchemaEntity$Builder; + // 256: aload #5 + // 258: invokevirtual appId : (Ljava/lang/String;)Lcom/tt/miniapphost/entity/MicroSchemaEntity$Builder; + // 261: aload #7 + // 263: invokevirtual path : (Ljava/lang/String;)Lcom/tt/miniapphost/entity/MicroSchemaEntity$Builder; + // 266: aload #6 + // 268: invokevirtual query : (Ljava/util/Map;)Lcom/tt/miniapphost/entity/MicroSchemaEntity$Builder; + // 271: aload_1 + // 272: invokevirtual scene : (Ljava/lang/String;)Lcom/tt/miniapphost/entity/MicroSchemaEntity$Builder; + // 275: new com/tt/miniapp/audio/background/BgAudioManagerServiceNative$4 + // 278: dup + // 279: aload_0 + // 280: aload_2 + // 281: aload_3 + // 282: invokespecial : (Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative;Ljava/lang/String;Ljava/lang/String;)V + // 285: invokevirtual bdpLog : (Ljava/util/Map;)Lcom/tt/miniapphost/entity/MicroSchemaEntity$Builder; + // 288: invokevirtual build : ()Lcom/tt/miniapphost/entity/MicroSchemaEntity; + // 291: invokevirtual toSchema : ()Ljava/lang/String; + // 294: astore_1 + // 295: invokestatic inst : ()Lcom/tt/miniapphost/AppbrandSupport; + // 298: aload_1 + // 299: invokevirtual openAppbrand : (Ljava/lang/String;)Z + // 302: pop + // 303: ldc 'BgAudioManagerServiceNative' + // 305: iconst_2 + // 306: anewarray java/lang/Object + // 309: dup + // 310: iconst_0 + // 311: ldc_w 'openCurrentBgPlayMiniApp schema:' + // 314: aastore + // 315: dup + // 316: iconst_1 + // 317: aload_1 + // 318: aastore + // 319: invokestatic i : (Ljava/lang/String;[Ljava/lang/Object;)V + // 322: return + // Exception table: + // from to target type + // 156 169 176 java/lang/Exception + } + + public void pause(int paramInt) { + this.mCurrentPlayAudioId = -1; + this.mTtVideoAudio.pause(paramInt, null); + } + + public void play(int paramInt) { + this.mTtVideoAudio.play(paramInt, null); + } + + public boolean playNext() { + if (this.mCurrentBgAudioControlCell == null) { + AppBrandLogger.e("BgAudioManagerServiceNative", new Object[] { "playPrevious mCurrentBgAudioControlCell == null" }); + return false; + } + BgAudioPlayStateListener bgAudioPlayStateListener = this.mCurrentBgAudioControlCell.mBgAudioPlayStateListener; + if (bgAudioPlayStateListener != null) { + bgAudioPlayStateListener.onPlayStateChange("next", null, true); + return true; + } + return false; + } + + public boolean playPrevious() { + if (this.mCurrentBgAudioControlCell == null) { + AppBrandLogger.e("BgAudioManagerServiceNative", new Object[] { "playPrevious mCurrentBgAudioControlCell == null" }); + return false; + } + BgAudioPlayStateListener bgAudioPlayStateListener = this.mCurrentBgAudioControlCell.mBgAudioPlayStateListener; + if (bgAudioPlayStateListener != null) { + bgAudioPlayStateListener.onPlayStateChange("prev", null, true); + return true; + } + return false; + } + + public void register(int paramInt, BgAudioPlayStateListener paramBgAudioPlayStateListener) { + AppBrandLogger.d("BgAudioManagerServiceNative", new Object[] { "register id:", Integer.valueOf(paramInt), "listener:", paramBgAudioPlayStateListener }); + (getMiniAppProcessBgAudioModel(paramInt)).mBgAudioPlayStateListener = paramBgAudioPlayStateListener; + } + + public void registerHostPlayStateListener(BgAudioPlayStateListener paramBgAudioPlayStateListener) { + // Byte code: + // 0: aload_1 + // 1: ifnonnull -> 5 + // 4: return + // 5: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 7: monitorenter + // 8: aload_0 + // 9: getfield mHostPlayStateListeners : Ljava/util/List; + // 12: aload_1 + // 13: invokeinterface add : (Ljava/lang/Object;)Z + // 18: pop + // 19: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 21: monitorexit + // 22: return + // 23: astore_1 + // 24: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 26: monitorexit + // 27: aload_1 + // 28: athrow + // Exception table: + // from to target type + // 8 22 23 finally + // 24 27 23 finally + } + + public void seek(int paramInt1, int paramInt2) { + this.mTtVideoAudio.seek(paramInt1, paramInt2, null); + } + + public void setAudioModel(int paramInt, BgAudioModel paramBgAudioModel) { + AppBrandLogger.d("BgAudioManagerServiceNative", new Object[] { "setAudioModel model:", paramBgAudioModel }); + if (paramBgAudioModel == null) + return; + getMiniAppProcessBgAudioModel(paramInt).updateBgAudioModel(paramBgAudioModel); + AudioStateModule audioStateModule = new AudioStateModule(); + audioStateModule.audioId = paramInt; + audioStateModule.src = paramBgAudioModel.src; + this.mTtVideoAudio.stop(paramInt, null, true); + this.mTtVideoAudio.releaseAudio(paramInt, null, true); + audioStateModule.startTime = paramBgAudioModel.startTime; + audioStateModule.autoplay = true; + audioStateModule.loop = paramBgAudioModel.loop; + audioStateModule.obeyMuteSwitch = paramBgAudioModel.obeyMuteSwitch; + audioStateModule.volume = paramBgAudioModel.volume; + audioStateModule.isBgAudio = true; + audioStateModule.miniAppId = paramBgAudioModel.miniAppId; + try { + this.mTtVideoAudio.setAudioState(audioStateModule, null); + return; + } catch (Exception exception) { + AppBrandLogger.e("BgAudioManagerServiceNative", new Object[] { "", exception }); + return; + } + } + + public void setKeepAlive(boolean paramBoolean) { + this.mKeepAlive = paramBoolean; + if (!this.mKeepAlive && !this.mTtVideoAudio.isPlaying(this.mCurrentPlayAudioId)) + AppProcessManager.playingBgAudioProcessName = null; + } + + public void stop(int paramInt) { + this.mCurrentPlayAudioId = -1; + this.mTtVideoAudio.stop(paramInt, null); + } + + public boolean stopCurrentBg() { + if (this.mCurrentBgAudioControlCell == null) + return false; + stop(this.mCurrentBgAudioControlCell.mAudioId); + return true; + } + + public boolean switchCurrentBgPlayState() { + if (this.mCurrentBgAudioControlCell == null) + return false; + int i = this.mCurrentBgAudioControlCell.mAudioId; + if (this.mTtVideoAudio.isPlaying(i)) { + pause(i); + } else { + play(i); + } + return true; + } + + public void unregisterHostPlayStateListener(BgAudioPlayStateListener paramBgAudioPlayStateListener) { + // Byte code: + // 0: aload_1 + // 1: ifnonnull -> 5 + // 4: return + // 5: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 7: monitorenter + // 8: aload_0 + // 9: getfield mHostPlayStateListeners : Ljava/util/List; + // 12: aload_1 + // 13: invokeinterface remove : (Ljava/lang/Object;)Z + // 18: pop + // 19: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 21: monitorexit + // 22: return + // 23: astore_1 + // 24: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 26: monitorexit + // 27: aload_1 + // 28: athrow + // Exception table: + // from to target type + // 8 22 23 finally + // 24 27 23 finally + } + + class BgAudioControlCell { + public final int mAudioId; + + public BgAudioCallExtra mBgAudioCallExtra; + + public BgAudioModel mBgAudioModel; + + public BgAudioPlayStateListener mBgAudioPlayStateListener; + + private BgAudioControlCell(int param1Int) { + this.mAudioId = param1Int; + } + + public String getMiniAppProcessName() { + BgAudioCallExtra bgAudioCallExtra = this.mBgAudioCallExtra; + return (bgAudioCallExtra != null) ? bgAudioCallExtra.callProcessName : null; + } + + public void notifyProgressChange(int param1Int) { + // Byte code: + // 0: aload_0 + // 1: getfield mBgAudioPlayStateListener : Lcom/tt/miniapp/audio/background/BgAudioPlayStateListener; + // 4: astore #4 + // 6: aload #4 + // 8: ifnull -> 23 + // 11: aload #4 + // 13: iload_1 + // 14: aload_0 + // 15: getfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 18: invokeinterface onProgressChange : (ILcom/tt/miniapp/audio/background/BgAudioModel;)V + // 23: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 25: monitorenter + // 26: aload_0 + // 27: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 30: getfield mHostPlayStateListeners : Ljava/util/List; + // 33: invokeinterface size : ()I + // 38: istore_3 + // 39: iconst_0 + // 40: istore_2 + // 41: iload_2 + // 42: iload_3 + // 43: if_icmpge -> 79 + // 46: aload_0 + // 47: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 50: getfield mHostPlayStateListeners : Ljava/util/List; + // 53: iload_2 + // 54: invokeinterface get : (I)Ljava/lang/Object; + // 59: checkcast com/tt/miniapp/audio/background/BgAudioPlayStateListener + // 62: iload_1 + // 63: aload_0 + // 64: getfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 67: invokeinterface onProgressChange : (ILcom/tt/miniapp/audio/background/BgAudioModel;)V + // 72: iload_2 + // 73: iconst_1 + // 74: iadd + // 75: istore_2 + // 76: goto -> 41 + // 79: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 81: monitorexit + // 82: return + // 83: astore #4 + // 85: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 87: monitorexit + // 88: goto -> 94 + // 91: aload #4 + // 93: athrow + // 94: goto -> 91 + // Exception table: + // from to target type + // 26 39 83 finally + // 46 72 83 finally + // 79 82 83 finally + // 85 88 83 finally + } + + public void notifyProgressDied() { + // Byte code: + // 0: aload_0 + // 1: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 4: getfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 7: astore #4 + // 9: iconst_0 + // 10: istore_1 + // 11: aload #4 + // 13: aload_0 + // 14: if_acmpne -> 30 + // 17: aload_0 + // 18: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 21: aconst_null + // 22: putfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 25: iconst_1 + // 26: istore_3 + // 27: goto -> 32 + // 30: iconst_0 + // 31: istore_3 + // 32: aload_0 + // 33: getfield mBgAudioPlayStateListener : Lcom/tt/miniapp/audio/background/BgAudioPlayStateListener; + // 36: astore #4 + // 38: aload #4 + // 40: ifnull -> 55 + // 43: aload #4 + // 45: aload_0 + // 46: getfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 49: iload_3 + // 50: invokeinterface onBgPlayProcessDied : (Lcom/tt/miniapp/audio/background/BgAudioModel;Z)V + // 55: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 57: monitorenter + // 58: aload_0 + // 59: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 62: getfield mHostPlayStateListeners : Ljava/util/List; + // 65: invokeinterface size : ()I + // 70: istore_2 + // 71: iload_1 + // 72: iload_2 + // 73: if_icmpge -> 109 + // 76: aload_0 + // 77: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 80: getfield mHostPlayStateListeners : Ljava/util/List; + // 83: iload_1 + // 84: invokeinterface get : (I)Ljava/lang/Object; + // 89: checkcast com/tt/miniapp/audio/background/BgAudioPlayStateListener + // 92: aload_0 + // 93: getfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 96: iload_3 + // 97: invokeinterface onBgPlayProcessDied : (Lcom/tt/miniapp/audio/background/BgAudioModel;Z)V + // 102: iload_1 + // 103: iconst_1 + // 104: iadd + // 105: istore_1 + // 106: goto -> 71 + // 109: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 111: monitorexit + // 112: return + // 113: astore #4 + // 115: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 117: monitorexit + // 118: goto -> 124 + // 121: aload #4 + // 123: athrow + // 124: goto -> 121 + // Exception table: + // from to target type + // 58 71 113 finally + // 76 102 113 finally + // 109 112 113 finally + // 115 118 113 finally + } + + public void notifyStateChange(String param1String) { + // Byte code: + // 0: aload_0 + // 1: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 4: getfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 7: astore #5 + // 9: iconst_0 + // 10: istore_2 + // 11: aload #5 + // 13: aload_0 + // 14: if_acmpne -> 23 + // 17: iconst_1 + // 18: istore #4 + // 20: goto -> 26 + // 23: iconst_0 + // 24: istore #4 + // 26: aload_0 + // 27: getfield mBgAudioPlayStateListener : Lcom/tt/miniapp/audio/background/BgAudioPlayStateListener; + // 30: astore #5 + // 32: aload #5 + // 34: ifnull -> 51 + // 37: aload #5 + // 39: aload_1 + // 40: aload_0 + // 41: getfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 44: iload #4 + // 46: invokeinterface onPlayStateChange : (Ljava/lang/String;Lcom/tt/miniapp/audio/background/BgAudioModel;Z)V + // 51: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 53: monitorenter + // 54: aload_0 + // 55: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 58: getfield mHostPlayStateListeners : Ljava/util/List; + // 61: invokeinterface size : ()I + // 66: istore_3 + // 67: iload_2 + // 68: iload_3 + // 69: if_icmpge -> 107 + // 72: aload_0 + // 73: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 76: getfield mHostPlayStateListeners : Ljava/util/List; + // 79: iload_2 + // 80: invokeinterface get : (I)Ljava/lang/Object; + // 85: checkcast com/tt/miniapp/audio/background/BgAudioPlayStateListener + // 88: aload_1 + // 89: aload_0 + // 90: getfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 93: iload #4 + // 95: invokeinterface onPlayStateChange : (Ljava/lang/String;Lcom/tt/miniapp/audio/background/BgAudioModel;Z)V + // 100: iload_2 + // 101: iconst_1 + // 102: iadd + // 103: istore_2 + // 104: goto -> 67 + // 107: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 109: monitorexit + // 110: return + // 111: astore_1 + // 112: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 114: monitorexit + // 115: goto -> 120 + // 118: aload_1 + // 119: athrow + // 120: goto -> 118 + // Exception table: + // from to target type + // 54 67 111 finally + // 72 100 111 finally + // 107 110 111 finally + // 112 115 111 finally + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("{mAudioId: "); + stringBuilder.append(this.mAudioId); + stringBuilder.append(", mBgAudioCallExtra: "); + stringBuilder.append(this.mBgAudioCallExtra); + stringBuilder.append(", mBgAudioModel: "); + stringBuilder.append(this.mBgAudioModel); + stringBuilder.append(", mBgAudioPlayStateListener:"); + stringBuilder.append(this.mBgAudioPlayStateListener); + stringBuilder.append("}"); + return stringBuilder.toString(); + } + + public void updateBgAudioModel(BgAudioModel param1BgAudioModel) { + // Byte code: + // 0: aload_0 + // 1: aload_1 + // 2: putfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 5: aload_0 + // 6: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 9: aload_0 + // 10: putfield mCurrentBgAudioControlCell : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative$BgAudioControlCell; + // 13: aload_0 + // 14: getfield mBgAudioPlayStateListener : Lcom/tt/miniapp/audio/background/BgAudioPlayStateListener; + // 17: astore_1 + // 18: aload_1 + // 19: ifnull -> 32 + // 22: aload_1 + // 23: aload_0 + // 24: getfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 27: invokeinterface onTriggerPlay : (Lcom/tt/miniapp/audio/background/BgAudioModel;)V + // 32: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 34: monitorenter + // 35: aload_0 + // 36: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 39: getfield mHostPlayStateListeners : Ljava/util/List; + // 42: invokeinterface size : ()I + // 47: istore_3 + // 48: iconst_0 + // 49: istore_2 + // 50: iload_2 + // 51: iload_3 + // 52: if_icmpge -> 87 + // 55: aload_0 + // 56: getfield this$0 : Lcom/tt/miniapp/audio/background/BgAudioManagerServiceNative; + // 59: getfield mHostPlayStateListeners : Ljava/util/List; + // 62: iload_2 + // 63: invokeinterface get : (I)Ljava/lang/Object; + // 68: checkcast com/tt/miniapp/audio/background/BgAudioPlayStateListener + // 71: aload_0 + // 72: getfield mBgAudioModel : Lcom/tt/miniapp/audio/background/BgAudioModel; + // 75: invokeinterface onTriggerPlay : (Lcom/tt/miniapp/audio/background/BgAudioModel;)V + // 80: iload_2 + // 81: iconst_1 + // 82: iadd + // 83: istore_2 + // 84: goto -> 50 + // 87: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 89: monitorexit + // 90: return + // 91: astore_1 + // 92: ldc com/tt/miniapp/audio/background/BgAudioManagerServiceNative + // 94: monitorexit + // 95: goto -> 100 + // 98: aload_1 + // 99: athrow + // 100: goto -> 98 + // Exception table: + // from to target type + // 35 48 91 finally + // 55 80 91 finally + // 87 90 91 finally + // 92 95 91 finally + } + } + + class GetProgressTask implements Runnable { + private GetProgressTask() {} + + public void run() { + if (BgAudioManagerServiceNative.this.mCurrentBgAudioControlCell == null) { + ThreadUtil.runOnUIThread(this, 1000L); + return; + } + AudioManager.AudioState audioState = BgAudioManagerServiceNative.this.mTtVideoAudio.getAudioState(BgAudioManagerServiceNative.this.mCurrentBgAudioControlCell.mAudioId, null); + if (audioState == null || audioState.duration == 0L) { + ThreadUtil.runOnUIThread(this, 1000L); + return; + } + int j = (int)(audioState.currentTime * 100L / audioState.duration); + int i = j; + if (j > 100) + i = 100; + BgAudioManagerServiceNative.this.mCurrentBgAudioControlCell.notifyProgressChange(i); + ThreadUtil.runOnUIThread(this, 1000L); + } + + public void start() { + ThreadUtil.cancelUIRunnable(this); + ThreadUtil.runOnUIThread(this); + } + + public void stop() { + ThreadUtil.cancelUIRunnable(this); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\background\BgAudioManagerServiceNative.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioModel.java b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioModel.java new file mode 100644 index 0000000..ce70840 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioModel.java @@ -0,0 +1,189 @@ +package com.tt.miniapp.audio.background; + +import android.os.Parcel; +import android.os.Parcelable; +import android.text.TextUtils; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.entity.ApiErrorInfoEntity; +import com.tt.miniapphost.entity.AppInfoEntity; +import org.json.JSONException; +import org.json.JSONObject; + +public class BgAudioModel implements Parcelable { + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + public final BgAudioModel createFromParcel(Parcel param1Parcel) { + return new BgAudioModel(param1Parcel); + } + + public final BgAudioModel[] newArray(int param1Int) { + return new BgAudioModel[param1Int]; + } + }; + + public boolean autoPlay; + + public boolean loop; + + public JSONObject mAudioPage; + + public String mCoverImgUrl; + + public String mSinger; + + public String mTitle; + + public String miniAppId; + + public boolean obeyMuteSwitch; + + public String src; + + public int startTime; + + public float volume; + + public BgAudioModel() {} + + protected BgAudioModel(Parcel paramParcel) { + boolean bool1; + this.src = paramParcel.readString(); + this.startTime = paramParcel.readInt(); + byte b = paramParcel.readByte(); + boolean bool2 = true; + if (b != 0) { + bool1 = true; + } else { + bool1 = false; + } + this.autoPlay = bool1; + if (paramParcel.readByte() != 0) { + bool1 = true; + } else { + bool1 = false; + } + this.loop = bool1; + if (paramParcel.readByte() != 0) { + bool1 = bool2; + } else { + bool1 = false; + } + this.obeyMuteSwitch = bool1; + this.volume = paramParcel.readFloat(); + this.mCoverImgUrl = paramParcel.readString(); + this.mTitle = paramParcel.readString(); + this.mSinger = paramParcel.readString(); + this.miniAppId = paramParcel.readString(); + } + + public static BgAudioModel parse(String paramString, ApiErrorInfoEntity paramApiErrorInfoEntity) { + if (TextUtils.isEmpty(paramString)) { + paramApiErrorInfoEntity.append("args is null"); + return null; + } + try { + boolean bool; + JSONObject jSONObject = new JSONObject(paramString); + BgAudioModel bgAudioModel = new BgAudioModel(); + bgAudioModel.src = jSONObject.optString("src"); + bgAudioModel.startTime = jSONObject.optInt("startTime"); + if (jSONObject.optInt("autoplay") == 1) { + bool = true; + } else { + bool = false; + } + bgAudioModel.autoPlay = bool; + bgAudioModel.loop = jSONObject.optBoolean("loop"); + bgAudioModel.mCoverImgUrl = jSONObject.optString("coverImgUrl"); + bgAudioModel.mTitle = jSONObject.optString("title"); + bgAudioModel.mSinger = jSONObject.optString("singer"); + bgAudioModel.mAudioPage = jSONObject.optJSONObject("audioPage"); + AppInfoEntity appInfoEntity = AppbrandApplicationImpl.getInst().getAppInfo(); + if (appInfoEntity != null) { + if (TextUtils.isEmpty(bgAudioModel.mCoverImgUrl)) + bgAudioModel.mCoverImgUrl = appInfoEntity.icon; + if (TextUtils.isEmpty(bgAudioModel.mTitle)) + bgAudioModel.mTitle = appInfoEntity.appName; + bgAudioModel.miniAppId = appInfoEntity.appId; + } + return bgAudioModel; + } catch (Exception exception) { + paramApiErrorInfoEntity.append("parse BgAudioModel exception"); + paramApiErrorInfoEntity.setThrowable(exception); + AppBrandLogger.e("tma_BgAudioModel", new Object[] { "parse", exception }); + return null; + } + } + + public static BgAudioModel parseFromJSONStr(String paramString) { + if (TextUtils.isEmpty(paramString)) + return null; + try { + JSONObject jSONObject = new JSONObject(paramString); + BgAudioModel bgAudioModel = new BgAudioModel(); + bgAudioModel.src = jSONObject.optString("src"); + bgAudioModel.startTime = jSONObject.optInt("startTime"); + bgAudioModel.obeyMuteSwitch = jSONObject.optBoolean("obeyMuteSwitch"); + bgAudioModel.autoPlay = jSONObject.optBoolean("autoPlay"); + bgAudioModel.loop = jSONObject.optBoolean("loop"); + bgAudioModel.volume = (float)jSONObject.optDouble("volume"); + bgAudioModel.mCoverImgUrl = jSONObject.optString("coverImgUrl"); + bgAudioModel.mTitle = jSONObject.optString("title"); + bgAudioModel.mSinger = jSONObject.optString("singer"); + bgAudioModel.mAudioPage = jSONObject.optJSONObject("audioPage"); + bgAudioModel.miniAppId = jSONObject.optString("miniAppId"); + return bgAudioModel; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "tma_BgAudioModel", exception.getStackTrace()); + return null; + } + } + + public int describeContents() { + return 0; + } + + public String toJSONStr() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("src", this.src); + jSONObject.put("startTime", this.startTime); + jSONObject.put("autoPlay", this.autoPlay); + jSONObject.put("obeyMuteSwitch", this.obeyMuteSwitch); + jSONObject.put("loop", this.loop); + jSONObject.put("volume", this.volume); + jSONObject.put("coverImgUrl", this.mCoverImgUrl); + jSONObject.put("title", this.mTitle); + jSONObject.put("singer", this.mSinger); + jSONObject.put("audioPage", this.mAudioPage); + jSONObject.put("miniAppId", this.miniAppId); + return jSONObject.toString(); + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(6, "tma_BgAudioModel", jSONException.getStackTrace()); + return null; + } + } + + public String toString() { + return toJSONStr(); + } + + public void writeToParcel(Parcel paramParcel, int paramInt) { + paramParcel.writeString(this.src); + paramParcel.writeInt(this.startTime); + paramParcel.writeByte((byte)this.autoPlay); + paramParcel.writeByte((byte)this.loop); + paramParcel.writeByte((byte)this.obeyMuteSwitch); + paramParcel.writeFloat(this.volume); + paramParcel.writeString(this.mCoverImgUrl); + paramParcel.writeString(this.mTitle); + paramParcel.writeString(this.mSinger); + paramParcel.writeString(this.miniAppId); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\background\BgAudioModel.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioPlayStateListener.java b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioPlayStateListener.java new file mode 100644 index 0000000..2c990f9 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioPlayStateListener.java @@ -0,0 +1,17 @@ +package com.tt.miniapp.audio.background; + +public interface BgAudioPlayStateListener { + void onBgPlayProcessDied(BgAudioModel paramBgAudioModel, boolean paramBoolean); + + void onPlayStateChange(String paramString, BgAudioModel paramBgAudioModel, boolean paramBoolean); + + void onProgressChange(int paramInt, BgAudioModel paramBgAudioModel); + + void onTriggerPlay(BgAudioModel paramBgAudioModel); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\background\BgAudioPlayStateListener.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioState.java b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioState.java new file mode 100644 index 0000000..43fba0d --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/background/BgAudioState.java @@ -0,0 +1,92 @@ +package com.tt.miniapp.audio.background; + +import android.os.Parcel; +import android.os.Parcelable; +import android.text.TextUtils; +import com.tt.miniapphost.AppBrandLogger; +import org.json.JSONException; +import org.json.JSONObject; + +public class BgAudioState implements Parcelable { + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { + public final BgAudioState createFromParcel(Parcel param1Parcel) { + return new BgAudioState(param1Parcel); + } + + public final BgAudioState[] newArray(int param1Int) { + return new BgAudioState[param1Int]; + } + }; + + public int bufferd; + + public int currentTime; + + public int duration; + + public boolean paused; + + public int volume; + + public BgAudioState() {} + + protected BgAudioState(Parcel paramParcel) { + boolean bool; + this.duration = paramParcel.readInt(); + this.currentTime = paramParcel.readInt(); + if (paramParcel.readByte() != 0) { + bool = true; + } else { + bool = false; + } + this.paused = bool; + this.bufferd = paramParcel.readInt(); + this.volume = paramParcel.readInt(); + } + + public static BgAudioState parseFromJSONStr(String paramString) { + if (TextUtils.isEmpty(paramString)) + return null; + try { + JSONObject jSONObject = new JSONObject(paramString); + BgAudioState bgAudioState = new BgAudioState(); + bgAudioState.duration = jSONObject.optInt("duration"); + bgAudioState.currentTime = jSONObject.optInt("currentTime"); + bgAudioState.paused = jSONObject.optBoolean("paused"); + bgAudioState.bufferd = jSONObject.optInt("bufferd"); + bgAudioState.volume = jSONObject.optInt("volume"); + return bgAudioState; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "tma_BgAudioState", exception.getStackTrace()); + return null; + } + } + + public int describeContents() { + return 0; + } + + public String toJSONStr() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("duration", this.duration); + jSONObject.put("currentTime", this.currentTime); + jSONObject.put("paused", this.paused); + jSONObject.put("bufferd", this.bufferd); + jSONObject.put("volume", this.volume); + } catch (JSONException jSONException) { + AppBrandLogger.e("tma_BgAudioState", new Object[] { "", jSONException }); + } + return jSONObject.toString(); + } + + public void writeToParcel(Parcel paramParcel, int paramInt) { + throw new RuntimeException("d2j fail translate: java.lang.RuntimeException: can not merge I and Z\r\n\tat com.googlecode.dex2jar.ir.TypeClass.merge(TypeClass.java:100)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeRef.updateTypeClass(TypeTransformer.java:174)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.provideAs(TypeTransformer.java:780)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.e1expr(TypeTransformer.java:496)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:713)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.enexpr(TypeTransformer.java:698)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:719)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.exExpr(TypeTransformer.java:703)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.s1stmt(TypeTransformer.java:810)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.sxStmt(TypeTransformer.java:840)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.analyze(TypeTransformer.java:206)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer.transform(TypeTransformer.java:44)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:162)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:414)\r\n\tat com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:42)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:128)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:509)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:406)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:422)\r\n\tat com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:172)\r\n\tat com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:272)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:108)\r\n\tat com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)\r\n"); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\background\BgAudioState.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/encoder/PcmToWav.java b/df_miniapp/classes/com/tt/miniapp/audio/encoder/PcmToWav.java new file mode 100644 index 0000000..3e8db85 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/encoder/PcmToWav.java @@ -0,0 +1,132 @@ +package com.tt.miniapp.audio.encoder; + +import com.tt.miniapp.audio.AudioRecorderManager; +import com.tt.miniapphost.AppBrandLogger; +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +public class PcmToWav { + private static void clearFiles(List paramList) { + for (int i = 0; i < paramList.size(); i++) { + File file = new File(paramList.get(i)); + if (file.exists()) + file.delete(); + } + } + + public static boolean makePCMFileToWAVFile(String paramString1, String paramString2, boolean paramBoolean, AudioRecorderManager.AudioRecorderConfig paramAudioRecorderConfig) { + File file = new File(paramString1); + if (!file.exists()) + return false; + int i = (int)file.length(); + WavHeader wavHeader = new WavHeader(); + wavHeader.mFileLength = i + 36; + wavHeader.mFmtHdrLeth = 16; + wavHeader.mBitsPerSample = 16; + wavHeader.mChannels = paramAudioRecorderConfig.numberOfChannels; + wavHeader.mFormatTag = 1; + wavHeader.mSamplesPerSec = paramAudioRecorderConfig.sampleRate; + wavHeader.mBlockAlign = (short)(wavHeader.mChannels * wavHeader.mBitsPerSample / 8); + wavHeader.mAvgBytesPerSec = wavHeader.mBlockAlign * wavHeader.mSamplesPerSec; + wavHeader.mDataHdrLeth = i; + try { + byte[] arrayOfByte = wavHeader.getHeaderByteArray(); + if (arrayOfByte.length != 44) + return false; + File file1 = new File(paramString2); + if (file1.exists()) + file1.delete(); + try { + byte[] arrayOfByte1 = new byte[4096]; + BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(paramString2)); + bufferedOutputStream.write(arrayOfByte, 0, arrayOfByte.length); + BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file)); + for (i = bufferedInputStream.read(arrayOfByte1); i != -1; i = bufferedInputStream.read(arrayOfByte1)) + bufferedOutputStream.write(arrayOfByte1); + bufferedInputStream.close(); + bufferedOutputStream.close(); + if (paramBoolean) + file.delete(); + AppBrandLogger.i("tma_PcmToWav", new Object[] { "makePCMFileToWAVFile success!", (new SimpleDateFormat("yyyy-MM-dd hh:mm")).format(new Date()) }); + return true; + } catch (FileNotFoundException fileNotFoundException) { + AppBrandLogger.e("tma_PcmToWav", new Object[] { fileNotFoundException.getMessage() }); + return false; + } catch (IOException iOException) { + AppBrandLogger.e("tma_PcmToWav", new Object[] { iOException.getMessage() }); + return false; + } + } catch (IOException iOException) { + AppBrandLogger.e("tma_PcmToWav", new Object[] { iOException.getMessage() }); + return false; + } + } + + public static boolean mergePCMFilesToWAVFile(List paramList, String paramString, AudioRecorderManager.AudioRecorderConfig paramAudioRecorderConfig) { + File[] arrayOfFile = new File[paramList.size()]; + int k = paramList.size(); + int i = 0; + int j = 0; + while (i < k) { + arrayOfFile[i] = new File(paramList.get(i)); + j = (int)(j + arrayOfFile[i].length()); + i++; + } + WavHeader wavHeader = new WavHeader(); + wavHeader.mFileLength = j + 36; + wavHeader.mFmtHdrLeth = 16; + wavHeader.mBitsPerSample = (short)paramAudioRecorderConfig.encodeBitRate; + wavHeader.mChannels = paramAudioRecorderConfig.numberOfChannels; + wavHeader.mFormatTag = 1; + wavHeader.mSamplesPerSec = paramAudioRecorderConfig.sampleRate; + wavHeader.mBlockAlign = (short)(wavHeader.mChannels * wavHeader.mBitsPerSample / 8); + wavHeader.mAvgBytesPerSec = wavHeader.mBlockAlign * wavHeader.mSamplesPerSec; + wavHeader.mDataHdrLeth = j; + try { + byte[] arrayOfByte = wavHeader.getHeaderByteArray(); + if (arrayOfByte.length != 44) + return false; + File file = new File(paramString); + if (file.exists()) + file.delete(); + try { + byte[] arrayOfByte1 = new byte[4096]; + BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(paramString)); + bufferedOutputStream.write(arrayOfByte, 0, arrayOfByte.length); + for (i = 0; i < k; i++) { + BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(arrayOfFile[i])); + for (j = bufferedInputStream.read(arrayOfByte1); j != -1; j = bufferedInputStream.read(arrayOfByte1)) + bufferedOutputStream.write(arrayOfByte1); + bufferedInputStream.close(); + } + bufferedOutputStream.close(); + clearFiles(paramList); + AppBrandLogger.i("tma_PcmToWav", new Object[] { "mergePCMFilesToWAVFile success!", (new SimpleDateFormat("yyyy-MM-dd hh:mm")).format(new Date()) }); + return true; + } catch (FileNotFoundException fileNotFoundException) { + AppBrandLogger.e("tma_PcmToWav", new Object[] { fileNotFoundException.getMessage() }); + return false; + } catch (IOException iOException) { + AppBrandLogger.e("tma_PcmToWav", new Object[] { iOException.getMessage() }); + return false; + } + } catch (IOException iOException) { + AppBrandLogger.e("tma_PcmToWav", new Object[] { iOException.getMessage() }); + return false; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\encoder\PcmToWav.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/audio/encoder/WavHeader.java b/df_miniapp/classes/com/tt/miniapp/audio/encoder/WavHeader.java new file mode 100644 index 0000000..3b68ebf --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/audio/encoder/WavHeader.java @@ -0,0 +1,78 @@ +package com.tt.miniapp.audio.encoder; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +public class WavHeader { + private static final char[] DATA_HDR_ID; + + private static final char[] FIELD_ID = new char[] { 'R', 'I', 'F', 'F' }; + + private static final char[] FMT_HDR_ID; + + private static final char[] WAVE_TAG = new char[] { 'W', 'A', 'V', 'E' }; + + public int mAvgBytesPerSec; + + public short mBitsPerSample; + + public short mBlockAlign; + + public short mChannels; + + public int mDataHdrLeth; + + public int mFileLength; + + public int mFmtHdrLeth; + + public short mFormatTag; + + public int mSamplesPerSec; + + static { + FMT_HDR_ID = new char[] { 'f', 'm', 't', ' ' }; + DATA_HDR_ID = new char[] { 'd', 'a', 't', 'a' }; + } + + private void WriteCharToByte(ByteArrayOutputStream paramByteArrayOutputStream, char[] paramArrayOfchar) { + for (int i = 0; i < paramArrayOfchar.length; i++) + paramByteArrayOutputStream.write(paramArrayOfchar[i]); + } + + private void WriteIntToByte(ByteArrayOutputStream paramByteArrayOutputStream, int paramInt) throws IOException { + paramByteArrayOutputStream.write(new byte[] { (byte)(paramInt << 24 >> 24), (byte)(paramInt << 16 >> 24), (byte)(paramInt << 8 >> 24), (byte)(paramInt >> 24) }); + } + + private void WriteShortToByte(ByteArrayOutputStream paramByteArrayOutputStream, int paramInt) throws IOException { + byte b = (byte)(paramInt << 16 >> 24); + paramByteArrayOutputStream.write(new byte[] { (byte)(paramInt << 24 >> 24), b }); + } + + public byte[] getHeaderByteArray() throws IOException { + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + WriteCharToByte(byteArrayOutputStream, FIELD_ID); + WriteIntToByte(byteArrayOutputStream, this.mFileLength); + WriteCharToByte(byteArrayOutputStream, WAVE_TAG); + WriteCharToByte(byteArrayOutputStream, FMT_HDR_ID); + WriteIntToByte(byteArrayOutputStream, this.mFmtHdrLeth); + WriteShortToByte(byteArrayOutputStream, this.mFormatTag); + WriteShortToByte(byteArrayOutputStream, this.mChannels); + WriteIntToByte(byteArrayOutputStream, this.mSamplesPerSec); + WriteIntToByte(byteArrayOutputStream, this.mAvgBytesPerSec); + WriteShortToByte(byteArrayOutputStream, this.mBlockAlign); + WriteShortToByte(byteArrayOutputStream, this.mBitsPerSample); + WriteCharToByte(byteArrayOutputStream, DATA_HDR_ID); + WriteIntToByte(byteArrayOutputStream, this.mDataHdrLeth); + byteArrayOutputStream.flush(); + byte[] arrayOfByte = byteArrayOutputStream.toByteArray(); + byteArrayOutputStream.close(); + return arrayOfByte; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\audio\encoder\WavHeader.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestEvent.java b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestEvent.java new file mode 100644 index 0000000..e3c64ff --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestEvent.java @@ -0,0 +1,110 @@ +package com.tt.miniapp.autotest; + +import d.f.b.g; +import d.f.b.l; +import org.json.JSONObject; + +public final class AutoTestEvent { + private final String id; + + private final long timestamp; + + private final Object value; + + public AutoTestEvent(String paramString, long paramLong, Object paramObject) { + this.id = paramString; + this.timestamp = paramLong; + this.value = paramObject; + } + + public final String component1() { + return this.id; + } + + public final long component2() { + return this.timestamp; + } + + public final Object component3() { + return this.value; + } + + public final AutoTestEvent copy(String paramString, long paramLong, Object paramObject) { + l.b(paramString, "id"); + return new AutoTestEvent(paramString, paramLong, paramObject); + } + + public final boolean equals(Object paramObject) { + if (this != paramObject) { + if (paramObject instanceof AutoTestEvent) { + paramObject = paramObject; + if (l.a(this.id, ((AutoTestEvent)paramObject).id)) { + boolean bool; + if (this.timestamp == ((AutoTestEvent)paramObject).timestamp) { + bool = true; + } else { + bool = false; + } + if (bool && l.a(this.value, ((AutoTestEvent)paramObject).value)) + return true; + } + } + return false; + } + return true; + } + + public final String getId() { + return this.id; + } + + public final long getTimestamp() { + return this.timestamp; + } + + public final Object getValue() { + return this.value; + } + + public final int hashCode() { + byte b; + String str = this.id; + int i = 0; + if (str != null) { + b = str.hashCode(); + } else { + b = 0; + } + long l = this.timestamp; + int j = (int)(l ^ l >>> 32L); + Object object = this.value; + if (object != null) + i = object.hashCode(); + return (b * 31 + j) * 31 + i; + } + + public final JSONObject toJson() { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("id", this.id); + jSONObject.put("timestamp", this.timestamp); + jSONObject.put("value", this.value); + return jSONObject; + } + + public final String toString() { + StringBuilder stringBuilder = new StringBuilder("AutoTestEvent(id="); + stringBuilder.append(this.id); + stringBuilder.append(", timestamp="); + stringBuilder.append(this.timestamp); + stringBuilder.append(", value="); + stringBuilder.append(this.value); + stringBuilder.append(")"); + return stringBuilder.toString(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\autotest\AutoTestEvent.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestLoopEvent.java b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestLoopEvent.java new file mode 100644 index 0000000..490c28e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestLoopEvent.java @@ -0,0 +1,135 @@ +package com.tt.miniapp.autotest; + +import d.f.b.l; +import org.json.JSONObject; + +public final class AutoTestLoopEvent { + private final String dispatch; + + private final long endTime; + + private String stackTrace; + + private final long startTime; + + public AutoTestLoopEvent(String paramString1, long paramLong1, long paramLong2, String paramString2) { + this.dispatch = paramString1; + this.startTime = paramLong1; + this.endTime = paramLong2; + this.stackTrace = paramString2; + } + + public final String component1() { + return this.dispatch; + } + + public final long component2() { + return this.startTime; + } + + public final long component3() { + return this.endTime; + } + + public final String component4() { + return this.stackTrace; + } + + public final AutoTestLoopEvent copy(String paramString1, long paramLong1, long paramLong2, String paramString2) { + return new AutoTestLoopEvent(paramString1, paramLong1, paramLong2, paramString2); + } + + public final boolean equals(Object paramObject) { + if (this != paramObject) { + if (paramObject instanceof AutoTestLoopEvent) { + paramObject = paramObject; + if (l.a(this.dispatch, ((AutoTestLoopEvent)paramObject).dispatch)) { + boolean bool; + if (this.startTime == ((AutoTestLoopEvent)paramObject).startTime) { + bool = true; + } else { + bool = false; + } + if (bool) { + if (this.endTime == ((AutoTestLoopEvent)paramObject).endTime) { + bool = true; + } else { + bool = false; + } + if (bool && l.a(this.stackTrace, ((AutoTestLoopEvent)paramObject).stackTrace)) + return true; + } + } + } + return false; + } + return true; + } + + public final String getDispatch() { + return this.dispatch; + } + + public final long getEndTime() { + return this.endTime; + } + + public final String getStackTrace() { + return this.stackTrace; + } + + public final long getStartTime() { + return this.startTime; + } + + public final int hashCode() { + byte b; + String str = this.dispatch; + int i = 0; + if (str != null) { + b = str.hashCode(); + } else { + b = 0; + } + long l = this.startTime; + int j = (int)(l ^ l >>> 32L); + l = this.endTime; + int k = (int)(l ^ l >>> 32L); + str = this.stackTrace; + if (str != null) + i = str.hashCode(); + return ((b * 31 + j) * 31 + k) * 31 + i; + } + + public final void setStackTrace(String paramString) { + this.stackTrace = paramString; + } + + public final JSONObject toJson() { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("dispatch", this.dispatch); + jSONObject.put("startTime", this.startTime); + jSONObject.put("endTime", this.endTime); + jSONObject.put("stackTrace", this.stackTrace); + return jSONObject; + } + + public final String toString() { + StringBuilder stringBuilder = new StringBuilder("AutoTestLoopEvent(dispatch="); + stringBuilder.append(this.dispatch); + stringBuilder.append(", startTime="); + stringBuilder.append(this.startTime); + stringBuilder.append(", endTime="); + stringBuilder.append(this.endTime); + stringBuilder.append(", stackTrace="); + stringBuilder.append(this.stackTrace); + stringBuilder.append(")"); + return stringBuilder.toString(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\autotest\AutoTestLoopEvent.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestLooperMonitor.java b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestLooperMonitor.java new file mode 100644 index 0000000..3f49ef7 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestLooperMonitor.java @@ -0,0 +1,129 @@ +package com.tt.miniapp.autotest; + +import android.os.Handler; +import android.os.HandlerThread; +import android.os.Looper; +import android.os.SystemClock; +import android.util.Printer; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.manager.MainMessageLoggerManager; +import com.tt.miniapp.thread.HandlerThreadUtil; +import com.tt.miniapphost.AppBrandLogger; +import d.a.m; +import d.f.b.g; +import d.f.b.l; +import d.m.p; +import java.util.LinkedList; +import java.util.List; + +public final class AutoTestLooperMonitor implements Printer { + public static final Companion Companion = new Companion(null); + + private String distpachText; + + private final LinkedList mInfoList = new LinkedList(); + + private Handler mIoHandler; + + private final Runnable mLogRunnable = new AutoTestLooperMonitor$mLogRunnable$1(); + + private HandlerThread mLogThread; + + public String stackTraceContent; + + private long startTime; + + private final void endLoopTask() { + long l = SystemClock.elapsedRealtime(); + Handler handler = this.mIoHandler; + if (handler != null) + handler.removeCallbacks(this.mLogRunnable); + this.mInfoList.add(new AutoTestLoopEvent(this.distpachText, this.startTime, l, this.stackTraceContent)); + } + + private final void startLoopTask(String paramString) { + this.startTime = SystemClock.elapsedRealtime(); + this.distpachText = paramString; + this.stackTraceContent = ""; + Handler handler = this.mIoHandler; + if (handler != null) + handler.postDelayed(this.mLogRunnable, 100L); + } + + public final void clear() { + this.mInfoList.clear(); + } + + public final List dump() { + return m.f(this.mInfoList); + } + + public final void println(String paramString) { + if (paramString == null) + return; + if (p.b(paramString, ">>>>> Dispatching", false, 2, null)) { + startLoopTask(paramString); + return; + } + if (p.b(paramString, "<<<<< Finished", false, 2, null)) + endLoopTask(); + } + + public final void start() { + this.mLogThread = HandlerThreadUtil.getNewHandlerThread("AutoTestLooperDetector"); + HandlerThread handlerThread = this.mLogThread; + if (handlerThread != null) + handlerThread.start(); + handlerThread = this.mLogThread; + if (handlerThread != null) { + Looper looper = handlerThread.getLooper(); + } else { + handlerThread = null; + } + this.mIoHandler = new Handler((Looper)handlerThread); + this.mInfoList.clear(); + ((MainMessageLoggerManager)AppbrandApplicationImpl.getInst().getService(MainMessageLoggerManager.class)).register(this); + AppBrandLogger.d("AutoTestLooperDetector", new Object[] { "start" }); + } + + public final void stop() { + if (this.mLogThread != null) { + ((MainMessageLoggerManager)AppbrandApplicationImpl.getInst().getService(MainMessageLoggerManager.class)).unregister(this); + Handler handler = this.mIoHandler; + if (handler != null) + handler.removeCallbacks(this.mLogRunnable); + HandlerThread handlerThread = this.mLogThread; + if (handlerThread != null) + handlerThread.quitSafely(); + this.mLogThread = null; + AppBrandLogger.d("AutoTestLooperDetector", new Object[] { "end" }); + } + } + + public static final class Companion { + private Companion() {} + } + + static final class AutoTestLooperMonitor$mLogRunnable$1 implements Runnable { + public final void run() { + StringBuilder stringBuilder = new StringBuilder(); + Looper looper = Looper.getMainLooper(); + l.a(looper, "Looper.getMainLooper()"); + Thread thread = looper.getThread(); + l.a(thread, "Looper.getMainLooper().thread"); + for (StackTraceElement stackTraceElement : thread.getStackTrace()) { + StringBuilder stringBuilder1 = new StringBuilder(); + stringBuilder1.append(stackTraceElement.toString()); + stringBuilder1.append("\n"); + stringBuilder.append(stringBuilder1.toString()); + } + AutoTestLooperMonitor.this.stackTraceContent = stringBuilder.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\autotest\AutoTestLooperMonitor.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestManager.java b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestManager.java new file mode 100644 index 0000000..5751deb --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestManager.java @@ -0,0 +1,932 @@ +package com.tt.miniapp.autotest; + +import android.os.SystemClock; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.AppbrandServiceManager; +import com.tt.miniapp.LifeCycleManager; +import com.tt.miniapp.LifeCycleManager.LifecycleInterest; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.util.DebugUtil; +import d.a.ac; +import d.a.m; +import d.f.a.b; +import d.f.b.g; +import d.f.b.l; +import d.f.b.m; +import d.m.p; +import d.n; +import d.t; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +public class AutoTestManager extends AppbrandServiceManager.ServiceBase { + public static final Companion Companion = new Companion(null); + + private static final Map>, Object>> DEFAULT_CALCULATORS; + + private static final b>, Object> path2DomReadyCalculator; + + private static final b>, Object> readPageFrameCalculator; + + private static final b>, Object> readPathFrameCalculator; + + private static final b>, Object> realSendPageFrameCalculator = AutoTestManager$Companion$realSendPageFrameCalculator$1.INSTANCE; + + private static final b>, Object> realSendPathFrameCalculator = AutoTestManager$Companion$realSendPathFrameCalculator$1.INSTANCE; + + private boolean isEnableTrace = true; + + private boolean isFinish; + + private final LinkedHashMap>, Object>> mCalculatorList = new LinkedHashMap>, Object>>(DEFAULT_CALCULATORS); + + private final Vector mEventList = new Vector(); + + private final AutoTestLooperMonitor mMainLooperMonitor = new AutoTestLooperMonitor(); + + static { + readPageFrameCalculator = AutoTestManager$Companion$readPageFrameCalculator$1.INSTANCE; + readPathFrameCalculator = AutoTestManager$Companion$readPathFrameCalculator$1.INSTANCE; + path2DomReadyCalculator = AutoTestManager$Companion$path2DomReadyCalculator$1.INSTANCE; + DEFAULT_CALCULATORS = ac.a(new n[] { + t.a("appId", Companion.firstValueCalculator("appId")), t.a("isPkgExist", Companion.firstValueCalculator("isPkgExist")), t.a("isMetaExist", Companion.firstValueCalculator("isMetaExist")), t.a("parseOpenSchema", Companion.intervalCalculator("startActivityTime", "startLaunchTime")), t.a("activityCreateTime", Companion.intervalCalculator("afterOnCreate", "beforeOnCreate")), t.a("requestMeta", Companion.intervalCalculator("stopRequestMeta", "startRequestMeta")), t.a("downloadInstallTime", Companion.intervalCalculator("stopDownloadInstallTime", "startDownloadInstallTime")), t.a("appServiceTime", Companion.intervalCalculator("stopAppService", "startAppService")), t.a("sendAppRoute-appService", Companion.intervalCalculator("sendAppRoute", "stopAppService")), t.a("sendPathFrame-sendPageFrame", Companion.intervalCalculator("sendLoadPathFrame", "sendLoadPageFrame")), + t.a("realSendPageFrame", realSendPageFrameCalculator), t.a("realSendPathFrame", realSendPathFrameCalculator), t.a("beforeOnCreate", Companion.intervalCalculator("beforeOnCreate", "startLaunchTime")), t.a("beforeRequestMeta", Companion.intervalCalculator("startRequestMeta", "startLaunchTime")), t.a("beforeDownload", Companion.intervalCalculator("startDownloadInstallTime", "startLaunchTime")), t.a("beforeAppService", Companion.intervalCalculator("startAppService", "startLaunchTime")), t.a("readPageFrame", readPageFrameCalculator), t.a("readPathFrame", readPathFrameCalculator), t.a("path2DomReady", path2DomReadyCalculator), t.a("beforeAppRoute", Companion.intervalCalculator("sendAppRoute", "startLaunchTime")), + t.a("afterAppRoute", Companion.intervalCalculator("stopLaunchTime", "sendAppRoute")), t.a("firstServiceTime", Companion.firstServiceCalculator()), t.a("publishUseTime", Companion.firstValueCalculator("publishUseTime")), t.a("totalLaunchTime", Companion.intervalCalculator("stopLaunchTime", "startLaunchTime")) }); + } + + public AutoTestManager(AppbrandApplicationImpl paramAppbrandApplicationImpl) { + super(paramAppbrandApplicationImpl); + } + + private final void clear() { + AppBrandLogger.d("AutoTestManager", new Object[] { "clear auto test event" }); + this.mEventList.clear(); + this.mMainLooperMonitor.stop(); + this.mMainLooperMonitor.clear(); + } + + public final void addCalculator(String paramString, b>, ? extends Object> paramb) { + // Byte code: + // 0: aload_1 + // 1: ldc_w 'name' + // 4: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 7: aload_2 + // 8: ldc_w 'calculator' + // 11: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 14: aload_0 + // 15: monitorenter + // 16: aload_0 + // 17: getfield mCalculatorList : Ljava/util/LinkedHashMap; + // 20: checkcast java/util/Map + // 23: aload_1 + // 24: aload_2 + // 25: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 30: pop + // 31: aload_0 + // 32: monitorexit + // 33: return + // 34: astore_1 + // 35: aload_0 + // 36: monitorexit + // 37: aload_1 + // 38: athrow + // Exception table: + // from to target type + // 16 31 34 finally + } + + public final void addEvent(String paramString) { + addEvent$default(this, paramString, 0L, 2, null); + } + + public final void addEvent(String paramString, long paramLong) { + l.b(paramString, "id"); + if (!this.isFinish) { + if (!this.isEnableTrace) + return; + AutoTestEvent autoTestEvent = new AutoTestEvent(paramString, paramLong, null, 4, null); + this.mEventList.add(autoTestEvent); + } + } + + public final void addEventWithValue(String paramString, Object paramObject) { + addEventWithValue$default(this, paramString, paramObject, 0L, 4, null); + } + + public final void addEventWithValue(String paramString, Object paramObject, long paramLong) { + l.b(paramString, "id"); + l.b(paramObject, "value"); + if (!this.isFinish) { + if (!this.isEnableTrace) + return; + AutoTestEvent autoTestEvent = new AutoTestEvent(paramString, paramLong, paramObject); + this.mEventList.add(autoTestEvent); + } + } + + public final void endAutoTest() { + // Byte code: + // 0: aload_0 + // 1: getfield isFinish : Z + // 4: ifne -> 97 + // 7: aload_0 + // 8: getfield isEnableTrace : Z + // 11: ifne -> 15 + // 14: return + // 15: aload_0 + // 16: iconst_1 + // 17: putfield isFinish : Z + // 20: ldc 'AutoTestManager' + // 22: iconst_1 + // 23: anewarray java/lang/Object + // 26: dup + // 27: iconst_0 + // 28: ldc_w 'endAutoTest' + // 31: aastore + // 32: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 35: aload_0 + // 36: getfield mMainLooperMonitor : Lcom/tt/miniapp/autotest/AutoTestLooperMonitor; + // 39: invokevirtual stop : ()V + // 42: aload_0 + // 43: monitorenter + // 44: aload_0 + // 45: getfield mCalculatorList : Ljava/util/LinkedHashMap; + // 48: checkcast java/util/Map + // 51: invokestatic e : (Ljava/util/Map;)Ljava/util/List; + // 54: astore_1 + // 55: aload_0 + // 56: monitorexit + // 57: new com/tt/miniapp/autotest/AutoTestReport + // 60: dup + // 61: aload_0 + // 62: getfield mEventList : Ljava/util/Vector; + // 65: checkcast java/lang/Iterable + // 68: invokestatic f : (Ljava/lang/Iterable;)Ljava/util/List; + // 71: aload_1 + // 72: aload_0 + // 73: getfield mMainLooperMonitor : Lcom/tt/miniapp/autotest/AutoTestLooperMonitor; + // 76: invokevirtual dump : ()Ljava/util/List; + // 79: invokespecial : (Ljava/util/List;Ljava/util/List;Ljava/util/List;)V + // 82: checkcast com/storage/async/Action + // 85: invokestatic backGround : ()Lcom/storage/async/Scheduler; + // 88: invokestatic runOnWorkThread : (Lcom/storage/async/Action;Lcom/storage/async/Scheduler;)V + // 91: return + // 92: astore_1 + // 93: aload_0 + // 94: monitorexit + // 95: aload_1 + // 96: athrow + // 97: return + // Exception table: + // from to target type + // 44 55 92 finally + } + + @LifecycleInterest({LifeCycleManager.LifeCycleEvent.ON_APP_CREATE}) + public final void onAppCreated() { + if (DebugUtil.debug()) + this.mMainLooperMonitor.start(); + } + + @LifecycleInterest({LifeCycleManager.LifeCycleEvent.ON_APP_INFO_INITED}) + public final void onAppInfoInited(LifeCycleManager.LifeCycleEvent paramLifeCycleEvent, AppInfoEntity paramAppInfoEntity) { + boolean bool; + l.b(paramLifeCycleEvent, "event"); + l.b(paramAppInfoEntity, "appInfo"); + if (DebugUtil.debug() && paramAppInfoEntity.isAutoTest) { + bool = true; + } else { + bool = false; + } + this.isEnableTrace = bool; + if (!this.isEnableTrace) + clear(); + } + + public static final class Companion { + private Companion() {} + + public final b>, Object> firstServiceCalculator() { + return AutoTestManager$Companion$firstServiceCalculator$2.INSTANCE; + } + + public final b>, Object> firstValueCalculator(String param1String) { + l.b(param1String, "id"); + return new AutoTestManager$Companion$firstValueCalculator$1(param1String); + } + + public final b>, Object> intervalCalculator(String param1String1, String param1String2) { + return new AutoTestManager$Companion$intervalCalculator$1(param1String1, param1String2); + } + + static final class AutoTestManager$Companion$firstServiceCalculator$1 extends m implements b { + public static final AutoTestManager$Companion$firstServiceCalculator$1 INSTANCE = new AutoTestManager$Companion$firstServiceCalculator$1(); + + AutoTestManager$Companion$firstServiceCalculator$1() { + super(1); + } + + public final boolean invoke(String param2String) { + l.b(param2String, "str"); + return (p.c(param2String, "-service.js", false, 2, null) && (l.a(param2String, "app-service.js") ^ true) != 0); + } + } + + static final class AutoTestManager$Companion$firstServiceCalculator$2 extends m implements b>, Object> { + public static final AutoTestManager$Companion$firstServiceCalculator$2 INSTANCE = new AutoTestManager$Companion$firstServiceCalculator$2(); + + AutoTestManager$Companion$firstServiceCalculator$2() { + super(1); + } + + public final Object invoke(Map> param2Map) { + // Byte code: + // 0: aload_1 + // 1: ldc 'map' + // 3: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 6: aload_1 + // 7: ldc 'loadScriptEnd' + // 9: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 14: checkcast java/util/List + // 17: astore_2 + // 18: aconst_null + // 19: astore #4 + // 21: aconst_null + // 22: astore_3 + // 23: aload_2 + // 24: ifnull -> 92 + // 27: aload_2 + // 28: checkcast java/lang/Iterable + // 31: invokeinterface iterator : ()Ljava/util/Iterator; + // 36: astore #5 + // 38: aload #5 + // 40: invokeinterface hasNext : ()Z + // 45: ifeq -> 82 + // 48: aload #5 + // 50: invokeinterface next : ()Ljava/lang/Object; + // 55: astore_2 + // 56: aload_2 + // 57: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 60: astore #6 + // 62: getstatic com/tt/miniapp/autotest/AutoTestManager$Companion$firstServiceCalculator$1.INSTANCE : Lcom/tt/miniapp/autotest/AutoTestManager$Companion$firstServiceCalculator$1; + // 65: aload #6 + // 67: invokevirtual getValue : ()Ljava/lang/Object; + // 70: invokestatic valueOf : (Ljava/lang/Object;)Ljava/lang/String; + // 73: invokevirtual invoke : (Ljava/lang/String;)Z + // 76: ifeq -> 38 + // 79: goto -> 84 + // 82: aconst_null + // 83: astore_2 + // 84: aload_2 + // 85: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 88: astore_2 + // 89: goto -> 94 + // 92: aconst_null + // 93: astore_2 + // 94: aload_1 + // 95: ldc 'loadScriptBegin' + // 97: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 102: checkcast java/util/List + // 105: astore #5 + // 107: aload #4 + // 109: astore_1 + // 110: aload #5 + // 112: ifnull -> 175 + // 115: aload #5 + // 117: checkcast java/lang/Iterable + // 120: invokeinterface iterator : ()Ljava/util/Iterator; + // 125: astore #4 + // 127: aload_3 + // 128: astore_1 + // 129: aload #4 + // 131: invokeinterface hasNext : ()Z + // 136: ifeq -> 170 + // 139: aload #4 + // 141: invokeinterface next : ()Ljava/lang/Object; + // 146: astore_1 + // 147: aload_1 + // 148: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 151: astore #5 + // 153: getstatic com/tt/miniapp/autotest/AutoTestManager$Companion$firstServiceCalculator$1.INSTANCE : Lcom/tt/miniapp/autotest/AutoTestManager$Companion$firstServiceCalculator$1; + // 156: aload #5 + // 158: invokevirtual getValue : ()Ljava/lang/Object; + // 161: invokestatic valueOf : (Ljava/lang/Object;)Ljava/lang/String; + // 164: invokevirtual invoke : (Ljava/lang/String;)Z + // 167: ifeq -> 127 + // 170: aload_1 + // 171: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 174: astore_1 + // 175: aload_2 + // 176: ifnull -> 196 + // 179: aload_1 + // 180: ifnull -> 196 + // 183: aload_2 + // 184: invokevirtual getTimestamp : ()J + // 187: aload_1 + // 188: invokevirtual getTimestamp : ()J + // 191: lsub + // 192: invokestatic valueOf : (J)Ljava/lang/Long; + // 195: areturn + // 196: iconst_m1 + // 197: invokestatic valueOf : (I)Ljava/lang/Integer; + // 200: areturn + } + } + + static final class AutoTestManager$Companion$firstValueCalculator$1 extends m implements b>, Object> { + AutoTestManager$Companion$firstValueCalculator$1(String param2String) { + super(1); + } + + public final Object invoke(Map> param2Map) { + l.b(param2Map, "map"); + List list = param2Map.get(this.$id); + if (list != null) { + AutoTestEvent autoTestEvent = (AutoTestEvent)m.f(list); + if (autoTestEvent != null) + return autoTestEvent.getValue(); + } + return null; + } + } + + static final class AutoTestManager$Companion$intervalCalculator$1 extends m implements b>, Object> { + AutoTestManager$Companion$intervalCalculator$1(String param2String1, String param2String2) { + super(1); + } + + public final Object invoke(Map> param2Map) { + AutoTestEvent autoTestEvent; + l.b(param2Map, "map"); + List list1 = param2Map.get(this.$id1); + Map map = null; + if (list1 != null) { + AutoTestEvent autoTestEvent1 = (AutoTestEvent)m.f(list1); + } else { + list1 = null; + } + List list2 = param2Map.get(this.$id2); + param2Map = map; + if (list2 != null) + autoTestEvent = (AutoTestEvent)m.f(list2); + return (list1 != null && autoTestEvent != null) ? Long.valueOf(list1.getTimestamp() - autoTestEvent.getTimestamp()) : Integer.valueOf(-1); + } + } + } + + static final class AutoTestManager$Companion$firstServiceCalculator$1 extends m implements b { + public static final AutoTestManager$Companion$firstServiceCalculator$1 INSTANCE = new AutoTestManager$Companion$firstServiceCalculator$1(); + + AutoTestManager$Companion$firstServiceCalculator$1() { + super(1); + } + + public final boolean invoke(String param1String) { + l.b(param1String, "str"); + return (p.c(param1String, "-service.js", false, 2, null) && (l.a(param1String, "app-service.js") ^ true) != 0); + } + } + + static final class AutoTestManager$Companion$firstServiceCalculator$2 extends m implements b>, Object> { + public static final AutoTestManager$Companion$firstServiceCalculator$2 INSTANCE = new AutoTestManager$Companion$firstServiceCalculator$2(); + + AutoTestManager$Companion$firstServiceCalculator$2() { + super(1); + } + + public final Object invoke(Map> param1Map) { + // Byte code: + // 0: aload_1 + // 1: ldc 'map' + // 3: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 6: aload_1 + // 7: ldc 'loadScriptEnd' + // 9: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 14: checkcast java/util/List + // 17: astore_2 + // 18: aconst_null + // 19: astore #4 + // 21: aconst_null + // 22: astore_3 + // 23: aload_2 + // 24: ifnull -> 92 + // 27: aload_2 + // 28: checkcast java/lang/Iterable + // 31: invokeinterface iterator : ()Ljava/util/Iterator; + // 36: astore #5 + // 38: aload #5 + // 40: invokeinterface hasNext : ()Z + // 45: ifeq -> 82 + // 48: aload #5 + // 50: invokeinterface next : ()Ljava/lang/Object; + // 55: astore_2 + // 56: aload_2 + // 57: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 60: astore #6 + // 62: getstatic com/tt/miniapp/autotest/AutoTestManager$Companion$firstServiceCalculator$1.INSTANCE : Lcom/tt/miniapp/autotest/AutoTestManager$Companion$firstServiceCalculator$1; + // 65: aload #6 + // 67: invokevirtual getValue : ()Ljava/lang/Object; + // 70: invokestatic valueOf : (Ljava/lang/Object;)Ljava/lang/String; + // 73: invokevirtual invoke : (Ljava/lang/String;)Z + // 76: ifeq -> 38 + // 79: goto -> 84 + // 82: aconst_null + // 83: astore_2 + // 84: aload_2 + // 85: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 88: astore_2 + // 89: goto -> 94 + // 92: aconst_null + // 93: astore_2 + // 94: aload_1 + // 95: ldc 'loadScriptBegin' + // 97: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 102: checkcast java/util/List + // 105: astore #5 + // 107: aload #4 + // 109: astore_1 + // 110: aload #5 + // 112: ifnull -> 175 + // 115: aload #5 + // 117: checkcast java/lang/Iterable + // 120: invokeinterface iterator : ()Ljava/util/Iterator; + // 125: astore #4 + // 127: aload_3 + // 128: astore_1 + // 129: aload #4 + // 131: invokeinterface hasNext : ()Z + // 136: ifeq -> 170 + // 139: aload #4 + // 141: invokeinterface next : ()Ljava/lang/Object; + // 146: astore_1 + // 147: aload_1 + // 148: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 151: astore #5 + // 153: getstatic com/tt/miniapp/autotest/AutoTestManager$Companion$firstServiceCalculator$1.INSTANCE : Lcom/tt/miniapp/autotest/AutoTestManager$Companion$firstServiceCalculator$1; + // 156: aload #5 + // 158: invokevirtual getValue : ()Ljava/lang/Object; + // 161: invokestatic valueOf : (Ljava/lang/Object;)Ljava/lang/String; + // 164: invokevirtual invoke : (Ljava/lang/String;)Z + // 167: ifeq -> 127 + // 170: aload_1 + // 171: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 174: astore_1 + // 175: aload_2 + // 176: ifnull -> 196 + // 179: aload_1 + // 180: ifnull -> 196 + // 183: aload_2 + // 184: invokevirtual getTimestamp : ()J + // 187: aload_1 + // 188: invokevirtual getTimestamp : ()J + // 191: lsub + // 192: invokestatic valueOf : (J)Ljava/lang/Long; + // 195: areturn + // 196: iconst_m1 + // 197: invokestatic valueOf : (I)Ljava/lang/Integer; + // 200: areturn + } + } + + static final class AutoTestManager$Companion$firstValueCalculator$1 extends m implements b>, Object> { + AutoTestManager$Companion$firstValueCalculator$1(String param1String) { + super(1); + } + + public final Object invoke(Map> param1Map) { + l.b(param1Map, "map"); + List list = param1Map.get(this.$id); + if (list != null) { + AutoTestEvent autoTestEvent = (AutoTestEvent)m.f(list); + if (autoTestEvent != null) + return autoTestEvent.getValue(); + } + return null; + } + } + + static final class AutoTestManager$Companion$intervalCalculator$1 extends m implements b>, Object> { + AutoTestManager$Companion$intervalCalculator$1(String param1String1, String param1String2) { + super(1); + } + + public final Object invoke(Map> param1Map) { + AutoTestEvent autoTestEvent; + l.b(param1Map, "map"); + List list1 = param1Map.get(this.$id1); + Map map = null; + if (list1 != null) { + AutoTestEvent autoTestEvent1 = (AutoTestEvent)m.f(list1); + } else { + list1 = null; + } + List list2 = param1Map.get(this.$id2); + param1Map = map; + if (list2 != null) + autoTestEvent = (AutoTestEvent)m.f(list2); + return (list1 != null && autoTestEvent != null) ? Long.valueOf(list1.getTimestamp() - autoTestEvent.getTimestamp()) : Integer.valueOf(-1); + } + } + + static final class AutoTestManager$Companion$path2DomReadyCalculator$1 extends m implements b>, Object> { + public static final AutoTestManager$Companion$path2DomReadyCalculator$1 INSTANCE = new AutoTestManager$Companion$path2DomReadyCalculator$1(); + + AutoTestManager$Companion$path2DomReadyCalculator$1() { + super(1); + } + + public final Object invoke(Map> param1Map) { + AutoTestEvent autoTestEvent; + l.b(param1Map, "map"); + List list1 = param1Map.get("stopLaunchTime"); + Map map2 = null; + Map map1 = null; + if (list1 != null) { + AutoTestEvent autoTestEvent1 = (AutoTestEvent)m.f(list1); + } else { + list1 = null; + } + List list2 = param1Map.get("stopReadFrame"); + param1Map = map2; + if (list2 != null) { + Iterator>> iterator = list2.iterator(); + while (true) { + param1Map = map1; + if (iterator.hasNext()) { + param1Map = iterator.next(); + if (l.a(((AutoTestEvent)param1Map).getValue(), "__path_frame__0-frame.js")) + break; + continue; + } + break; + } + autoTestEvent = (AutoTestEvent)param1Map; + } + return (list1 != null && autoTestEvent != null) ? Long.valueOf(list1.getTimestamp() - autoTestEvent.getTimestamp()) : Integer.valueOf(-1); + } + } + + static final class AutoTestManager$Companion$readPageFrameCalculator$1 extends m implements b>, Object> { + public static final AutoTestManager$Companion$readPageFrameCalculator$1 INSTANCE = new AutoTestManager$Companion$readPageFrameCalculator$1(); + + AutoTestManager$Companion$readPageFrameCalculator$1() { + super(1); + } + + public final Object invoke(Map> param1Map) { + // Byte code: + // 0: aload_1 + // 1: ldc 'map' + // 3: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 6: aload_1 + // 7: ldc 'stopReadFrame' + // 9: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 14: checkcast java/util/List + // 17: astore_2 + // 18: aconst_null + // 19: astore #4 + // 21: aconst_null + // 22: astore_3 + // 23: aload_2 + // 24: ifnull -> 84 + // 27: aload_2 + // 28: checkcast java/lang/Iterable + // 31: invokeinterface iterator : ()Ljava/util/Iterator; + // 36: astore #5 + // 38: aload #5 + // 40: invokeinterface hasNext : ()Z + // 45: ifeq -> 74 + // 48: aload #5 + // 50: invokeinterface next : ()Ljava/lang/Object; + // 55: astore_2 + // 56: aload_2 + // 57: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 60: invokevirtual getValue : ()Ljava/lang/Object; + // 63: ldc 'page-frame.js' + // 65: invokestatic a : (Ljava/lang/Object;Ljava/lang/Object;)Z + // 68: ifeq -> 38 + // 71: goto -> 76 + // 74: aconst_null + // 75: astore_2 + // 76: aload_2 + // 77: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 80: astore_2 + // 81: goto -> 86 + // 84: aconst_null + // 85: astore_2 + // 86: aload_1 + // 87: ldc 'startReadFrame' + // 89: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 94: checkcast java/util/List + // 97: astore #5 + // 99: aload #4 + // 101: astore_1 + // 102: aload #5 + // 104: ifnull -> 159 + // 107: aload #5 + // 109: checkcast java/lang/Iterable + // 112: invokeinterface iterator : ()Ljava/util/Iterator; + // 117: astore #4 + // 119: aload_3 + // 120: astore_1 + // 121: aload #4 + // 123: invokeinterface hasNext : ()Z + // 128: ifeq -> 154 + // 131: aload #4 + // 133: invokeinterface next : ()Ljava/lang/Object; + // 138: astore_1 + // 139: aload_1 + // 140: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 143: invokevirtual getValue : ()Ljava/lang/Object; + // 146: ldc 'page-frame.js' + // 148: invokestatic a : (Ljava/lang/Object;Ljava/lang/Object;)Z + // 151: ifeq -> 119 + // 154: aload_1 + // 155: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 158: astore_1 + // 159: aload_2 + // 160: ifnull -> 180 + // 163: aload_1 + // 164: ifnull -> 180 + // 167: aload_2 + // 168: invokevirtual getTimestamp : ()J + // 171: aload_1 + // 172: invokevirtual getTimestamp : ()J + // 175: lsub + // 176: invokestatic valueOf : (J)Ljava/lang/Long; + // 179: areturn + // 180: iconst_m1 + // 181: invokestatic valueOf : (I)Ljava/lang/Integer; + // 184: areturn + } + } + + static final class AutoTestManager$Companion$readPathFrameCalculator$1 extends m implements b>, Object> { + public static final AutoTestManager$Companion$readPathFrameCalculator$1 INSTANCE = new AutoTestManager$Companion$readPathFrameCalculator$1(); + + AutoTestManager$Companion$readPathFrameCalculator$1() { + super(1); + } + + public final Object invoke(Map> param1Map) { + // Byte code: + // 0: aload_1 + // 1: ldc 'map' + // 3: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 6: aload_1 + // 7: ldc 'stopReadFrame' + // 9: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 14: checkcast java/util/List + // 17: astore_2 + // 18: aconst_null + // 19: astore #4 + // 21: aconst_null + // 22: astore_3 + // 23: aload_2 + // 24: ifnull -> 84 + // 27: aload_2 + // 28: checkcast java/lang/Iterable + // 31: invokeinterface iterator : ()Ljava/util/Iterator; + // 36: astore #5 + // 38: aload #5 + // 40: invokeinterface hasNext : ()Z + // 45: ifeq -> 74 + // 48: aload #5 + // 50: invokeinterface next : ()Ljava/lang/Object; + // 55: astore_2 + // 56: aload_2 + // 57: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 60: invokevirtual getValue : ()Ljava/lang/Object; + // 63: ldc '__path_frame__0-frame.js' + // 65: invokestatic a : (Ljava/lang/Object;Ljava/lang/Object;)Z + // 68: ifeq -> 38 + // 71: goto -> 76 + // 74: aconst_null + // 75: astore_2 + // 76: aload_2 + // 77: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 80: astore_2 + // 81: goto -> 86 + // 84: aconst_null + // 85: astore_2 + // 86: aload_1 + // 87: ldc 'startReadFrame' + // 89: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 94: checkcast java/util/List + // 97: astore #5 + // 99: aload #4 + // 101: astore_1 + // 102: aload #5 + // 104: ifnull -> 159 + // 107: aload #5 + // 109: checkcast java/lang/Iterable + // 112: invokeinterface iterator : ()Ljava/util/Iterator; + // 117: astore #4 + // 119: aload_3 + // 120: astore_1 + // 121: aload #4 + // 123: invokeinterface hasNext : ()Z + // 128: ifeq -> 154 + // 131: aload #4 + // 133: invokeinterface next : ()Ljava/lang/Object; + // 138: astore_1 + // 139: aload_1 + // 140: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 143: invokevirtual getValue : ()Ljava/lang/Object; + // 146: ldc '__path_frame__0-frame.js' + // 148: invokestatic a : (Ljava/lang/Object;Ljava/lang/Object;)Z + // 151: ifeq -> 119 + // 154: aload_1 + // 155: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 158: astore_1 + // 159: aload_2 + // 160: ifnull -> 180 + // 163: aload_1 + // 164: ifnull -> 180 + // 167: aload_2 + // 168: invokevirtual getTimestamp : ()J + // 171: aload_1 + // 172: invokevirtual getTimestamp : ()J + // 175: lsub + // 176: invokestatic valueOf : (J)Ljava/lang/Long; + // 179: areturn + // 180: iconst_m1 + // 181: invokestatic valueOf : (I)Ljava/lang/Integer; + // 184: areturn + } + } + + static final class AutoTestManager$Companion$realSendPageFrameCalculator$1 extends m implements b>, Object> { + public static final AutoTestManager$Companion$realSendPageFrameCalculator$1 INSTANCE = new AutoTestManager$Companion$realSendPageFrameCalculator$1(); + + AutoTestManager$Companion$realSendPageFrameCalculator$1() { + super(1); + } + + public final Object invoke(Map> param1Map) { + // Byte code: + // 0: aload_1 + // 1: ldc 'map' + // 3: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 6: aload_1 + // 7: ldc 'evaluateJavascript' + // 9: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 14: checkcast java/util/List + // 17: astore_2 + // 18: aconst_null + // 19: astore_3 + // 20: aload_2 + // 21: ifnull -> 93 + // 24: aload_2 + // 25: checkcast java/lang/Iterable + // 28: invokeinterface iterator : ()Ljava/util/Iterator; + // 33: astore #4 + // 35: aload #4 + // 37: invokeinterface hasNext : ()Z + // 42: ifeq -> 83 + // 45: aload #4 + // 47: invokeinterface next : ()Ljava/lang/Object; + // 52: astore_2 + // 53: aload_2 + // 54: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 57: invokevirtual getValue : ()Ljava/lang/Object; + // 60: invokestatic valueOf : (Ljava/lang/Object;)Ljava/lang/String; + // 63: checkcast java/lang/CharSequence + // 66: ldc 'PAGE_FRAME' + // 68: checkcast java/lang/CharSequence + // 71: iconst_0 + // 72: iconst_2 + // 73: aconst_null + // 74: invokestatic b : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Z + // 77: ifeq -> 35 + // 80: goto -> 85 + // 83: aconst_null + // 84: astore_2 + // 85: aload_2 + // 86: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 89: astore_2 + // 90: goto -> 95 + // 93: aconst_null + // 94: astore_2 + // 95: aload_1 + // 96: ldc 'sendLoadPageFrame' + // 98: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 103: checkcast java/util/List + // 106: astore #4 + // 108: aload_3 + // 109: astore_1 + // 110: aload #4 + // 112: ifnull -> 124 + // 115: aload #4 + // 117: invokestatic f : (Ljava/util/List;)Ljava/lang/Object; + // 120: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 123: astore_1 + // 124: aload_2 + // 125: ifnull -> 145 + // 128: aload_1 + // 129: ifnull -> 145 + // 132: aload_2 + // 133: invokevirtual getTimestamp : ()J + // 136: aload_1 + // 137: invokevirtual getTimestamp : ()J + // 140: lsub + // 141: invokestatic valueOf : (J)Ljava/lang/Long; + // 144: areturn + // 145: iconst_m1 + // 146: invokestatic valueOf : (I)Ljava/lang/Integer; + // 149: areturn + } + } + + static final class AutoTestManager$Companion$realSendPathFrameCalculator$1 extends m implements b>, Object> { + public static final AutoTestManager$Companion$realSendPathFrameCalculator$1 INSTANCE = new AutoTestManager$Companion$realSendPathFrameCalculator$1(); + + AutoTestManager$Companion$realSendPathFrameCalculator$1() { + super(1); + } + + public final Object invoke(Map> param1Map) { + // Byte code: + // 0: aload_1 + // 1: ldc 'map' + // 3: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 6: aload_1 + // 7: ldc 'evaluateJavascript' + // 9: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 14: checkcast java/util/List + // 17: astore_2 + // 18: aconst_null + // 19: astore_3 + // 20: aload_2 + // 21: ifnull -> 93 + // 24: aload_2 + // 25: checkcast java/lang/Iterable + // 28: invokeinterface iterator : ()Ljava/util/Iterator; + // 33: astore #4 + // 35: aload #4 + // 37: invokeinterface hasNext : ()Z + // 42: ifeq -> 83 + // 45: aload #4 + // 47: invokeinterface next : ()Ljava/lang/Object; + // 52: astore_2 + // 53: aload_2 + // 54: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 57: invokevirtual getValue : ()Ljava/lang/Object; + // 60: invokestatic valueOf : (Ljava/lang/Object;)Ljava/lang/String; + // 63: checkcast java/lang/CharSequence + // 66: ldc 'PATH_FRAME' + // 68: checkcast java/lang/CharSequence + // 71: iconst_0 + // 72: iconst_2 + // 73: aconst_null + // 74: invokestatic b : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Z + // 77: ifeq -> 35 + // 80: goto -> 85 + // 83: aconst_null + // 84: astore_2 + // 85: aload_2 + // 86: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 89: astore_2 + // 90: goto -> 95 + // 93: aconst_null + // 94: astore_2 + // 95: aload_1 + // 96: ldc 'sendLoadPathFrame' + // 98: invokeinterface get : (Ljava/lang/Object;)Ljava/lang/Object; + // 103: checkcast java/util/List + // 106: astore #4 + // 108: aload_3 + // 109: astore_1 + // 110: aload #4 + // 112: ifnull -> 124 + // 115: aload #4 + // 117: invokestatic f : (Ljava/util/List;)Ljava/lang/Object; + // 120: checkcast com/tt/miniapp/autotest/AutoTestEvent + // 123: astore_1 + // 124: aload_2 + // 125: ifnull -> 145 + // 128: aload_1 + // 129: ifnull -> 145 + // 132: aload_2 + // 133: invokevirtual getTimestamp : ()J + // 136: aload_1 + // 137: invokevirtual getTimestamp : ()J + // 140: lsub + // 141: invokestatic valueOf : (J)Ljava/lang/Long; + // 144: areturn + // 145: iconst_m1 + // 146: invokestatic valueOf : (I)Ljava/lang/Integer; + // 149: areturn + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\autotest\AutoTestManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestManagerKt.java b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestManagerKt.java new file mode 100644 index 0000000..c120816 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestManagerKt.java @@ -0,0 +1,9 @@ +package com.tt.miniapp.autotest; + +public final class AutoTestManagerKt {} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\autotest\AutoTestManagerKt.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestReport.java b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestReport.java new file mode 100644 index 0000000..2e2325b --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/autotest/AutoTestReport.java @@ -0,0 +1,108 @@ +package com.tt.miniapp.autotest; + +import android.content.Intent; +import android.os.Environment; +import com.storage.async.Action; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.util.IOUtils; +import d.f.a.b; +import d.f.b.g; +import d.f.b.l; +import d.n; +import java.io.File; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import org.json.JSONArray; +import org.json.JSONObject; + +public final class AutoTestReport implements Action { + public static final Companion Companion = new Companion(null); + + private final List>, Object>>> mCaculatorList; + + private final List mEventList; + + private final List mLooperInfos; + + public AutoTestReport(List paramList, List>, ? extends Object>>> paramList1, List paramList2) { + this.mEventList = paramList; + this.mCaculatorList = (List)paramList1; + this.mLooperInfos = paramList2; + } + + private final JSONObject generateCalculatorJson() { + LinkedHashMap linkedHashMap = new LinkedHashMap(); + for (AutoTestEvent autoTestEvent : this.mEventList) { + List list2 = (List)linkedHashMap.get(autoTestEvent.getId()); + List list1 = list2; + if (list2 == null) + list1 = new LinkedList(); + list1.add(autoTestEvent); + linkedHashMap.put(autoTestEvent.getId(), list1); + } + JSONObject jSONObject = new JSONObject(); + for (n>, Object>> n : this.mCaculatorList) + jSONObject.put((String)n.getFirst(), ((b)n.getSecond()).invoke(linkedHashMap)); + return jSONObject; + } + + private final JSONArray generateEventJson() { + JSONArray jSONArray = new JSONArray(); + Iterator iterator = this.mEventList.iterator(); + while (iterator.hasNext()) + jSONArray.put(((AutoTestEvent)iterator.next()).toJson()); + return jSONArray; + } + + private final JSONArray generateLoopJson() { + JSONArray jSONArray = new JSONArray(); + for (AutoTestLoopEvent autoTestLoopEvent : this.mLooperInfos) { + AppBrandLogger.d("AutoTestReport", new Object[] { autoTestLoopEvent }); + jSONArray.put(autoTestLoopEvent.toJson()); + } + return jSONArray; + } + + public final void act() { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("calculator", generateCalculatorJson()); + jSONObject.put("event", generateEventJson()); + jSONObject.put("loop", generateLoopJson()); + AppBrandLogger.d("AutoTestReport", new Object[] { jSONObject.toString() }); + Intent intent = new Intent("com.tt.miniapp.autotest"); + StringBuilder stringBuilder = new StringBuilder(); + File file = Environment.getExternalStorageDirectory(); + l.a(file, "Environment.getExternalStorageDirectory()"); + stringBuilder.append(file.getAbsolutePath()); + stringBuilder.append("/autotest.json"); + String str = stringBuilder.toString(); + IOUtils.writeStringToFile(str, jSONObject.toString(), "utf-8"); + intent.putExtra("path", str); + ThreadUtil.runOnUIThread(new AutoTestReport$act$1(intent), 2000L); + } + + public static final class Companion { + private Companion() {} + } + + static final class AutoTestReport$act$1 implements Runnable { + AutoTestReport$act$1(Intent param1Intent) {} + + public final void run() { + AppbrandContext appbrandContext = AppbrandContext.getInst(); + l.a(appbrandContext, "AppbrandContext.getInst()"); + appbrandContext.getApplicationContext().sendBroadcast(this.$intent); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\autotest\AutoTestReport.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/badcase/BlockPageManager.java b/df_miniapp/classes/com/tt/miniapp/badcase/BlockPageManager.java new file mode 100644 index 0000000..779a1a9 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/badcase/BlockPageManager.java @@ -0,0 +1,113 @@ +package com.tt.miniapp.badcase; + +import android.app.Application; +import android.content.Context; +import android.util.Log; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.AppbrandServiceManager; +import com.tt.miniapp.route.PageRouter; +import com.tt.miniapp.service.suffixmeta.SuffixMetaEntity; +import com.tt.miniapp.service.suffixmeta.SuffixMetaServiceInterface; +import com.tt.miniapp.settings.data.SettingsDAO; +import com.tt.miniapp.settings.keys.Settings; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.AppInfoEntity; +import org.json.JSONArray; +import org.json.JSONException; + +public class BlockPageManager extends AppbrandServiceManager.ServiceBase { + public BlockPageManager(AppbrandApplicationImpl paramAppbrandApplicationImpl) { + super(paramAppbrandApplicationImpl); + } + + private boolean disablePageBlock() { + AppInfoEntity appInfoEntity = AppbrandApplicationImpl.getInst().getAppInfo(); + Application application = AppbrandContext.getInst().getApplicationContext(); + return !appInfoEntity.isLocalTest() ? ((SettingsDAO.getInt((Context)application, 0, new Enum[] { (Enum)Settings.TT_TMA_SWITCH, (Enum)Settings.TmaSwitch.PAGE_BLOCK }) != 1)) : true; + } + + public void handleColdLaunch() { + if (disablePageBlock()) + return; + final SuffixMetaServiceInterface service = (SuffixMetaServiceInterface)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(SuffixMetaServiceInterface.class); + suffixMetaServiceInterface.subscribe(new SuffixMetaServiceInterface.SuffixMetaListener() { + public void onError(String param1String) { + StringBuilder stringBuilder = new StringBuilder("get suffix meta error:"); + stringBuilder.append(param1String); + AppBrandLogger.e("BlockPageManager", new Object[] { stringBuilder.toString() }); + service.unsubscribe(this); + BlockPageMonitor.requestFail(param1String); + } + + public void onSuccess(SuffixMetaEntity param1SuffixMetaEntity) { + if (param1SuffixMetaEntity == null) + return; + if (!param1SuffixMetaEntity.diskCache) + service.unsubscribe(this); + try { + JSONArray jSONArray = new JSONArray(param1SuffixMetaEntity.shieldPage); + BlockPageManager.this.pushData(jSONArray); + return; + } catch (JSONException jSONException) { + AppBrandLogger.e("BlockPageManager", new Object[] { jSONException }); + return; + } + } + }); + } + + public void handleErrorPage() { + AppBrandLogger.i("BlockPageManager", new Object[] { "handle error page" }); + ((SuffixMetaServiceInterface)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(SuffixMetaServiceInterface.class)).removeLocalCache(SuffixMetaEntity.PROPERTY.shieldPage, true); + if (AppbrandContext.getInst().getCurrentActivity() == null) + return; + if (((PageRouter)this.mApp.getService(PageRouter.class)).getViewWindowRoot().getViewWindowCount() > 1) + BlockPageMonitor.showErrorNotFirstPage("show error not first page"); + } + + public void handleHotLaunch() { + if (disablePageBlock()) + return; + ((SuffixMetaServiceInterface)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(SuffixMetaServiceInterface.class)).getRemoteImmediately(new SuffixMetaServiceInterface.SuffixMetaListener() { + public void onError(String param1String) { + StringBuilder stringBuilder = new StringBuilder("get suffix meta error:"); + stringBuilder.append(param1String); + AppBrandLogger.e("BlockPageManager", new Object[] { stringBuilder.toString() }); + BlockPageMonitor.requestFail(param1String); + } + + public void onSuccess(SuffixMetaEntity param1SuffixMetaEntity) { + try { + JSONArray jSONArray = new JSONArray(param1SuffixMetaEntity.shieldPage); + BlockPageManager.this.pushData(jSONArray); + return; + } catch (JSONException jSONException) { + AppBrandLogger.e("BlockPageManager", new Object[] { jSONException }); + return; + } + } + }); + } + + public void pushData(JSONArray paramJSONArray) { + if (paramJSONArray != null) { + if (paramJSONArray.length() == 0) + return; + try { + return; + } finally { + paramJSONArray = null; + AppBrandLogger.e("BlockPageManager", new Object[] { "push data error", paramJSONArray }); + StringBuilder stringBuilder = new StringBuilder("push data error:"); + stringBuilder.append(Log.getStackTraceString((Throwable)paramJSONArray)); + } + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\badcase\BlockPageManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/badcase/BlockPageMonitor.java b/df_miniapp/classes/com/tt/miniapp/badcase/BlockPageMonitor.java new file mode 100644 index 0000000..46bce66 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/badcase/BlockPageMonitor.java @@ -0,0 +1,38 @@ +package com.tt.miniapp.badcase; + +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import org.json.JSONException; +import org.json.JSONObject; + +class BlockPageMonitor { + private static void monitor(int paramInt, String paramString) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("errorMsg", paramString); + AppBrandMonitor.statusRate("mp_block_page", paramInt, jSONObject); + return; + } catch (JSONException jSONException) { + AppBrandLogger.e("BlockPageMonitor", new Object[] { jSONException }); + return; + } + } + + static void pushGeneralDataFail(String paramString) { + monitor(1003, paramString); + } + + static void requestFail(String paramString) { + monitor(1000, paramString); + } + + static void showErrorNotFirstPage(String paramString) { + monitor(1004, paramString); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\badcase\BlockPageMonitor.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/IActivityFetcher.java b/df_miniapp/classes/com/tt/miniapp/base/IActivityFetcher.java new file mode 100644 index 0000000..3d448c2 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/IActivityFetcher.java @@ -0,0 +1,13 @@ +package com.tt.miniapp.base; + +import android.app.Activity; + +public interface IActivityFetcher { + Activity getCurrentActivity(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\IActivityFetcher.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/MiniAppContext.java b/df_miniapp/classes/com/tt/miniapp/base/MiniAppContext.java new file mode 100644 index 0000000..4c4e15d --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/MiniAppContext.java @@ -0,0 +1,14 @@ +package com.tt.miniapp.base; + +import com.bytedance.sandboxapp.b.a; +import com.tt.miniapphost.entity.AppInfoEntity; + +public interface MiniAppContext extends a { + AppInfoEntity getAppInfo(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\MiniAppContext.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/MiniAppContextWrapper.java b/df_miniapp/classes/com/tt/miniapp/base/MiniAppContextWrapper.java new file mode 100644 index 0000000..b834ebb --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/MiniAppContextWrapper.java @@ -0,0 +1,196 @@ +package com.tt.miniapp.base; + +import android.app.Activity; +import android.content.Context; +import com.bytedance.sandboxapp.b.a.a; +import com.bytedance.sandboxapp.b.a.a.a; +import com.bytedance.sandboxapp.b.a.a.b; +import com.bytedance.sandboxapp.b.a.b.a; +import com.bytedance.sandboxapp.b.a.b.b; +import com.bytedance.sandboxapp.b.b; +import com.bytedance.sandboxapp.c.a.a; +import com.bytedance.sandboxapp.protocol.service.a.a.a; +import com.bytedance.sandboxapp.protocol.service.api.a; +import com.bytedance.sandboxapp.protocol.service.b.a; +import com.bytedance.sandboxapp.protocol.service.c.a; +import com.bytedance.sandboxapp.protocol.service.d.a; +import com.bytedance.sandboxapp.protocol.service.e.b; +import com.bytedance.sandboxapp.protocol.service.f.a; +import com.bytedance.sandboxapp.protocol.service.g.a; +import com.bytedance.sandboxapp.protocol.service.h.c; +import com.bytedance.sandboxapp.protocol.service.i.a; +import com.bytedance.sandboxapp.protocol.service.j.a; +import com.bytedance.sandboxapp.protocol.service.k.a; +import com.bytedance.sandboxapp.protocol.service.l.a; +import com.bytedance.sandboxapp.protocol.service.m.a; +import com.bytedance.sandboxapp.protocol.service.n.a; +import com.bytedance.sandboxapp.protocol.service.n.b; +import com.bytedance.sandboxapp.protocol.service.request.a; +import com.tt.miniapp.base.activity.ActivityService; +import com.tt.miniapp.base.activity.ActivityServiceInterface; +import com.tt.miniapp.base.file.FileService; +import com.tt.miniapp.base.forebackground.ForeBackgroundService; +import com.tt.miniapp.base.identifier.IdentifierService; +import com.tt.miniapp.base.netrequest.NetRequestService; +import com.tt.miniapp.base.report.AppLogReportService; +import com.tt.miniapp.base.report.MonitorReportService; +import com.tt.miniapp.business.ad.site.AdSiteService; +import com.tt.miniapp.business.app.SandboxAppService; +import com.tt.miniapp.business.aweme.AwemeService; +import com.tt.miniapp.business.cloud.LarkCloudService; +import com.tt.miniapp.business.component.video.MediaService; +import com.tt.miniapp.business.device.DeviceService; +import com.tt.miniapp.business.host.HostService; +import com.tt.miniapp.business.pay.PayService; +import com.tt.miniapp.business.permission.PermissionService; +import com.tt.miniapp.business.render.RenderService; +import com.tt.miniapp.service.suffixmeta.SuffixMetaServiceInterface; +import com.tt.miniapp.suffixmeta.SuffixMetaService; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.util.DebugUtil; +import d.f.b.l; +import java.util.HashMap; +import java.util.Map; + +public class MiniAppContextWrapper implements MiniAppContext { + private IActivityFetcher mActivityFetcher; + + private Context mApplicationContext; + + private boolean mDestroyed; + + private Map mServiceMap; + + private MiniAppContextWrapper(IActivityFetcher paramIActivityFetcher, Context paramContext) { + this.mActivityFetcher = paramIActivityFetcher; + this.mApplicationContext = paramContext; + initServiceMap(); + configAbility(); + } + + private void configAbility() { + a a1 = new a() { + public a getDebugger() { + return new a() { + public boolean isDebugMode() { + return DebugUtil.debug(); + } + + public void logOrThrow(String param2String, Object... param2VarArgs) { + DebugUtil.logOrThrow(param2String, param2VarArgs); + } + + public void logOrToast(String param2String, Object... param2VarArgs) { + DebugUtil.outputError(param2String, param2VarArgs); + } + }; + } + + public a getLogger() { + return new a() { + public void d(String param2String, Object... param2VarArgs) { + AppBrandLogger.d(param2String, param2VarArgs); + } + + public void e(String param2String, Object... param2VarArgs) { + AppBrandLogger.e(param2String, param2VarArgs); + } + + public void i(String param2String, Object... param2VarArgs) { + AppBrandLogger.i(param2String, param2VarArgs); + } + + public void w(String param2String, Object... param2VarArgs) { + AppBrandLogger.w(param2String, param2VarArgs); + } + }; + } + }; + l.b(a1, "abilityDeclarer"); + a a2 = a1.getLogger(); + l.b(a2, "ability"); + b.a = a2; + a a = a1.getDebugger(); + l.b(a, "ability"); + b.a = a; + b.a(a.isDebugMode()); + } + + private void initServiceMap() { + this.mServiceMap = (Map)new HashMap, b>(); + this.mServiceMap.put(a.class, new a(this)); + this.mServiceMap.put(a.class, new SandboxAppService(this)); + this.mServiceMap.put(a.class, new NetRequestService(this)); + this.mServiceMap.put(ActivityServiceInterface.class, new ActivityService(this)); + this.mServiceMap.put(SuffixMetaServiceInterface.class, new SuffixMetaService(this)); + this.mServiceMap.put(a.class, new PayService(this)); + this.mServiceMap.put(c.class, new HostService(this)); + this.mServiceMap.put(b.class, new DeviceService(this)); + this.mServiceMap.put(a.class, new MediaService(this)); + this.mServiceMap.put(a.class, new RenderService(this)); + this.mServiceMap.put(a.class, new PermissionService(this)); + this.mServiceMap.put(a.class, new IdentifierService(this)); + this.mServiceMap.put(b.class, new MonitorReportService(this)); + this.mServiceMap.put(a.class, new AppLogReportService(this)); + this.mServiceMap.put(a.class, new ForeBackgroundService(this)); + this.mServiceMap.put(a.class, new FileService(this)); + this.mServiceMap.put(a.class, new LarkCloudService(this)); + this.mServiceMap.put(a.class, new AdSiteService(this)); + this.mServiceMap.put(a.class, new AwemeService(this)); + } + + public void destroy() { + this.mDestroyed = true; + this.mServiceMap.clear(); + } + + public AppInfoEntity getAppInfo() { + return AppbrandApplication.getInst().getAppInfo(); + } + + public Context getApplicationContext() { + return this.mApplicationContext; + } + + public Activity getCurrentActivity() { + return this.mActivityFetcher.getCurrentActivity(); + } + + public T getService(Class paramClass) { + if (this.mDestroyed) + DebugUtil.logOrThrow("MiniAppContextWrapper", new Object[] { "当前小程序上下文已被销毁" }); + if (DebugUtil.debug() && paramClass.getInterfaces()[0] != b.class) + DebugUtil.logOrThrow("MiniAppContextWrapper", new Object[] { "获取 Service 的时候必须使用接口获取" }); + b b = this.mServiceMap.get(paramClass); + if (b == null) + DebugUtil.logOrThrow("MiniAppContextWrapper", new Object[] { "当前 Service 未注册实例,如果是当前运行环境不需要实现此 Service,请为其添加空实现" }); + return (T)b; + } + + public static class Builder { + private final IActivityFetcher mActivityFetcher; + + private final Context mApplicationContext; + + private Builder(IActivityFetcher param1IActivityFetcher, Context param1Context) { + this.mActivityFetcher = param1IActivityFetcher; + this.mApplicationContext = param1Context; + } + + public static Builder create(IActivityFetcher param1IActivityFetcher, Context param1Context) { + return new Builder(param1IActivityFetcher, param1Context); + } + + public MiniAppContextWrapper build() { + return new MiniAppContextWrapper(this.mActivityFetcher, this.mApplicationContext); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\MiniAppContextWrapper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/activity/ActivityService.java b/df_miniapp/classes/com/tt/miniapp/base/activity/ActivityService.java new file mode 100644 index 0000000..696e6fe --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/activity/ActivityService.java @@ -0,0 +1,273 @@ +package com.tt.miniapp.base.activity; + +import android.app.Activity; +import android.app.Application; +import android.content.Intent; +import android.os.Bundle; +import com.bytedance.sandboxapp.b.a; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapphost.AppbrandContext; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class ActivityService implements ActivityServiceInterface { + private final Application.ActivityLifecycleCallbacks mActivityLifecycleCallbacks; + + private final List mActivityLifecycleCallbacksList; + + private final IActivityResultHandler mActivityResultHandler; + + public final List mActivityResultHandlerList; + + private final MiniAppContext mContext; + + private boolean mRegisterHandler; + + private boolean mRegisterLifecycleCallbacks; + + public ActivityService(MiniAppContext paramMiniAppContext) { + this.mContext = paramMiniAppContext; + this.mActivityResultHandler = new IActivityResultHandler() { + public boolean autoClearAfterActivityResult() { + return false; + } + + public boolean handleActivityResult(int param1Int1, int param1Int2, Intent param1Intent) { + boolean bool2; + null = new ArrayList(ActivityService.this.mActivityResultHandlerList); + Iterator iterator = null.iterator(); + boolean bool1 = false; + while (true) { + bool2 = bool1; + if (iterator.hasNext()) { + bool1 = ((IActivityResultHandler)iterator.next()).handleActivityResult(param1Int1, param1Int2, param1Intent); + bool2 = bool1; + if (!bool1) + continue; + } + break; + } + synchronized (ActivityService.this) { + for (IActivityResultHandler iActivityResultHandler : null) { + if (iActivityResultHandler.autoClearAfterActivityResult()) + ActivityService.this.mActivityResultHandlerList.remove(iActivityResultHandler); + } + return bool2; + } + } + }; + this.mActivityLifecycleCallbacks = new Application.ActivityLifecycleCallbacks() { + public void onActivityCreated(Activity param1Activity, Bundle param1Bundle) { + Iterator iterator = ActivityService.this.getSortLifecycleCallbacks().iterator(); + while (iterator.hasNext()) + ((ActivityServiceInterface.ActivityLifecycleCallbacks)iterator.next()).onActivityCreated(param1Activity, param1Bundle); + } + + public void onActivityDestroyed(Activity param1Activity) { + Iterator iterator = ActivityService.this.getSortLifecycleCallbacks().iterator(); + while (iterator.hasNext()) + ((ActivityServiceInterface.ActivityLifecycleCallbacks)iterator.next()).onActivityDestroyed(param1Activity); + } + + public void onActivityPaused(Activity param1Activity) { + Iterator iterator = ActivityService.this.getSortLifecycleCallbacks().iterator(); + while (iterator.hasNext()) + ((ActivityServiceInterface.ActivityLifecycleCallbacks)iterator.next()).onActivityPaused(param1Activity); + } + + public void onActivityResumed(Activity param1Activity) { + Iterator iterator = ActivityService.this.getSortLifecycleCallbacks().iterator(); + while (iterator.hasNext()) + ((ActivityServiceInterface.ActivityLifecycleCallbacks)iterator.next()).onActivityResumed(param1Activity); + } + + public void onActivitySaveInstanceState(Activity param1Activity, Bundle param1Bundle) { + Iterator iterator = ActivityService.this.getSortLifecycleCallbacks().iterator(); + while (iterator.hasNext()) + ((ActivityServiceInterface.ActivityLifecycleCallbacks)iterator.next()).onActivitySaveInstanceState(param1Activity, param1Bundle); + } + + public void onActivityStarted(Activity param1Activity) { + Iterator iterator = ActivityService.this.getSortLifecycleCallbacks().iterator(); + while (iterator.hasNext()) + ((ActivityServiceInterface.ActivityLifecycleCallbacks)iterator.next()).onActivityStarted(param1Activity); + } + + public void onActivityStopped(Activity param1Activity) { + Iterator iterator = ActivityService.this.getSortLifecycleCallbacks().iterator(); + while (iterator.hasNext()) + ((ActivityServiceInterface.ActivityLifecycleCallbacks)iterator.next()).onActivityStopped(param1Activity); + } + }; + this.mActivityResultHandlerList = new ArrayList(); + this.mActivityLifecycleCallbacksList = new ArrayList(); + } + + public MiniAppContext getContext() { + return this.mContext; + } + + public List getSortLifecycleCallbacks() { + synchronized (this.mActivityLifecycleCallbacks) { + int i = this.mActivityLifecycleCallbacksList.size(); + if (i > 0) { + i--; + while (true) { + if (i >= 0) { + ActivityServiceInterface.ActivityLifecycleCallbacks activityLifecycleCallbacks = this.mActivityLifecycleCallbacksList.get(i); + if (activityLifecycleCallbacks.shouldUnregister()) + this.mActivityLifecycleCallbacksList.remove(activityLifecycleCallbacks); + } else { + return new ArrayList(this.mActivityLifecycleCallbacksList); + } + i--; + } + } + return new ArrayList(this.mActivityLifecycleCallbacksList); + } + } + + public void onDestroy() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mActivityResultHandlerList : Ljava/util/List; + // 6: invokeinterface clear : ()V + // 11: aload_0 + // 12: monitorexit + // 13: aload_0 + // 14: getfield mActivityLifecycleCallbacks : Landroid/app/Application$ActivityLifecycleCallbacks; + // 17: astore_1 + // 18: aload_1 + // 19: monitorenter + // 20: aload_0 + // 21: getfield mActivityLifecycleCallbacksList : Ljava/util/List; + // 24: invokeinterface clear : ()V + // 29: aload_1 + // 30: monitorexit + // 31: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 34: invokevirtual getApplicationContext : ()Landroid/app/Application; + // 37: aload_0 + // 38: getfield mActivityLifecycleCallbacks : Landroid/app/Application$ActivityLifecycleCallbacks; + // 41: invokevirtual unregisterActivityLifecycleCallbacks : (Landroid/app/Application$ActivityLifecycleCallbacks;)V + // 44: return + // 45: astore_2 + // 46: aload_1 + // 47: monitorexit + // 48: aload_2 + // 49: athrow + // 50: astore_1 + // 51: aload_0 + // 52: monitorexit + // 53: aload_1 + // 54: athrow + // Exception table: + // from to target type + // 2 13 50 finally + // 20 31 45 finally + // 46 48 45 finally + // 51 53 50 finally + } + + public void registerActivityLifecycleCallbacks(ActivityServiceInterface.ActivityLifecycleCallbacks paramActivityLifecycleCallbacks) { + synchronized (this.mActivityLifecycleCallbacks) { + if (!this.mRegisterLifecycleCallbacks) { + AppbrandContext.getInst().getApplicationContext().registerActivityLifecycleCallbacks(this.mActivityLifecycleCallbacks); + this.mRegisterLifecycleCallbacks = true; + } + Object object = paramActivityLifecycleCallbacks.uniquelyIdentify(); + if (object != null) { + Iterator iterator = this.mActivityLifecycleCallbacksList.iterator(); + while (iterator.hasNext()) { + if (object.equals(((ActivityServiceInterface.ActivityLifecycleCallbacks)iterator.next()).uniquelyIdentify())) + return; + } + } + this.mActivityLifecycleCallbacksList.add(paramActivityLifecycleCallbacks); + return; + } + } + + public void registerActivityResultHandler(IActivityResultHandler paramIActivityResultHandler) { + // Byte code: + // 0: aload_0 + // 1: getfield mRegisterHandler : Z + // 4: ifne -> 51 + // 7: aload_0 + // 8: invokevirtual getContext : ()Lcom/tt/miniapp/base/MiniAppContext; + // 11: invokeinterface getCurrentActivity : ()Landroid/app/Activity; + // 16: astore_2 + // 17: aload_2 + // 18: instanceof com/tt/miniapphost/MiniappHostBase + // 21: ifeq -> 51 + // 24: aload_2 + // 25: checkcast com/tt/miniapphost/MiniappHostBase + // 28: invokevirtual getActivityProxy : ()Lcom/tt/miniapphost/IActivityProxy; + // 31: astore_2 + // 32: aload_2 + // 33: ifnull -> 51 + // 36: aload_2 + // 37: aload_0 + // 38: getfield mActivityResultHandler : Lcom/tt/miniapp/base/activity/IActivityResultHandler; + // 41: invokeinterface setActivityResultHandler : (Lcom/tt/miniapp/base/activity/IActivityResultHandler;)V + // 46: aload_0 + // 47: iconst_1 + // 48: putfield mRegisterHandler : Z + // 51: aload_0 + // 52: monitorenter + // 53: aload_0 + // 54: getfield mActivityResultHandlerList : Ljava/util/List; + // 57: aload_1 + // 58: invokeinterface add : (Ljava/lang/Object;)Z + // 63: pop + // 64: aload_0 + // 65: monitorexit + // 66: return + // 67: astore_1 + // 68: aload_0 + // 69: monitorexit + // 70: aload_1 + // 71: athrow + // Exception table: + // from to target type + // 53 66 67 finally + // 68 70 67 finally + } + + public void unregisterActivityLifecycleCallbacks(ActivityServiceInterface.ActivityLifecycleCallbacks paramActivityLifecycleCallbacks) { + synchronized (this.mActivityLifecycleCallbacks) { + this.mActivityLifecycleCallbacksList.remove(paramActivityLifecycleCallbacks); + return; + } + } + + public void unregisterActivityResultHandler(IActivityResultHandler paramIActivityResultHandler) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mActivityResultHandlerList : Ljava/util/List; + // 6: aload_1 + // 7: invokeinterface remove : (Ljava/lang/Object;)Z + // 12: pop + // 13: aload_0 + // 14: monitorexit + // 15: return + // 16: astore_1 + // 17: aload_0 + // 18: monitorexit + // 19: aload_1 + // 20: athrow + // Exception table: + // from to target type + // 2 13 16 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\activity\ActivityService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/activity/ActivityServiceInterface.java b/df_miniapp/classes/com/tt/miniapp/base/activity/ActivityServiceInterface.java new file mode 100644 index 0000000..9fc0507 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/activity/ActivityServiceInterface.java @@ -0,0 +1,65 @@ +package com.tt.miniapp.base.activity; + +import android.app.Activity; +import android.os.Bundle; +import com.bytedance.sandboxapp.b.b; + +public interface ActivityServiceInterface extends b { + void registerActivityLifecycleCallbacks(ActivityLifecycleCallbacks paramActivityLifecycleCallbacks); + + void registerActivityResultHandler(IActivityResultHandler paramIActivityResultHandler); + + void unregisterActivityLifecycleCallbacks(ActivityLifecycleCallbacks paramActivityLifecycleCallbacks); + + void unregisterActivityResultHandler(IActivityResultHandler paramIActivityResultHandler); + + public static abstract class AbsActivityLifecycleCallbacks implements ActivityLifecycleCallbacks { + public void onActivityCreated(Activity param1Activity, Bundle param1Bundle) {} + + public void onActivityDestroyed(Activity param1Activity) {} + + public void onActivityPaused(Activity param1Activity) {} + + public void onActivityResumed(Activity param1Activity) {} + + public void onActivitySaveInstanceState(Activity param1Activity, Bundle param1Bundle) {} + + public void onActivityStarted(Activity param1Activity) {} + + public void onActivityStopped(Activity param1Activity) {} + + public boolean shouldUnregister() { + return false; + } + + public Object uniquelyIdentify() { + return null; + } + } + + public static interface ActivityLifecycleCallbacks { + void onActivityCreated(Activity param1Activity, Bundle param1Bundle); + + void onActivityDestroyed(Activity param1Activity); + + void onActivityPaused(Activity param1Activity); + + void onActivityResumed(Activity param1Activity); + + void onActivitySaveInstanceState(Activity param1Activity, Bundle param1Bundle); + + void onActivityStarted(Activity param1Activity); + + void onActivityStopped(Activity param1Activity); + + boolean shouldUnregister(); + + Object uniquelyIdentify(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\activity\ActivityServiceInterface.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/activity/IActivityResultHandler.java b/df_miniapp/classes/com/tt/miniapp/base/activity/IActivityResultHandler.java new file mode 100644 index 0000000..bd5d82f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/activity/IActivityResultHandler.java @@ -0,0 +1,15 @@ +package com.tt.miniapp.base.activity; + +import android.content.Intent; + +public interface IActivityResultHandler { + boolean autoClearAfterActivityResult(); + + boolean handleActivityResult(int paramInt1, int paramInt2, Intent paramIntent); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\activity\IActivityResultHandler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/file/FileService.java b/df_miniapp/classes/com/tt/miniapp/base/file/FileService.java new file mode 100644 index 0000000..2f60664 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/file/FileService.java @@ -0,0 +1,39 @@ +package com.tt.miniapp.base.file; + +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.f.a; +import com.tt.miniapp.storage.filestorge.FileManager; +import d.f.b.l; +import java.io.File; + +public final class FileService implements a { + private final a context; + + public FileService(a parama) { + this.context = parama; + } + + public final boolean canWrite(String paramString) { + l.b(paramString, "filePath"); + File file = new File(FileManager.inst().getRealFilePath(paramString)); + return FileManager.inst().canWrite(file); + } + + public final a getContext() { + return this.context; + } + + public final boolean isParentDirExists(String paramString) { + l.b(paramString, "filePath"); + File file = (new File(FileManager.inst().getRealFilePath(paramString))).getParentFile(); + return (file == null) ? false : file.exists(); + } + + public final void onDestroy() {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\file\FileService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/forebackground/ForeBackgroundService.java b/df_miniapp/classes/com/tt/miniapp/base/forebackground/ForeBackgroundService.java new file mode 100644 index 0000000..454ae1a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/forebackground/ForeBackgroundService.java @@ -0,0 +1,66 @@ +package com.tt.miniapp.base.forebackground; + +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.g.a; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.manager.ForeBackgroundManager; +import d.f.b.l; + +public final class ForeBackgroundService implements a { + private final a context; + + public ForeBackgroundService(a parama) { + this.context = parama; + } + + public final a getContext() { + return this.context; + } + + public final boolean isBackground() { + AppbrandApplicationImpl appbrandApplicationImpl = AppbrandApplicationImpl.getInst(); + l.a(appbrandApplicationImpl, "AppbrandApplicationImpl.getInst()"); + ForeBackgroundManager foreBackgroundManager = appbrandApplicationImpl.getForeBackgroundManager(); + l.a(foreBackgroundManager, "AppbrandApplicationImpl.…t().foreBackgroundManager"); + return foreBackgroundManager.isBackground(); + } + + public final boolean isStayBackgroundOverLimitTime() { + AppbrandApplicationImpl appbrandApplicationImpl = AppbrandApplicationImpl.getInst(); + l.a(appbrandApplicationImpl, "AppbrandApplicationImpl.getInst()"); + ForeBackgroundManager foreBackgroundManager = appbrandApplicationImpl.getForeBackgroundManager(); + l.a(foreBackgroundManager, "AppbrandApplicationImpl.…t().foreBackgroundManager"); + return foreBackgroundManager.isStayBackgroundOverLimitTime(); + } + + public final void onDestroy() {} + + public final void registerForeBackgroundListener(a.b paramb) { + l.b(paramb, "foreBackgroundListener"); + AppbrandApplicationImpl appbrandApplicationImpl = AppbrandApplicationImpl.getInst(); + l.a(appbrandApplicationImpl, "AppbrandApplicationImpl.getInst()"); + appbrandApplicationImpl.getForeBackgroundManager().registerForeBackgroundListener(new ForeBackgroundService$registerForeBackgroundListener$1(paramb)); + } + + public static final class ForeBackgroundService$registerForeBackgroundListener$1 implements ForeBackgroundManager.ForeBackgroundListener { + ForeBackgroundService$registerForeBackgroundListener$1(a.b param1b) {} + + public final void onBackground() { + this.$foreBackgroundListener.b(); + } + + public final void onBackgroundOverLimitTime() {} + + public final void onForeground() { + this.$foreBackgroundListener.a(); + } + + public final void onTriggerHomeOrRecentApp() {} + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\forebackground\ForeBackgroundService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/identifier/IdentifierService.java b/df_miniapp/classes/com/tt/miniapp/base/identifier/IdentifierService.java new file mode 100644 index 0000000..f26dcdc --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/identifier/IdentifierService.java @@ -0,0 +1,29 @@ +package com.tt.miniapp.base.identifier; + +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.i.a; +import com.tt.miniapp.net.RequestIDCreator; + +public final class IdentifierService implements a { + private final a context; + + public IdentifierService(a parama) { + this.context = parama; + } + + public final a getContext() { + return this.context; + } + + public final int getRequestIdentifyId() { + return RequestIDCreator.create(); + } + + public final void onDestroy() {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\identifier\IdentifierService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/log/LogX.java b/df_miniapp/classes/com/tt/miniapp/base/log/LogX.java new file mode 100644 index 0000000..adc6792 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/log/LogX.java @@ -0,0 +1,83 @@ +package com.tt.miniapp.base.log; + +import android.os.Process; + +public class LogX { + public static boolean LOG_ENABLE; + + private static int mProcessID; + + private static String createLog(Object[] paramArrayOfObject) { + String str1; + StackTraceElement[] arrayOfStackTraceElement = (new Throwable()).getStackTrace(); + int i = arrayOfStackTraceElement.length; + String str2 = ""; + if (i > 2) { + str1 = arrayOfStackTraceElement[2].getMethodName(); + i = arrayOfStackTraceElement[2].getLineNumber(); + str2 = arrayOfStackTraceElement[2].getFileName().replace(".java", ""); + } else { + i = -1; + str1 = "unknown"; + } + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append(str2); + stringBuffer.append(" ("); + stringBuffer.append(getProcessID()); + stringBuffer.append(") ["); + stringBuffer.append(str1); + stringBuffer.append(':'); + stringBuffer.append(i); + stringBuffer.append(']'); + int j = paramArrayOfObject.length; + for (i = 0; i < j; i++) { + Object object = paramArrayOfObject[i]; + stringBuffer.append(" "); + if (object != null) { + stringBuffer.append(object); + } else { + stringBuffer.append("null"); + } + } + return stringBuffer.toString(); + } + + public static void d(Object... paramVarArgs) { + if (LOG_ENABLE) + createLog(paramVarArgs); + } + + public static void e(Object... paramVarArgs) { + if (LOG_ENABLE) + createLog(paramVarArgs); + } + + private static int getProcessID() { + if (mProcessID <= 0) + mProcessID = Process.myPid(); + return mProcessID; + } + + public static void i(Object... paramVarArgs) { + if (LOG_ENABLE) + createLog(paramVarArgs); + } + + public static void printStacktrace(Throwable paramThrowable) {} + + public static void v(Object... paramVarArgs) { + if (LOG_ENABLE) + createLog(paramVarArgs); + } + + public static void w(Object... paramVarArgs) { + if (LOG_ENABLE) + createLog(paramVarArgs); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\log\LogX.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/netrequest/AbortRequestHolder.java b/df_miniapp/classes/com/tt/miniapp/base/netrequest/AbortRequestHolder.java new file mode 100644 index 0000000..979179f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/netrequest/AbortRequestHolder.java @@ -0,0 +1,34 @@ +package com.tt.miniapp.base.netrequest; + +import android.util.SparseArray; +import com.bytedance.sandboxapp.b.a.b.b; +import d.f.b.g; + +public final class AbortRequestHolder { + public static final Companion Companion = new Companion(null); + + private final SparseArray mAbortRequests = new SparseArray(); + + public final void cancelRequest(int paramInt) { + if ((Boolean)this.mAbortRequests.get(paramInt) != null) { + b.b.e("AbortRequestHolder", new Object[] { "multi cancel" }); + return; + } + this.mAbortRequests.put(paramInt, Boolean.valueOf(true)); + } + + public final boolean isRequestCancel(int paramInt) { + Boolean bool = (Boolean)this.mAbortRequests.get(paramInt); + return (bool != null && bool.booleanValue()); + } + + public static final class Companion { + private Companion() {} + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\netrequest\AbortRequestHolder.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/netrequest/FileLoadManager.java b/df_miniapp/classes/com/tt/miniapp/base/netrequest/FileLoadManager.java new file mode 100644 index 0000000..222351e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/netrequest/FileLoadManager.java @@ -0,0 +1,336 @@ +package com.tt.miniapp.base.netrequest; + +import android.net.Uri; +import android.text.TextUtils; +import android.util.SparseArray; +import com.a; +import com.bytedance.sandboxapp.protocol.service.d.a; +import com.bytedance.sandboxapp.protocol.service.request.entity.a; +import com.bytedance.sandboxapp.protocol.service.request.entity.b; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.RequestInceptUtil; +import com.tt.miniapp.net.NetBus; +import com.tt.miniapp.net.download.AbstractDownloadListener; +import com.tt.miniapp.net.download.DownloadManager; +import com.tt.miniapp.net.download.UploadManager; +import com.tt.miniapp.storage.filestorge.FileManager; +import com.tt.miniapp.util.ToolUtils; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.option.q.d; +import java.io.File; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import okhttp3.ae; +import org.json.JSONObject; + +public class FileLoadManager { + SparseArray downloadRequestList = new SparseArray(); + + public AbortRequestHolder mAbortRequestHolder = new AbortRequestHolder(); + + private String mFileDownloadDir = (new File(FileManager.inst().getTempDir(), "tma/downloadfile/")).getAbsolutePath(); + + private FileLoadManager() {} + + private Map generateDownloadRequestHeaderMap(a.d paramd) { + JSONObject jSONObject = paramd.c; + String str = paramd.b; + HashMap hashMap = new HashMap(); + if (jSONObject != null) { + Iterator iterator = jSONObject.keys(); + } else { + paramd = null; + } + if (paramd == null) + return (Map)hashMap; + while (paramd.hasNext()) { + String str1 = paramd.next(); + if (str1.equalsIgnoreCase("Referer")) { + hashMap.put(str1, RequestInceptUtil.getRequestReferer()); + continue; + } + if (str1.equalsIgnoreCase("Cookie")) { + int i = (AppbrandApplication.getInst().getAppInfo()).innertype; + boolean bool = true; + if (i != 1) + bool = false; + boolean bool1 = NetBus.isWhiteUrl(str); + if (bool && bool1) { + String str2 = HostProcessBridge.getLoginCookie(); + if (!TextUtils.isEmpty(str2)) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(jSONObject.optString(str1)); + stringBuilder.append("; "); + stringBuilder.append(str2); + hashMap.put(str1, stringBuilder.toString()); + continue; + } + } + } else if (str1.equalsIgnoreCase("User-Agent")) { + hashMap.put("User-Agent", ToolUtils.getCustomUA()); + continue; + } + hashMap.put(str1, jSONObject.optString(str1)); + } + return (Map)hashMap; + } + + public static FileLoadManager getInst() { + return Holder.sInstance; + } + + public void addDownloadRequest(a.d paramd, a.a parama) { + if (paramd == null) + return; + if (this.downloadRequestList.get(paramd.a) != null) + return; + this.downloadRequestList.put(paramd.a, paramd); + try { + doDownload(paramd, parama); + return; + } catch (Exception exception) { + AppBrandLogger.e("tma_FileLoadManager", new Object[] { "doDownload", exception }); + return; + } + } + + public void addUploadTask(final b.d requestTask, final b.a callback) { + if (requestTask == null) + return; + File file = new File(FileManager.inst().getRealFilePath(requestTask.d)); + boolean bool = FileManager.inst().canRead(file); + HashMap hashMap1 = null; + if (!bool) { + callbackFail(requestTask, callback, 1000, null); + return; + } + HashMap hashMap3 = new HashMap(); + if (requestTask.f != null) + try { + JSONObject jSONObject = requestTask.f; + Iterator iterator = jSONObject.keys(); + while (iterator.hasNext()) { + String str = iterator.next(); + hashMap3.put(str, jSONObject.optString(str)); + } + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "tma_FileLoadManager", exception.getStackTrace()); + } + hashMap3.put(requestTask.e, file); + if (requestTask.c != null) { + HashMap hashMap = new HashMap(); + try { + JSONObject jSONObject = requestTask.c; + Iterator iterator = jSONObject.keys(); + while (true) { + hashMap1 = hashMap; + if (iterator.hasNext()) { + String str = iterator.next(); + hashMap.put(str, jSONObject.optString(str)); + continue; + } + break; + } + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "tma_FileLoadManager", exception.getStackTrace()); + hashMap1 = hashMap; + } + } + HashMap hashMap2 = hashMap1; + if (requestTask.g) { + a a1 = (a)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(a.class); + hashMap2 = hashMap1; + if (a1 != null) { + Map map = a1.getRequestHeader(); + hashMap2 = hashMap1; + if (hashMap1 == null) + hashMap2 = new HashMap(); + hashMap2.putAll(map); + } + } + AppBrandLogger.d("tma_FileLoadManager", new Object[] { "upLoadFile ", "file ", file }); + UploadManager.upLoadFile(requestTask.b, hashMap2, hashMap3, new UploadManager.ReqProgressCallBack() { + public void onFail(int param1Int, Throwable param1Throwable) { + FileLoadManager.this.callbackFail(requestTask, callback, param1Int, param1Throwable); + } + + public void onProgress(long param1Long1, long param1Long2) { + int i = (int)(100L * param1Long2 / param1Long1); + AppBrandLogger.d("tma_FileLoadManager", new Object[] { "onProgress ", "total", Long.valueOf(param1Long1), "current", Long.valueOf(param1Long2) }); + if (callback != null) { + b.c c = new b.c(); + c.a = requestTask.a; + c.c = param1Long2; + c.d = param1Long1; + c.b = i; + callback.a(c); + } + } + + public void onSuccess(int param1Int, String param1String1, String param1String2) { + AppBrandLogger.d("tma_FileLoadManager", new Object[] { "onSuccess ", param1String1 }); + if (callback != null) { + b.b b = new b.b(); + b.b = requestTask.a; + b.a = true; + b.c = param1Int; + b.d = param1String1; + callback.a(b); + } + } + }requestTask.a); + } + + public void callbackFail(b.d paramd, b.a parama, int paramInt, Throwable paramThrowable) { + if (parama != null) { + b.b b = new b.b(); + b.b = paramd.a; + b.a = false; + b.f = paramThrowable; + if (paramInt != 1000) { + if (paramInt != 1001) { + b.e = "unknown error"; + } else { + b.e = "abort"; + } + } else { + b.e = "network error"; + } + parama.a(b); + } + } + + public void cancelDownloadTask(int paramInt) { + if ((a.d)this.downloadRequestList.get(paramInt) != null) { + this.mAbortRequestHolder.cancelRequest(paramInt); + this.downloadRequestList.delete(paramInt); + } + } + + public void cancelUploadTask(int paramInt) { + UploadManager.cancelUploadRequest(paramInt); + } + + void doDownload(a.d paramd, final a.a callback) throws Exception { + HashMap hashMap; + final int requestId = paramd.a; + final String url = paramd.b; + final String filePath = paramd.d; + final String dir = this.mFileDownloadDir; + final File fileDir = new File(str3); + if (!file.exists()) + file.mkdirs(); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(String.valueOf(System.currentTimeMillis())); + stringBuilder.append(i); + final String fileName = stringBuilder.toString(); + if (d.b()) { + Map map = generateDownloadRequestHeaderMap(paramd); + } else { + hashMap = new HashMap(); + } + if (paramd.e) { + a a1 = (a)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(a.class); + if (a1 != null) { + Map map = a1.getRequestHeader(); + if (map != null) + hashMap.putAll(map); + } + } + DownloadManager.get().asyncDownload(str1, hashMap, str3, str4, (DownloadManager.OnDownloadListener)new AbstractDownloadListener() { + public void onDownloadFailed(String param1String, Throwable param1Throwable) { + if (callback != null) { + a.b b = new a.b(); + b.b = requestId; + b.a = false; + b.f = param1String; + b.g = param1Throwable; + callback.a(b); + } + } + + public void onDownloadSuccess(ae param1ae) { + a.b b = new a.b(); + b.b = requestId; + try { + File file2 = new File(fileDir, fileName); + long l = file2.length(); + if (FileManager.inst().isUserDir(filePath) && FileManager.inst().isUserDirOverLimit(l)) + return; + String str3 = ""; + String str4 = Uri.parse(url).getPath(); + String str2 = str3; + if (!TextUtils.isEmpty(str4)) { + int i = str4.lastIndexOf("."); + str2 = str3; + if (i > 0) { + str2 = str4.substring(i); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(fileName); + stringBuilder.append(str2); + str2 = stringBuilder.toString(); + } + } + str3 = str2; + if (TextUtils.isEmpty(str2)) { + str4 = null; + if (param1ae.f != null) + str4 = param1ae.f.a("Content-Type"); + str3 = str2; + if (!TextUtils.isEmpty(str4)) { + str2 = str4.substring(str4.lastIndexOf("/") + 1); + str3 = a.a("%s.%s", new Object[] { this.val$fileName, str2 }); + } + } + File file1 = file2; + if (!TextUtils.isEmpty(str3)) { + file1 = new File(dir, str3); + file2.renameTo(file1); + } + String str1 = file1.getPath(); + b.a = true; + return; + } finally { + param1ae = null; + b.a = false; + b.g = (Throwable)param1ae; + callback.a(b); + } + } + + public void onDownloading(int param1Int, long param1Long1, long param1Long2) { + if (callback != null) { + a.c c = new a.c(); + c.a = requestId; + if (param1Int <= 100) { + c.c = param1Long1; + c.d = param1Long2; + c.b = param1Int; + } + callback.a(c); + } + } + }new DownloadManager.TaskInfo() { + public void cancel() { + FileLoadManager.this.mAbortRequestHolder.cancelRequest(requestId); + } + + public boolean isCancel() { + return FileLoadManager.this.mAbortRequestHolder.isRequestCancel(requestId); + } + }); + } + + static class Holder { + static FileLoadManager sInstance = new FileLoadManager(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\netrequest\FileLoadManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/netrequest/NetRequestService.java b/df_miniapp/classes/com/tt/miniapp/base/netrequest/NetRequestService.java new file mode 100644 index 0000000..99b3aad --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/netrequest/NetRequestService.java @@ -0,0 +1,100 @@ +package com.tt.miniapp.base.netrequest; + +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.request.a; +import com.bytedance.sandboxapp.protocol.service.request.entity.HttpRequest; +import com.bytedance.sandboxapp.protocol.service.request.entity.a; +import com.bytedance.sandboxapp.protocol.service.request.entity.b; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.manager.NetManager; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.option.q.i; + +public class NetRequestService implements a { + private final MiniAppContext mContext; + + private final NetManager mNetManger; + + public NetRequestService(MiniAppContext paramMiniAppContext) { + this.mContext = paramMiniAppContext; + this.mNetManger = NetManager.getInst(); + } + + private i convertToTmaRequest(HttpRequest.RequestTask paramRequestTask) { + i i = new i(paramRequestTask.b, paramRequestTask.c, paramRequestTask.i); + i.a(paramRequestTask.j); + return i; + } + + public void addDownloadRequest(a.d paramd, a.a parama) { + FileLoadManager.getInst().addDownloadRequest(paramd, parama); + } + + public void addHttpRequest(HttpRequest.RequestTask paramRequestTask, HttpRequest.a parama) { + RequestManagerV2.getInst().addRequest(paramRequestTask, parama); + } + + public void addUploadRequest(b.d paramd, b.a parama) { + FileLoadManager.getInst().addUploadTask(paramd, parama); + } + + public MiniAppContext getContext() { + return this.mContext; + } + + public void onDestroy() {} + + public void operateDownloadRequest(int paramInt, String paramString) { + byte b; + if (paramString.hashCode() == 92611376 && paramString.equals("abort")) { + b = 0; + } else { + b = -1; + } + if (b != 0) + return; + FileLoadManager.getInst().cancelDownloadTask(paramInt); + } + + public void operateHttpRequest(int paramInt, String paramString) { + byte b; + if (paramString.hashCode() == 92611376 && paramString.equals("abort")) { + b = 0; + } else { + b = -1; + } + if (b != 0) + return; + RequestManagerV2.getInst().removeRequest(Integer.valueOf(paramInt)); + } + + public void operateUploadRequest(int paramInt, String paramString) { + byte b; + if (paramString.hashCode() == 92611376 && paramString.equals("abort")) { + b = 0; + } else { + b = -1; + } + if (b != 0) + return; + FileLoadManager.getInst().cancelUploadTask(paramInt); + } + + public HttpRequest.RequestResult syncHttpRequest(HttpRequest.RequestTask paramRequestTask) { + try { + return RequestManagerV2.getInst().convertToRequestResult(this.mNetManger.request(convertToTmaRequest(paramRequestTask)), 0, null); + } finally { + Exception exception = null; + AppBrandLogger.e("NetRequestService", new Object[] { "syncSdkRequest error", exception }); + HttpRequest.RequestResult requestResult = new HttpRequest.RequestResult(paramRequestTask.a); + requestResult.b = false; + requestResult.i = exception; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\netrequest\NetRequestService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/netrequest/RequestManagerV2.java b/df_miniapp/classes/com/tt/miniapp/base/netrequest/RequestManagerV2.java new file mode 100644 index 0000000..230df60 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/netrequest/RequestManagerV2.java @@ -0,0 +1,775 @@ +package com.tt.miniapp.base.netrequest; + +import android.app.Application; +import android.content.Context; +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; +import android.util.SparseArray; +import com.bytedance.sandboxapp.protocol.service.d.a; +import com.bytedance.sandboxapp.protocol.service.request.entity.HttpRequest; +import com.storage.async.Action; +import com.storage.async.Schedulers; +import com.tt.miniapp.AppConfig; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.RequestInceptUtil; +import com.tt.miniapp.debug.DebugManager; +import com.tt.miniapp.manager.PreTTRequestManager; +import com.tt.miniapp.net.NetBus; +import com.tt.miniapp.process.ServiceBindManager; +import com.tt.miniapp.process.bridge.InnerHostProcessBridge; +import com.tt.miniapp.settings.data.SettingsDAO; +import com.tt.miniapp.settings.keys.Settings; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.util.StringUtils; +import com.tt.miniapp.util.ToolUtils; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.util.ProcessUtil; +import com.tt.miniapphost.util.TimeMeter; +import com.tt.option.q.b; +import com.tt.option.q.d; +import com.tt.option.q.h; +import com.tt.option.q.i; +import com.tt.option.q.j; +import java.io.UnsupportedEncodingException; +import java.lang.ref.WeakReference; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Vector; +import java.util.concurrent.ConcurrentHashMap; +import okhttp3.ac; +import okhttp3.ad; +import okhttp3.e; +import okhttp3.w; +import org.json.JSONObject; + +public class RequestManagerV2 { + public static ConcurrentHashMap requestedDomains = new ConcurrentHashMap(); + + private Boolean isInnerApp = null; + + public SparseArray requests = new SparseArray(); + + private Vector taskIds = new Vector(); + + private RequestManagerV2() {} + + private void addToRequests(int paramInt, i parami) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield requests : Landroid/util/SparseArray; + // 6: iload_1 + // 7: aload_2 + // 8: invokevirtual put : (ILjava/lang/Object;)V + // 11: aload_0 + // 12: monitorexit + // 13: return + // 14: astore_2 + // 15: aload_0 + // 16: monitorexit + // 17: aload_2 + // 18: athrow + // Exception table: + // from to target type + // 2 11 14 finally + } + + private String getDataString(HashMap paramHashMap) throws UnsupportedEncodingException { + StringBuilder stringBuilder = new StringBuilder(); + Iterator iterator = paramHashMap.entrySet().iterator(); + boolean bool = true; + while (iterator.hasNext()) { + Map.Entry entry = iterator.next(); + if (bool) { + bool = false; + } else { + stringBuilder.append("&"); + } + stringBuilder.append(URLEncoder.encode((String)entry.getKey(), "UTF-8")); + stringBuilder.append("="); + stringBuilder.append(URLEncoder.encode((String)entry.getValue(), "UTF-8")); + } + return stringBuilder.toString(); + } + + public static RequestManagerV2 getInst() { + return Holder.requestManager; + } + + private String getMpId() { + AppInfoEntity appInfoEntity = AppbrandApplicationImpl.getInst().getAppInfo(); + return (appInfoEntity != null) ? ((appInfoEntity.appId == null) ? "" : appInfoEntity.appId) : ""; + } + + private long getRequestTimeout() { + AppConfig appConfig = AppbrandApplicationImpl.getInst().getAppConfig(); + return (appConfig != null) ? (appConfig.getNetworkTimeout()).request : 60000L; + } + + private boolean isInnerApp() { + if (this.isInnerApp == null) { + Application application = AppbrandContext.getInst().getApplicationContext(); + Settings settings = Settings.TT_TMA_PROXY_LIST; + boolean bool2 = false; + List list = SettingsDAO.getListString((Context)application, new Enum[] { (Enum)settings, (Enum)Settings.TmaProxyList.APP_LIST }); + String str = getMpId(); + boolean bool1 = bool2; + if (!TextUtils.isEmpty(str)) { + bool1 = bool2; + if (list.contains(str)) + bool1 = true; + } + this.isInnerApp = Boolean.valueOf(bool1); + } + return this.isInnerApp.booleanValue(); + } + + private e makeCall(boolean paramBoolean, ac.a parama, long paramLong) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: getstatic com/tt/miniapp/net/NetBus.okHttpClient : Lokhttp3/y; + // 5: invokevirtual c : ()Lokhttp3/y$a; + // 8: lload_3 + // 9: getstatic java/util/concurrent/TimeUnit.MILLISECONDS : Ljava/util/concurrent/TimeUnit; + // 12: invokevirtual a : (JLjava/util/concurrent/TimeUnit;)Lokhttp3/y$a; + // 15: lload_3 + // 16: getstatic java/util/concurrent/TimeUnit.MILLISECONDS : Ljava/util/concurrent/TimeUnit; + // 19: invokevirtual c : (JLjava/util/concurrent/TimeUnit;)Lokhttp3/y$a; + // 22: lload_3 + // 23: getstatic java/util/concurrent/TimeUnit.MILLISECONDS : Ljava/util/concurrent/TimeUnit; + // 26: invokevirtual b : (JLjava/util/concurrent/TimeUnit;)Lokhttp3/y$a; + // 29: astore #5 + // 31: iload_1 + // 32: ifeq -> 44 + // 35: aload #5 + // 37: invokestatic getInstance : ()Lcom/tt/miniapp/net/httpdns/TTHttpDns; + // 40: invokevirtual a : (Lokhttp3/o;)Lokhttp3/y$a; + // 43: pop + // 44: aload #5 + // 46: invokevirtual a : ()Lokhttp3/y; + // 49: aload_2 + // 50: invokevirtual c : ()Lokhttp3/ac; + // 53: invokevirtual a : (Lokhttp3/ac;)Lokhttp3/e; + // 56: astore_2 + // 57: aload_0 + // 58: monitorexit + // 59: aload_2 + // 60: areturn + // 61: astore_2 + // 62: aload_0 + // 63: monitorexit + // 64: aload_2 + // 65: athrow + // Exception table: + // from to target type + // 2 31 61 finally + // 35 44 61 finally + // 44 57 61 finally + } + + private j requestWithOkHttp(i parami, boolean paramBoolean) { + j j = new j(); + try { + String str1 = parami.f(); + ac.a a = new ac.a(); + a.a(str1); + String str2 = parami.c; + boolean bool = str2.equals("GET"); + int k = 0; + if (!bool) { + str1 = parami.e(); + if (str1 != null) { + w w = w.a(str1); + } else { + str1 = null; + } + byte[] arrayOfByte2 = parami.i; + byte[] arrayOfByte1 = arrayOfByte2; + if (arrayOfByte2 == null) + arrayOfByte1 = new byte[0]; + a.a(str2, ad.create((w)str1, arrayOfByte1)); + } + for (Map.Entry entry : parami.f.entrySet()) { + String str3 = (String)entry.getKey(); + String str4 = (String)entry.getValue(); + a.b(str3, str4); + if (str3.equalsIgnoreCase("cookie") && !TextUtils.isEmpty(str4)) + NetBus.requestCookie.set(str4); + } + e e = makeCall(paramBoolean, a, parami.l); + } finally { + parami = null; + j.f = (Throwable)parami; + } + NetBus.requestCookie.remove(); + return j; + } + + private Map setupHeaders(String paramString, JSONObject paramJSONObject, boolean paramBoolean1, boolean paramBoolean2) { + HashMap hashMap = new HashMap(); + List
list = parseHeader(paramJSONObject); + boolean bool1 = NetBus.isWhiteUrl(paramString); + boolean bool = false; + if (paramBoolean2 || (bool1 && ProcessUtil.isMiniappProcess() && (AppbrandApplication.getInst().getAppInfo()).innertype == 1)) { + paramString = HostProcessBridge.getLoginCookie(); + AppBrandLogger.d("RequestManagerV2", new Object[] { "cookie ", paramString }); + } else { + paramString = null; + } + for (Header header : list) { + if (!header.key.equalsIgnoreCase("User-Agent") && !header.key.equalsIgnoreCase("Referer")) { + if (bool1 && header.key.equalsIgnoreCase("Cookie")) { + String str = header.value; + if (TextUtils.isEmpty(str)) { + if (!TextUtils.isEmpty(paramString)) + hashMap.put(header.key, paramString); + } else { + if (!TextUtils.isEmpty(paramString)) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(str); + stringBuilder.append("; "); + stringBuilder.append(paramString); + str = stringBuilder.toString(); + } + if (!TextUtils.isEmpty(str)) + hashMap.put(header.key, str); + } + bool = true; + continue; + } + hashMap.put(header.key, header.value); + } + } + if (!bool && bool1 && !TextUtils.isEmpty(paramString)) + hashMap.put("Cookie", paramString); + hashMap.put("User-Agent", ToolUtils.getCustomUA()); + hashMap.put("referer", RequestInceptUtil.getRequestReferer()); + if (paramBoolean1) { + a a = (a)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(a.class); + if (a != null) + hashMap.putAll(a.getRequestHeader()); + } + return (Map)hashMap; + } + + public void addRequest(final HttpRequest.RequestTask requestTask, final HttpRequest.a callback) { + this.taskIds.add(Integer.valueOf(requestTask.a)); + final TimeMeter beginRequestTime = TimeMeter.newAndStart(); + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + // Byte code: + // 0: ldc 'RequestManagerV2' + // 2: iconst_2 + // 3: anewarray java/lang/Object + // 6: dup + // 7: iconst_0 + // 8: ldc 'request:' + // 10: aastore + // 11: dup + // 12: iconst_1 + // 13: aload_0 + // 14: getfield val$requestTask : Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestTask; + // 17: aastore + // 18: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 21: aload_0 + // 22: getfield val$requestTask : Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestTask; + // 25: getfield b : Ljava/lang/String; + // 28: invokestatic parse : (Ljava/lang/String;)Landroid/net/Uri; + // 31: invokevirtual getHost : ()Ljava/lang/String; + // 34: astore #4 + // 36: getstatic com/tt/miniapp/base/netrequest/RequestManagerV2.requestedDomains : Ljava/util/concurrent/ConcurrentHashMap; + // 39: aload #4 + // 41: invokevirtual containsKey : (Ljava/lang/Object;)Z + // 44: istore_1 + // 45: iload_1 + // 46: iconst_1 + // 47: ixor + // 48: istore_1 + // 49: iload_1 + // 50: ifeq -> 66 + // 53: getstatic com/tt/miniapp/base/netrequest/RequestManagerV2.requestedDomains : Ljava/util/concurrent/ConcurrentHashMap; + // 56: aload #4 + // 58: lconst_0 + // 59: invokestatic valueOf : (J)Ljava/lang/Long; + // 62: invokevirtual put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 65: pop + // 66: aload_0 + // 67: getfield this$0 : Lcom/tt/miniapp/base/netrequest/RequestManagerV2; + // 70: aload_0 + // 71: getfield val$requestType : Ljava/lang/String; + // 74: aload_0 + // 75: getfield val$requestTask : Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestTask; + // 78: invokevirtual requestSync : (Ljava/lang/String;Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestTask;)Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestResult; + // 81: astore #4 + // 83: aload_0 + // 84: getfield val$beginRequestTime : Lcom/tt/miniapphost/util/TimeMeter; + // 87: invokevirtual stop : ()J + // 90: lstore_2 + // 91: aload_0 + // 92: getfield this$0 : Lcom/tt/miniapp/base/netrequest/RequestManagerV2; + // 95: getfield requests : Landroid/util/SparseArray; + // 98: aload_0 + // 99: getfield val$requestTask : Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestTask; + // 102: getfield a : I + // 105: invokevirtual get : (I)Ljava/lang/Object; + // 108: checkcast com/tt/option/q/b + // 111: astore #5 + // 113: aload #5 + // 115: ifnull -> 157 + // 118: aload #5 + // 120: invokeinterface b : ()Z + // 125: ifeq -> 157 + // 128: aload_0 + // 129: getfield val$callback : Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$a; + // 132: aload_0 + // 133: getfield val$requestTask : Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestTask; + // 136: invokeinterface onRequestAbort : (Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestTask;)V + // 141: aload #4 + // 143: iconst_0 + // 144: putfield b : Z + // 147: aload #4 + // 149: ldc 'abort' + // 151: putfield h : Ljava/lang/String; + // 154: goto -> 168 + // 157: aload_0 + // 158: getfield val$callback : Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$a; + // 161: aload #4 + // 163: invokeinterface onRequestFinish : (Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestResult;)V + // 168: goto -> 251 + // 171: astore #4 + // 173: goto -> 180 + // 176: astore #4 + // 178: iconst_0 + // 179: istore_1 + // 180: ldc 'RequestManagerV2' + // 182: iconst_2 + // 183: anewarray java/lang/Object + // 186: dup + // 187: iconst_0 + // 188: ldc 'addRequest' + // 190: aastore + // 191: dup + // 192: iconst_1 + // 193: aload #4 + // 195: aastore + // 196: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 199: aload_0 + // 200: getfield val$beginRequestTime : Lcom/tt/miniapphost/util/TimeMeter; + // 203: invokevirtual stop : ()J + // 206: lstore_2 + // 207: new com/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestResult + // 210: dup + // 211: aload_0 + // 212: getfield val$requestTask : Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestTask; + // 215: getfield a : I + // 218: invokespecial : (I)V + // 221: astore #5 + // 223: aload #5 + // 225: iconst_0 + // 226: putfield b : Z + // 229: aload #5 + // 231: aload #4 + // 233: putfield i : Ljava/lang/Throwable; + // 236: aload_0 + // 237: getfield val$callback : Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$a; + // 240: aload #5 + // 242: invokeinterface onRequestFinish : (Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestResult;)V + // 247: aload #5 + // 249: astore #4 + // 251: aload_0 + // 252: getfield this$0 : Lcom/tt/miniapp/base/netrequest/RequestManagerV2; + // 255: aload #4 + // 257: getfield b : Z + // 260: iload_1 + // 261: aload_0 + // 262: getfield val$requestType : Ljava/lang/String; + // 265: lload_2 + // 266: aload_0 + // 267: getfield val$requestTask : Lcom/bytedance/sandboxapp/protocol/service/request/entity/HttpRequest$RequestTask; + // 270: getfield b : Ljava/lang/String; + // 273: aload #4 + // 275: getfield h : Ljava/lang/String; + // 278: aload #4 + // 280: getfield i : Ljava/lang/Throwable; + // 283: invokevirtual reportTTRequestResult : (ZZLjava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 286: return + // Exception table: + // from to target type + // 0 45 176 finally + // 53 66 171 finally + // 66 113 171 finally + // 118 154 171 finally + // 157 168 171 finally + } + }, Schedulers.longIO()); + } + + public HttpRequest.RequestResult convertToRequestResult(j paramj, int paramInt, String paramString) throws Exception { + HttpRequest.RequestResult requestResult; + JSONObject jSONObject = new JSONObject(); + ArrayList arrayList = paramj.b(); + if (arrayList != null) { + if (arrayList.isEmpty() && paramj.b >= 400) + arrayList.add(new h("code", String.valueOf(paramj.b))); + for (h h : arrayList) { + String str1 = h.a; + String str2 = h.b; + if (jSONObject.has(str1)) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(jSONObject.optString(str1)); + stringBuilder.append(","); + stringBuilder.append(str2); + jSONObject.put(str1, stringBuilder.toString()); + continue; + } + jSONObject.put(str1, str2); + } + } + if (paramj.f != null) { + if (paramj.b >= 400) { + requestResult = new HttpRequest.RequestResult(paramInt, true, paramj.b, paramj.a(), jSONObject, paramString); + } else { + requestResult = new HttpRequest.RequestResult(paramInt, false, paramj.b, "", jSONObject, (String)requestResult); + } + requestResult.h = paramj.c; + return requestResult; + } + if (paramj.e != null) { + byte[] arrayOfByte = paramj.e; + } else if (paramj.d != null) { + byte[] arrayOfByte = paramj.d.getBytes(); + } else { + arrayList = null; + } + if (arrayList != null) { + if (TextUtils.equals((CharSequence)requestResult, "arraybuffer")) + return new HttpRequest.RequestResult(paramInt, true, paramj.b, (byte[])arrayList, jSONObject, (String)requestResult); + String str = StringUtils.newString((byte[])arrayList); + return new HttpRequest.RequestResult(paramInt, true, paramj.b, str, jSONObject, (String)requestResult); + } + return new HttpRequest.RequestResult(paramInt, true, paramj.b, "", jSONObject, (String)requestResult); + } + + public j doRequest(i parami, String paramString) { + // Byte code: + // 0: aload_2 + // 1: invokevirtual hashCode : ()I + // 4: istore_3 + // 5: iload_3 + // 6: ldc_w 110693149 + // 9: if_icmpeq -> 37 + // 12: iload_3 + // 13: ldc_w 1242648481 + // 16: if_icmpeq -> 22 + // 19: goto -> 52 + // 22: aload_2 + // 23: ldc_w 'httpdns' + // 26: invokevirtual equals : (Ljava/lang/Object;)Z + // 29: ifeq -> 52 + // 32: iconst_0 + // 33: istore_3 + // 34: goto -> 54 + // 37: aload_2 + // 38: ldc_w 'ttnet' + // 41: invokevirtual equals : (Ljava/lang/Object;)Z + // 44: ifeq -> 52 + // 47: iconst_1 + // 48: istore_3 + // 49: goto -> 54 + // 52: iconst_m1 + // 53: istore_3 + // 54: iload_3 + // 55: ifeq -> 78 + // 58: iload_3 + // 59: iconst_1 + // 60: if_icmpeq -> 70 + // 63: aload_0 + // 64: aload_1 + // 65: iconst_0 + // 66: invokespecial requestWithOkHttp : (Lcom/tt/option/q/i;Z)Lcom/tt/option/q/j; + // 69: areturn + // 70: invokestatic getInst : ()Lcom/tt/miniapp/manager/NetManager; + // 73: aload_1 + // 74: invokevirtual requestRaw : (Lcom/tt/option/q/i;)Lcom/tt/option/q/j; + // 77: areturn + // 78: aload_0 + // 79: aload_1 + // 80: iconst_1 + // 81: invokespecial requestWithOkHttp : (Lcom/tt/option/q/i;Z)Lcom/tt/option/q/j; + // 84: areturn + } + + List
parseHeader(JSONObject paramJSONObject) { + ArrayList
arrayList = new ArrayList(); + if (paramJSONObject != null) { + Iterator iterator = paramJSONObject.keys(); + if (iterator != null) + while (iterator.hasNext()) { + String str = iterator.next(); + arrayList.add(new Header(str, paramJSONObject.optString(str))); + } + } + return arrayList; + } + + public void removeRequest(Integer paramInteger) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield requests : Landroid/util/SparseArray; + // 6: aload_1 + // 7: invokevirtual intValue : ()I + // 10: invokevirtual get : (I)Ljava/lang/Object; + // 13: ifnull -> 35 + // 16: aload_0 + // 17: getfield requests : Landroid/util/SparseArray; + // 20: aload_1 + // 21: invokevirtual intValue : ()I + // 24: invokevirtual get : (I)Ljava/lang/Object; + // 27: checkcast com/tt/option/q/b + // 30: invokeinterface a : ()V + // 35: aload_0 + // 36: getfield taskIds : Ljava/util/Vector; + // 39: aload_1 + // 40: invokevirtual remove : (Ljava/lang/Object;)Z + // 43: pop + // 44: ldc_w 'RequestManagerV2' + // 47: iconst_1 + // 48: anewarray java/lang/Object + // 51: dup + // 52: iconst_0 + // 53: aload_0 + // 54: getfield requests : Landroid/util/SparseArray; + // 57: aload_1 + // 58: invokevirtual intValue : ()I + // 61: invokevirtual get : (I)Ljava/lang/Object; + // 64: aastore + // 65: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 68: aload_0 + // 69: monitorexit + // 70: return + // 71: astore_1 + // 72: aload_0 + // 73: monitorexit + // 74: aload_1 + // 75: athrow + // Exception table: + // from to target type + // 2 35 71 finally + // 35 68 71 finally + } + + public void reportTTRequestResult(boolean paramBoolean1, boolean paramBoolean2, String paramString1, long paramLong, String paramString2, String paramString3, Throwable paramThrowable) { + String str1; + if (Math.random() > 0.05D && !paramBoolean2) + return; + boolean bool = TextUtils.isEmpty(paramString2); + String str2 = ""; + if (!bool) { + str1 = paramString2; + if (paramString2.contains("?")) + str1 = paramString2.substring(0, paramString2.indexOf("?")); + } else { + str1 = ""; + } + JSONObject jSONObject = new JSONObject(); + try { + boolean bool1; + jSONObject.put("error_msg", paramString3); + paramString2 = str2; + if (paramThrowable != null) + paramString2 = Log.getStackTraceString(paramThrowable); + jSONObject.put("error_stack", paramString2); + jSONObject.put("url_path", str1); + jSONObject.put("request_type", paramString1); + jSONObject.put("first_domain_req", paramBoolean2); + AppInfoEntity appInfoEntity = AppbrandApplication.getInst().getAppInfo(); + if (appInfoEntity != null && appInfoEntity.appId != null && appInfoEntity.version != null) { + jSONObject.put("app_id", appInfoEntity.appId); + jSONObject.put("app_version", appInfoEntity.version); + } + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("duration", paramLong); + if (!paramBoolean1) { + bool1 = true; + } else { + bool1 = false; + } + jSONObject.put("net_type", d.b((Context)AppbrandContext.getInst().getApplicationContext())); + jSONObject.put("net_available", d.a((Context)AppbrandContext.getInst().getApplicationContext())); + return; + } finally { + paramString1 = null; + AppBrandLogger.e("RequestManagerV2", new Object[] { paramString1 }); + } + } + + public HttpRequest.RequestResult requestSync(String paramString, HttpRequest.RequestTask paramRequestTask) throws Exception { + String str1; + j j; + boolean bool1 = paramRequestTask.l; + boolean bool2 = ProcessUtil.isMiniappProcess(); + String str2 = paramString; + if (bool1) { + if (bool2 && !HostDependManager.getInst().supportRequestCommonParamsInChildProcess()) { + ServiceBindManager.getInstance().bindHostService(); + HttpRequest.RequestResult requestResult2 = InnerHostProcessBridge.httpRequestWithCommonParam(paramRequestTask); + HttpRequest.RequestResult requestResult1 = requestResult2; + if (requestResult2 == null) { + ServiceBindManager.getInstance().bindHostService(); + requestResult1 = new HttpRequest.RequestResult(paramRequestTask.a); + requestResult1.h = "附加通用参数的内部网络请求失败"; + } + return requestResult1; + } + str2 = "ttnet"; + } + int k = paramRequestTask.a; + paramString = paramRequestTask.b; + String str3 = paramString; + if (bool2) { + str3 = paramString; + if (isInnerApp()) + str3 = Uri.parse(paramRequestTask.b).buildUpon().appendQueryParameter("device_id", d.a()).appendQueryParameter("aid", AppbrandContext.getInst().getInitParams().getAppId()).build().toString(); + } + String str5 = paramRequestTask.c; + String str4 = paramRequestTask.h; + JSONObject jSONObject2 = paramRequestTask.g; + JSONObject jSONObject1 = jSONObject2; + if ((DebugManager.getInst()).mRemoteDebugEnable) { + jSONObject1 = jSONObject2; + if (!paramRequestTask.i) { + jSONObject1 = jSONObject2; + if (jSONObject2 == null) + jSONObject1 = new JSONObject(); + jSONObject1.put("remoteDebug", "request"); + } + } + Map map = setupHeaders(str3, jSONObject1, paramRequestTask.k, bool1); + i i1 = new i(str3, str5, bool1); + jSONObject1 = null; + for (Map.Entry entry : map.entrySet()) { + String str = (String)entry.getKey(); + str3 = (String)entry.getValue(); + i1.a((String)entry.getKey(), (String)entry.getValue()); + if (str.equalsIgnoreCase("content-type")) + str1 = str3; + } + long l = 60000L; + if (bool2) + l = getRequestTimeout(); + i1.k = l; + i1.l = l; + i1.j = l; + if (str1 != null) + i1.d = str1; + int i = str5.hashCode(); + boolean bool = true; + switch (i) { + default: + i = -1; + break; + case 2012838315: + if (str5.equals("DELETE")) { + i = 3; + break; + } + case 1669334218: + if (str5.equals("CONNECT")) { + i = 5; + break; + } + case 80083237: + if (str5.equals("TRACE")) { + i = 4; + break; + } + case 2461856: + if (str5.equals("POST")) { + i = 1; + break; + } + case 79599: + if (str5.equals("PUT")) { + i = 2; + break; + } + case -531492226: + if (str5.equals("OPTIONS")) { + i = 0; + break; + } + } + if (i == 0 || i == 1 || i == 2 || i == 3 || i == 4 || i == 5) { + byte[] arrayOfByte; + if (paramRequestTask.f != null) { + arrayOfByte = paramRequestTask.f; + } else if (paramRequestTask.e == null) { + arrayOfByte = new byte[0]; + } else { + arrayOfByte = paramRequestTask.e.getBytes(); + } + i1.i = arrayOfByte; + i1.c = str5; + } + addToRequests(k, i1); + if (paramRequestTask.d) { + j = PreTTRequestManager.getFromCacheIfMatched(i1); + if (j != null) { + i = bool; + } else { + i = 0; + j = doRequest(i1, str2); + } + } else { + i = -1; + j = doRequest(i1, str2); + } + HttpRequest.RequestResult requestResult = convertToRequestResult(j, k, str4); + requestResult.j = i; + requestResult.i = j.f; + return requestResult; + } + + public static class Header { + String key; + + String value; + + public Header(String param1String1, String param1String2) { + this.key = param1String1; + this.value = param1String2; + } + + public String getName() { + return this.key; + } + + public String getValue() { + return this.value; + } + } + + static class Holder { + static RequestManagerV2 requestManager = new RequestManagerV2(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\netrequest\RequestManagerV2.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/report/AppLogReportService.java b/df_miniapp/classes/com/tt/miniapp/base/report/AppLogReportService.java new file mode 100644 index 0000000..9abc9e5 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/report/AppLogReportService.java @@ -0,0 +1,24 @@ +package com.tt.miniapp.base.report; + +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.n.a; + +public final class AppLogReportService implements a { + private final a context; + + public AppLogReportService(a parama) { + this.context = parama; + } + + public final a getContext() { + return this.context; + } + + public final void onDestroy() {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\report\AppLogReportService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/report/MonitorReportService.java b/df_miniapp/classes/com/tt/miniapp/base/report/MonitorReportService.java new file mode 100644 index 0000000..9b22df1 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/report/MonitorReportService.java @@ -0,0 +1,32 @@ +package com.tt.miniapp.base.report; + +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.n.b; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import d.f.b.l; +import org.json.JSONObject; + +public final class MonitorReportService implements b { + private final a context; + + public MonitorReportService(a parama) { + this.context = parama; + } + + public final a getContext() { + return this.context; + } + + public final void onDestroy() {} + + public final void reportInvokeApiFail(int paramInt, JSONObject paramJSONObject) { + l.b(paramJSONObject, "param"); + AppBrandMonitor.statusRate("mp_invoke_api_failed", 7000, paramJSONObject); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\report\MonitorReportService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/thread/ThreadManager.java b/df_miniapp/classes/com/tt/miniapp/base/thread/ThreadManager.java new file mode 100644 index 0000000..8ff8471 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/thread/ThreadManager.java @@ -0,0 +1,83 @@ +package com.tt.miniapp.base.thread; + +import android.os.Handler; +import android.os.Looper; +import d.f; +import d.f.a.a; +import d.f.b.l; +import d.f.b.m; +import d.f.b.u; +import d.f.b.v; +import d.f.b.x; +import d.g; +import d.k.d; +import d.k.h; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +public final class ThreadManager { + public static final ThreadManager INSTANCE = new ThreadManager(); + + private static final f mExecutor$delegate; + + private static final f mUihandler$delegate = g.a(ThreadManager$mUihandler$2.INSTANCE); + + static { + mExecutor$delegate = g.a(ThreadManager$mExecutor$2.INSTANCE); + } + + private final ExecutorService getMExecutor() { + return (ExecutorService)mExecutor$delegate.getValue(); + } + + private final Handler getMUihandler() { + return (Handler)mUihandler$delegate.getValue(); + } + + public final void execute(Runnable paramRunnable) { + l.b(paramRunnable, "runnable"); + getMExecutor().execute(paramRunnable); + } + + public final void postInUI(Runnable paramRunnable) { + l.b(paramRunnable, "runnable"); + getMUihandler().post(paramRunnable); + } + + public final void postInUIDelayed(Runnable paramRunnable, long paramLong) { + l.b(paramRunnable, "runnable"); + getMUihandler().postDelayed(paramRunnable, paramLong); + } + + static final class ThreadManager$mExecutor$2 extends m implements a { + public static final ThreadManager$mExecutor$2 INSTANCE = new ThreadManager$mExecutor$2(); + + ThreadManager$mExecutor$2() { + super(0); + } + + public final ThreadPoolExecutor invoke() { + return new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), 2147483647, 60L, TimeUnit.SECONDS, new SynchronousQueue()); + } + } + + static final class ThreadManager$mUihandler$2 extends m implements a { + public static final ThreadManager$mUihandler$2 INSTANCE = new ThreadManager$mUihandler$2(); + + ThreadManager$mUihandler$2() { + super(0); + } + + public final Handler invoke() { + return new Handler(Looper.getMainLooper()); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\base\thread\ThreadManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/ui/statusbar/StatusBarHeightChangeListener.java b/df_miniapp/classes/com/tt/miniapp/base/ui/statusbar/StatusBarHeightChangeListener.java new file mode 100644 index 0000000..ef96611 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/ui/statusbar/StatusBarHeightChangeListener.java @@ -0,0 +1,11 @@ +package com.tt.miniapp.base.ui.statusbar; + +public interface StatusBarHeightChangeListener { + void onStatusBarHeightChange(int paramInt); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\ui\statusbar\StatusBarHeightChangeListener.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/ui/statusbar/StatusBarManager.java b/df_miniapp/classes/com/tt/miniapp/base/ui/statusbar/StatusBarManager.java new file mode 100644 index 0000000..34ddeeb --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/ui/statusbar/StatusBarManager.java @@ -0,0 +1,162 @@ +package com.tt.miniapp.base.ui.statusbar; + +import android.app.Activity; +import android.content.Context; +import android.os.Build; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import com.tt.miniapp.base.utils.CompatibilitySupport; +import java.lang.ref.WeakReference; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.HashSet; +import java.util.Iterator; + +public class StatusBarManager { + private static volatile boolean isInited; + + public static HashSet> listeners = new HashSet>(); + + public static volatile int statusBarHeight = 0; + + static { + isInited = false; + } + + public static void dispatchStatusBarHeightChange(int paramInt) { + if (statusBarHeight != paramInt) { + statusBarHeight = paramInt; + for (WeakReference weakReference : listeners) { + if (weakReference != null) { + StatusBarHeightChangeListener statusBarHeightChangeListener = weakReference.get(); + if (statusBarHeightChangeListener != null) + statusBarHeightChangeListener.onStatusBarHeightChange(statusBarHeight); + } + } + } + } + + public static int getStatusBarHeight(Context paramContext) { + int i = paramContext.getResources().getIdentifier("status_bar_height", "dimen", "android"); + if (i > 0) { + i = paramContext.getResources().getDimensionPixelSize(i); + } else { + i = 0; + } + int j = i; + if (i == 0) + try { + Class clazz = Class.forName("com.android.internal.R$dimen"); + Object object = clazz.newInstance(); + return paramContext.getResources().getDimensionPixelSize(j); + } finally { + paramContext = null; + } + return j; + } + + public static void init(Context paramContext) { + if (isInited) + return; + if (Build.VERSION.SDK_INT >= 19) + statusBarHeight = getStatusBarHeight(paramContext); + isInited = true; + } + + public static void registerStatusBarHeightChangeListener(StatusBarHeightChangeListener paramStatusBarHeightChangeListener) { + for (WeakReference weakReference1 : listeners) { + if (weakReference1 != null) { + StatusBarHeightChangeListener statusBarHeightChangeListener = weakReference1.get(); + if (statusBarHeightChangeListener != null && statusBarHeightChangeListener == paramStatusBarHeightChangeListener) + return; + } + } + WeakReference weakReference = new WeakReference(paramStatusBarHeightChangeListener); + listeners.add(weakReference); + paramStatusBarHeightChangeListener.onStatusBarHeightChange(statusBarHeight); + } + + public static boolean setStatusBarDarkMode(boolean paramBoolean, Activity paramActivity) { + WindowManager.LayoutParams layoutParams; + int i; + boolean bool2; + Method method; + Window window = paramActivity.getWindow(); + if (Build.VERSION.SDK_INT >= 23) { + View view = window.getDecorView(); + int j = view.getSystemUiVisibility(); + if (paramBoolean) { + j |= 0x2000; + } else { + j &= 0xFFFFDFFF; + } + view.setSystemUiVisibility(j); + bool2 = true; + } else { + bool2 = false; + } + if (CompatibilitySupport.isXiaomi()) { + Class clazz = paramActivity.getWindow().getClass(); + try { + Class clazz1 = Class.forName("android.view.MiuiWindowManager$LayoutParams"); + i = clazz1.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE").getInt(clazz1); + method = clazz.getMethod("setExtraFlags", new Class[] { int.class, int.class }); + Window window1 = paramActivity.getWindow(); + if (paramBoolean) { + int j = i; + method.invoke(window1, new Object[] { Integer.valueOf(j), Integer.valueOf(i) }); + return true; + } + } catch (Exception exception) { + return bool2; + } + } else { + Field field; + if (CompatibilitySupport.isMeizu()) { + layoutParams = method.getAttributes(); + Field field1 = WindowManager.LayoutParams.class.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON"); + field = WindowManager.LayoutParams.class.getDeclaredField("meizuFlags"); + field1.setAccessible(true); + field.setAccessible(true); + j = field1.getInt((Object)null); + i = field.getInt(layoutParams); + if (paramBoolean) { + j = i | j; + field.setInt(layoutParams, j); + method.setAttributes(layoutParams); + return true; + } + } else { + return bool2; + } + int j = (j ^ 0xFFFFFFFF) & i; + field.setInt(layoutParams, j); + method.setAttributes(layoutParams); + return true; + } + boolean bool1 = false; + method.invoke(layoutParams, new Object[] { Integer.valueOf(bool1), Integer.valueOf(i) }); + return true; + } + + public static void unRegisterStatusBarHeightChangeListener(StatusBarHeightChangeListener paramStatusBarHeightChangeListener) { + Iterator> iterator = listeners.iterator(); + while (iterator.hasNext()) { + WeakReference weakReference = iterator.next(); + if (weakReference != null) { + StatusBarHeightChangeListener statusBarHeightChangeListener = weakReference.get(); + if (statusBarHeightChangeListener != null && statusBarHeightChangeListener == paramStatusBarHeightChangeListener) { + iterator.remove(); + break; + } + } + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\ui\statusbar\StatusBarManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/IViewWindow.java b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/IViewWindow.java new file mode 100644 index 0000000..0349170 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/IViewWindow.java @@ -0,0 +1,38 @@ +package com.tt.miniapp.base.ui.viewwindow; + +import android.app.Activity; +import android.content.Intent; + +public interface IViewWindow { + Activity getActivity(); + + Intent getIntent(); + + ViewWindowRoot getRoot(); + + void onActivityDestroy(); + + void onActivityPause(); + + void onActivityResult(int paramInt1, int paramInt2, Intent paramIntent); + + void onActivityResume(); + + boolean onBackPressed(); + + void onCreate(); + + void onDestroy(); + + void onThemeChanged(String paramString); + + void onViewPause(int paramInt); + + void onViewResume(int paramInt); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\ui\viewwindow\IViewWindow.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindow.java b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindow.java new file mode 100644 index 0000000..6b3af6b --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindow.java @@ -0,0 +1,162 @@ +package com.tt.miniapp.base.ui.viewwindow; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; + +public abstract class ViewWindow extends ViewWindowDragRightLayout implements IViewWindow { + public boolean isResumed; + + private Bundle mArgs; + + protected ViewWindowRoot mRoot; + + public ViewWindow(Context paramContext) { + super(paramContext); + } + + protected final void doFinish() { + destroyDrag(); + onDestroy(); + } + + protected final void doOnActivityDestroy() { + onActivityDestroy(); + } + + protected final void doOnActivityPause() { + onActivityPause(); + } + + protected final void doOnActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + onActivityResult(paramInt1, paramInt2, paramIntent); + } + + protected final void doOnActivityResume() { + onActivityResume(); + } + + protected final void doOnCreate(ViewWindowRoot paramViewWindowRoot) { + if (paramViewWindowRoot != null) { + StringBuilder stringBuilder; + Type type = paramViewWindowRoot.getClass().getGenericSuperclass(); + if (type != null) { + Type[] arrayOfType = ((ParameterizedType)type).getActualTypeArguments(); + if (arrayOfType.length > 0) { + Class clazz = (Class)arrayOfType[0]; + Class clazz1 = getClass(); + if (!clazz.isAssignableFrom(clazz1)) { + stringBuilder = new StringBuilder("类型不匹配,root期望的泛型参数类型是:"); + stringBuilder.append(clazz); + stringBuilder.append(",而实际是:"); + stringBuilder.append(clazz1); + throw new RuntimeException(stringBuilder.toString()); + } + } + } + this.mRoot = (ViewWindowRoot)stringBuilder; + setClickable(true); + setDragFinishListener(new ViewWindowDragRightLayout.OnDragListener() { + public void onScrollFinish(boolean param1Boolean) { + if (param1Boolean) { + ViewWindow.this.onSwipeBack(); + return; + } + ViewWindow.this.onSwipeCancel(); + } + + public void onScrollStart() { + ViewWindow.this.onSwipeStart(); + } + }); + onCreate(); + } + } + + protected final void doPause(int paramInt) { + if (this.isResumed) { + this.isResumed = false; + onViewPause(paramInt); + } + } + + protected final void doResume(int paramInt) { + if (!this.isResumed) { + this.isResumed = true; + onViewResume(paramInt); + } + } + + public Activity getActivity() { + ViewWindowRoot viewWindowRoot = this.mRoot; + return (viewWindowRoot != null) ? viewWindowRoot.getActivity() : null; + } + + public Intent getIntent() { + Activity activity = getActivity(); + return (activity != null) ? activity.getIntent() : null; + } + + public Bundle getParams() { + return this.mArgs; + } + + public ViewWindowRoot getRoot() { + return this.mRoot; + } + + public boolean isActivityResume() { + return (this.mRoot.getActivityLifecycleState() == 3); + } + + public boolean isViewResume() { + return this.isResumed; + } + + public void onActivityDestroy() {} + + public void onActivityPause() {} + + public void onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) {} + + public void onActivityResume() {} + + public boolean onBackPressed() { + return false; + } + + public void onCreate() {} + + public void onDestroy() {} + + protected void onSwipeBack() { + this.mRoot.onChildViewSwipedBack(this); + } + + protected void onSwipeCancel() { + this.mRoot.onChildViewSwipedCancel(this); + } + + protected void onSwipeStart() { + this.mRoot.onChildViewSwipedStart(this); + } + + public void onThemeChanged(String paramString) {} + + public void onViewPause(int paramInt) {} + + public void onViewResume(int paramInt) {} + + public void setParams(Bundle paramBundle) { + this.mArgs = paramBundle; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\ui\viewwindow\ViewWindow.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowContainer.java b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowContainer.java new file mode 100644 index 0000000..a3e84b5 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowContainer.java @@ -0,0 +1,66 @@ +package com.tt.miniapp.base.ui.viewwindow; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.View; +import android.widget.FrameLayout; +import d.f.a.b; +import d.f.b.l; +import d.x; +import java.util.HashMap; + +public final class ViewWindowContainer extends FrameLayout { + private HashMap _$_findViewCache; + + private b onAttachedToWindowListener; + + public ViewWindowContainer(Context paramContext) { + super(paramContext); + } + + public ViewWindowContainer(Context paramContext, AttributeSet paramAttributeSet) { + super(paramContext, paramAttributeSet); + } + + public final void _$_clearFindViewByIdCache() { + HashMap hashMap = this._$_findViewCache; + if (hashMap != null) + hashMap.clear(); + } + + public final View _$_findCachedViewById(int paramInt) { + if (this._$_findViewCache == null) + this._$_findViewCache = new HashMap(); + View view2 = (View)this._$_findViewCache.get(Integer.valueOf(paramInt)); + View view1 = view2; + if (view2 == null) { + view1 = findViewById(paramInt); + this._$_findViewCache.put(Integer.valueOf(paramInt), view1); + } + return view1; + } + + public final b getOnAttachedToWindowListener() { + return (b)this.onAttachedToWindowListener; + } + + protected final void onAttachedToWindow() { + super.onAttachedToWindow(); + b b1 = this.onAttachedToWindowListener; + if (b1 != null) { + Context context = getContext(); + l.a(context, "context"); + b1.invoke(context); + } + } + + public final void setOnAttachedToWindowListener(b paramb) { + this.onAttachedToWindowListener = paramb; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\ui\viewwindow\ViewWindowContainer.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowDragRightLayout.java b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowDragRightLayout.java new file mode 100644 index 0000000..9dfd99c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowDragRightLayout.java @@ -0,0 +1,405 @@ +package com.tt.miniapp.base.ui.viewwindow; + +import android.content.Context; +import android.graphics.Color; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.GradientDrawable; +import android.os.Build; +import android.view.MotionEvent; +import android.view.VelocityTracker; +import android.view.View; +import android.view.ViewConfiguration; +import android.view.ViewGroup; +import android.view.animation.DecelerateInterpolator; +import android.view.animation.Interpolator; +import android.widget.FrameLayout; +import android.widget.Scroller; +import com.tt.miniapp.base.utils.DensityUtil; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.language.LanguageChangeListener; +import com.tt.miniapphost.language.LocaleManager; +import com.tt.miniapphost.util.UIUtils; + +public class ViewWindowDragRightLayout extends FrameLayout implements LanguageChangeListener { + public OnDragListener draglistener; + + private View.OnClickListener emptyClickListener; + + private FlingRunnable flingR; + + private boolean inited; + + public boolean isNormalDirection; + + private View mBackgroundMaskView; + + private ViewGroup mContainer; + + private int mDownAreaMaxX = 100; + + private float mDownX; + + private float mDownY; + + private boolean mDragEnable; + + public volatile boolean mDragEnableGlobal = true; + + public int mDragRightCloseMinX = 100; + + private boolean mIsCurrentInDownArea; + + public int mMaxVelocityX = 3000; + + private int mMinimumVelocity; + + private boolean mRightMoving; + + private View mShadowView; + + private int mShadowViewWidth; + + public VelocityTracker mVelocityTracker; + + private int minXSlop; + + private int minYSlop; + + private final int units = 1000; + + public ViewWindowDragRightLayout(Context paramContext) { + super(paramContext); + this.mDragEnableGlobal = true; + this.isNormalDirection = true ^ UIUtils.isRTL(); + UIUtils.setProperLayoutDirection((View)this); + LocaleManager.getInst().registerLangChangeListener(this); + } + + private GradientDrawable genBackgroundMaskDrawable() { + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setColors(new int[] { 0, 1291845632 }); + gradientDrawable.setShape(0); + if (this.isNormalDirection) { + gradientDrawable.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT); + return gradientDrawable; + } + gradientDrawable.setOrientation(GradientDrawable.Orientation.RIGHT_LEFT); + return gradientDrawable; + } + + private void init() { + if (!this.inited) { + this.inited = true; + ViewConfiguration viewConfiguration = ViewConfiguration.get(getContext()); + this.mMinimumVelocity = (int)(viewConfiguration.getScaledMinimumFlingVelocity() * DensityUtil.getScreenDensity(getContext())); + this.mMinimumVelocity = Math.max(this.mMinimumVelocity, 100); + this.minXSlop = viewConfiguration.getScaledTouchSlop(); + this.minYSlop = this.minXSlop * 4; + this.mShadowViewWidth = DensityUtil.dip2px(getContext(), 11.0F); + this.mDownAreaMaxX = DensityUtil.dip2px(getContext(), 80.0F); + this.mDragRightCloseMinX = this.mDownAreaMaxX; + } + } + + private void processDown(MotionEvent paramMotionEvent) { + this.mDownX = paramMotionEvent.getRawX(); + this.mDownY = paramMotionEvent.getY(); + if (!shouldDrag()) + return; + if (getParent() != null) + this.mContainer = (ViewGroup)getParent(); + FlingRunnable flingRunnable = this.flingR; + if (flingRunnable != null && !flingRunnable.isFinish()) + this.flingR.cancelFling(); + this.mVelocityTracker = VelocityTracker.obtain(); + this.mVelocityTracker.addMovement(paramMotionEvent); + } + + private void processMove(MotionEvent paramMotionEvent) { + if (shouldDrag()) { + if (this.mContainer == null) + return; + float f1 = paramMotionEvent.getRawX() - this.mDownX; + float f2 = paramMotionEvent.getRawY(); + float f3 = this.mDownY; + if (this.isNormalDirection) { + if (f1 < 0.0F) + return; + } else if (f1 > 0.0F) { + return; + } + if (!this.mRightMoving && (Math.abs(f1) < this.minXSlop || Math.abs(f2 - f3) > this.minYSlop)) + return; + setUpBackgroundMask(); + if (this.isNormalDirection) { + if (f1 < 0.0F) { + setDragFrameByLeft(0.0F); + } else { + setDragFrameByLeft(f1); + } + } else if (f1 < -getWidth()) { + setDragFrameByLeft(-getWidth()); + } else { + setDragFrameByLeft(f1); + } + if (!this.mRightMoving) { + OnDragListener onDragListener = this.draglistener; + if (onDragListener != null) + onDragListener.onScrollStart(); + } + this.mRightMoving = true; + } + } + + private void processUp(MotionEvent paramMotionEvent) { + if (shouldDrag()) { + if (this.mRightMoving) { + this.flingR = new FlingRunnable(getContext()); + this.flingR.flingLeft(0, (int)getX()); + post(this.flingR); + VelocityTracker velocityTracker = this.mVelocityTracker; + if (velocityTracker != null) { + velocityTracker.recycle(); + this.mVelocityTracker = null; + } + } + this.mRightMoving = false; + } + } + + private void refreshSwitchByLang() { + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + boolean bool = UIUtils.isRTL(); + ViewWindowDragRightLayout viewWindowDragRightLayout = ViewWindowDragRightLayout.this; + viewWindowDragRightLayout.isNormalDirection = bool ^ true; + viewWindowDragRightLayout.mDragEnableGlobal = true; + StringBuilder stringBuilder = new StringBuilder("onLanguageChange"); + stringBuilder.append(ViewWindowDragRightLayout.this.mDragEnableGlobal); + AppBrandLogger.d("ViewWindowDragRightLayout", new Object[] { stringBuilder.toString() }); + UIUtils.setProperLayoutDirection((View)ViewWindowDragRightLayout.this); + ViewWindowDragRightLayout.this.initIfNecessary(); + } + }); + } + + private void setUpBackgroundMask() { + if (this.mBackgroundMaskView == null) { + this.mBackgroundMaskView = new View(getContext()); + this.mBackgroundMaskView.setBackgroundColor(Color.parseColor("#4f000000")); + if (this.emptyClickListener != null) + this.emptyClickListener = new View.OnClickListener() { + public void onClick(View param1View) {} + }; + this.mBackgroundMaskView.setOnClickListener(this.emptyClickListener); + this.mShadowView = new View(getContext()); + this.mShadowView.setBackground((Drawable)genBackgroundMaskDrawable()); + } + if (this.mBackgroundMaskView.getParent() == null) { + this.mContainer.addView(this.mBackgroundMaskView, (ViewGroup.LayoutParams)new FrameLayout.LayoutParams(-1, -1)); + this.mContainer.addView(this.mShadowView, (ViewGroup.LayoutParams)new FrameLayout.LayoutParams(this.mShadowViewWidth, -1)); + } + } + + private boolean shouldDrag() { + return (this.mDragEnable && this.mIsCurrentInDownArea && !shouldInterceptDrag() && this.mDragEnableGlobal); + } + + protected void destroyDrag() { + setDragEnable(false); + setDragFinishListener((OnDragListener)null); + releaseBackgroundMask(); + } + + public boolean dispatchTouchEvent(MotionEvent paramMotionEvent) { + int i = paramMotionEvent.getAction(); + boolean bool2 = true; + boolean bool1 = true; + if (i != 0) { + if (i != 1) + if (i != 2) { + if (i != 3 && i != 4) + return super.dispatchTouchEvent(paramMotionEvent); + } else { + processMove(paramMotionEvent); + return super.dispatchTouchEvent(paramMotionEvent); + } + processUp(paramMotionEvent); + } else { + if (this.isNormalDirection) { + if (paramMotionEvent.getRawX() >= this.mDownAreaMaxX) + bool1 = false; + this.mIsCurrentInDownArea = bool1; + } else { + if (paramMotionEvent.getRawX() > (getWidth() - this.mDownAreaMaxX)) { + bool1 = bool2; + } else { + bool1 = false; + } + this.mIsCurrentInDownArea = bool1; + } + processDown(paramMotionEvent); + } + return super.dispatchTouchEvent(paramMotionEvent); + } + + public void initIfNecessary() { + if (this.mDragEnable && this.mDragEnableGlobal) + init(); + } + + public boolean isDragEnabled() { + return (this.mDragEnable && this.mDragEnableGlobal); + } + + public boolean onInterceptTouchEvent(MotionEvent paramMotionEvent) { + return this.mRightMoving ? true : super.onInterceptTouchEvent(paramMotionEvent); + } + + public void onLanguageChange() { + refreshSwitchByLang(); + } + + public void postOnAnimationWrap(Runnable paramRunnable) { + if (Build.VERSION.SDK_INT >= 16) { + postOnAnimation(paramRunnable); + return; + } + postDelayed(paramRunnable, 16L); + } + + public void releaseBackgroundMask() { + if (this.mContainer != null) { + View view = this.mBackgroundMaskView; + if (view != null) { + if (view.getParent() != null) + this.mContainer.removeView(this.mBackgroundMaskView); + this.mBackgroundMaskView.setOnClickListener(null); + if (this.mShadowView.getParent() != null) + this.mContainer.removeView(this.mShadowView); + this.emptyClickListener = null; + this.mBackgroundMaskView = null; + this.mShadowView = null; + } + } + } + + public void setDragEnable(boolean paramBoolean) { + this.mDragEnable = paramBoolean; + initIfNecessary(); + } + + public void setDragFinishListener(OnDragListener paramOnDragListener) { + this.draglistener = paramOnDragListener; + } + + public void setDragFrameByLeft(float paramFloat) { + setX(paramFloat); + if (this.isNormalDirection) { + this.mShadowView.setX(paramFloat - this.mShadowViewWidth); + this.mBackgroundMaskView.setX(paramFloat - getWidth()); + this.mBackgroundMaskView.setAlpha(1.0F - paramFloat / getWidth()); + return; + } + this.mShadowView.setX(getWidth() + paramFloat); + this.mBackgroundMaskView.setX(getWidth() + paramFloat); + this.mBackgroundMaskView.setAlpha(1.0F - Math.abs(paramFloat) / getWidth()); + } + + protected boolean shouldInterceptDrag() { + return false; + } + + class FlingRunnable implements Runnable { + private boolean disapper; + + private int disapperTime = 300; + + private boolean isHorizontal; + + private final Scroller mScroller; + + private int screenHeight; + + private int screenWidth; + + public FlingRunnable(Context param1Context) { + this.mScroller = new Scroller(param1Context, (Interpolator)new DecelerateInterpolator()); + this.screenHeight = DensityUtil.getScreenHeight(param1Context); + this.screenWidth = DensityUtil.getScreenWidth(param1Context); + } + + public void cancelFling() { + this.mScroller.forceFinished(true); + } + + public void flingLeft(int param1Int1, int param1Int2) { + boolean bool = true; + this.isHorizontal = true; + if (param1Int1 != param1Int2) { + if (ViewWindowDragRightLayout.this.mVelocityTracker != null) { + ViewWindowDragRightLayout.this.mVelocityTracker.computeCurrentVelocity(1000, ViewWindowDragRightLayout.this.mMaxVelocityX); + int k = (int)ViewWindowDragRightLayout.this.mVelocityTracker.getXVelocity(); + int j = k; + if (k > ViewWindowDragRightLayout.this.mMaxVelocityX) + j = ViewWindowDragRightLayout.this.mMaxVelocityX; + if (j < 0) { + this.disapperTime = 350; + } else { + this.disapperTime = 350 - j * 150 / ViewWindowDragRightLayout.this.mMaxVelocityX; + } + } + if (Math.abs(param1Int2 - param1Int1) <= ViewWindowDragRightLayout.this.mDragRightCloseMinX) + bool = false; + this.disapper = bool; + if (this.disapper) { + if (param1Int2 > param1Int1) { + this.mScroller.startScroll(param1Int2, 0, this.screenWidth - param1Int2, 0, this.disapperTime); + return; + } + this.mScroller.startScroll(param1Int2, 0, -ViewWindowDragRightLayout.this.getWidth() - param1Int2, 0, this.disapperTime); + return; + } + param1Int1 -= param1Int2; + int i = Math.min(Math.abs(param1Int1) * 1800 / this.screenWidth + 100, 400); + this.mScroller.startScroll(param1Int2, 0, param1Int1, 0, i); + } + } + + public boolean isFinish() { + return this.mScroller.isFinished(); + } + + public void run() { + try { + if (ViewWindowDragRightLayout.this != null && this.mScroller.computeScrollOffset()) { + if (this.isHorizontal) { + int i = this.mScroller.getCurrX(); + ViewWindowDragRightLayout.this.setDragFrameByLeft(i); + } + ViewWindowDragRightLayout.this.postOnAnimationWrap(this); + return; + } + ViewWindowDragRightLayout.this.releaseBackgroundMask(); + if (ViewWindowDragRightLayout.this.draglistener != null) + ViewWindowDragRightLayout.this.draglistener.onScrollFinish(this.disapper); + return; + } catch (Exception exception) { + return; + } + } + } + + public static interface OnDragListener { + void onScrollFinish(boolean param1Boolean); + + void onScrollStart(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\ui\viewwindow\ViewWindowDragRightLayout.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowManager.java b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowManager.java new file mode 100644 index 0000000..2189086 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowManager.java @@ -0,0 +1,119 @@ +package com.tt.miniapp.base.ui.viewwindow; + +import android.app.Activity; +import android.app.Application; +import android.content.Intent; +import android.os.Bundle; +import java.lang.ref.WeakReference; +import java.util.HashSet; +import java.util.WeakHashMap; + +public class ViewWindowManager { + public static WeakHashMap activityLifecycleStateMap; + + private static volatile boolean isInited; + + private static HashSet> viewWindowContainerMap = new HashSet>(); + + static { + activityLifecycleStateMap = new WeakHashMap(); + } + + public static void dispatchActivityDestroy(Activity paramActivity) { + for (WeakReference weakReference : viewWindowContainerMap) { + if (weakReference != null) { + ViewWindowRoot viewWindowRoot = weakReference.get(); + if (viewWindowRoot != null && viewWindowRoot.getActivity() == paramActivity) + viewWindowRoot.dispatchOnActivityDestroy(); + } + } + } + + public static void dispatchActivityPause(Activity paramActivity) { + for (WeakReference weakReference : viewWindowContainerMap) { + if (weakReference != null) { + ViewWindowRoot viewWindowRoot = weakReference.get(); + if (viewWindowRoot != null && viewWindowRoot.getActivity() == paramActivity) + viewWindowRoot.dispatchOnActivityPause(); + } + } + } + + public static void dispatchActivityResult(Activity paramActivity, int paramInt1, int paramInt2, Intent paramIntent) { + for (WeakReference weakReference : viewWindowContainerMap) { + if (weakReference != null) { + ViewWindowRoot viewWindowRoot = weakReference.get(); + if (viewWindowRoot != null && viewWindowRoot.getActivity() == paramActivity) + viewWindowRoot.dispatchActivityResult(paramInt1, paramInt2, paramIntent); + } + } + } + + public static void dispatchActivityResume(Activity paramActivity) { + for (WeakReference weakReference : viewWindowContainerMap) { + if (weakReference != null) { + ViewWindowRoot viewWindowRoot = weakReference.get(); + if (viewWindowRoot != null && viewWindowRoot.getActivity() == paramActivity) + viewWindowRoot.dispatchOnActivityResume(); + } + } + } + + public static int getActivityLifecycleState(Activity paramActivity) { + Integer integer = activityLifecycleStateMap.get(paramActivity); + return (integer == null) ? 0 : integer.intValue(); + } + + public static void init(Application paramApplication) { + if (isInited) + return; + isInited = true; + paramApplication.registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() { + public final void onActivityCreated(Activity param1Activity, Bundle param1Bundle) { + ViewWindowManager.activityLifecycleStateMap.put(param1Activity, Integer.valueOf(1)); + } + + public final void onActivityDestroyed(Activity param1Activity) { + ViewWindowManager.activityLifecycleStateMap.put(param1Activity, Integer.valueOf(6)); + ViewWindowManager.dispatchActivityDestroy(param1Activity); + } + + public final void onActivityPaused(Activity param1Activity) { + ViewWindowManager.activityLifecycleStateMap.put(param1Activity, Integer.valueOf(4)); + ViewWindowManager.dispatchActivityPause(param1Activity); + } + + public final void onActivityResumed(Activity param1Activity) { + ViewWindowManager.activityLifecycleStateMap.put(param1Activity, Integer.valueOf(3)); + ViewWindowManager.dispatchActivityResume(param1Activity); + } + + public final void onActivitySaveInstanceState(Activity param1Activity, Bundle param1Bundle) {} + + public final void onActivityStarted(Activity param1Activity) { + ViewWindowManager.activityLifecycleStateMap.put(param1Activity, Integer.valueOf(2)); + } + + public final void onActivityStopped(Activity param1Activity) { + ViewWindowManager.activityLifecycleStateMap.put(param1Activity, Integer.valueOf(5)); + } + }); + } + + protected static void regAsViewWindowContainer(ViewWindowRoot paramViewWindowRoot) { + if (isInited) { + if (paramViewWindowRoot != null) { + viewWindowContainerMap.add(new WeakReference(paramViewWindowRoot)); + return; + } + throw new Error("container and activity must be not null"); + } + throw new Error("ViewWindowManager must be inited,please use ViewWindowManager.init first"); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\ui\viewwindow\ViewWindowManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowRoot.java b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowRoot.java new file mode 100644 index 0000000..25543ea --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/ui/viewwindow/ViewWindowRoot.java @@ -0,0 +1,383 @@ +package com.tt.miniapp.base.ui.viewwindow; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.util.DebugUtil; +import d.a.m; +import d.f.a.b; +import d.f.b.g; +import d.f.b.l; +import d.f.b.m; +import d.x; +import java.util.Iterator; +import java.util.LinkedList; + +public abstract class ViewWindowRoot { + public static final Companion Companion = new Companion(null); + + public Activity activity; + + private final ViewWindowContainer container; + + private final Context mContext; + + private final LinkedList mViewWindowList; + + public ViewWindowRoot(Context paramContext) { + this.mContext = paramContext; + this.container = new ViewWindowContainer(this.mContext); + this.mViewWindowList = new LinkedList(); + if (!ThreadUtil.isUIThread()) + DebugUtil.logOrThrow("ViewWindowRoot", new Object[] { "Init must be called on UI Thread." }); + this.container.setOnAttachedToWindowListener(new b() { + public final void invoke(Context param1Context) { + // Byte code: + // 0: aload_1 + // 1: ldc 'it' + // 3: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 6: aload_0 + // 7: getfield this$0 : Lcom/tt/miniapp/base/ui/viewwindow/ViewWindowRoot; + // 10: invokevirtual getActivity : ()Landroid/app/Activity; + // 13: ifnull -> 132 + // 16: aload_0 + // 17: getfield this$0 : Lcom/tt/miniapp/base/ui/viewwindow/ViewWindowRoot; + // 20: invokevirtual getContainer : ()Lcom/tt/miniapp/base/ui/viewwindow/ViewWindowContainer; + // 23: checkcast android/view/ViewGroup + // 26: astore #4 + // 28: aload_0 + // 29: getfield this$0 : Lcom/tt/miniapp/base/ui/viewwindow/ViewWindowRoot; + // 32: invokevirtual getActivity : ()Landroid/app/Activity; + // 35: astore_1 + // 36: aload_1 + // 37: ifnull -> 57 + // 40: aload_1 + // 41: invokevirtual getWindow : ()Landroid/view/Window; + // 44: astore_1 + // 45: aload_1 + // 46: ifnull -> 57 + // 49: aload_1 + // 50: invokevirtual getDecorView : ()Landroid/view/View; + // 53: astore_1 + // 54: goto -> 59 + // 57: aconst_null + // 58: astore_1 + // 59: iconst_0 + // 60: istore_3 + // 61: iload_3 + // 62: istore_2 + // 63: aload #4 + // 65: instanceof android/view/ViewGroup + // 68: ifeq -> 114 + // 71: aload #4 + // 73: aload_1 + // 74: if_acmpne -> 82 + // 77: iconst_1 + // 78: istore_2 + // 79: goto -> 114 + // 82: aload #4 + // 84: invokevirtual getParent : ()Landroid/view/ViewParent; + // 87: astore #5 + // 89: aload #5 + // 91: astore #4 + // 93: aload #5 + // 95: instanceof android/view/ViewGroup + // 98: ifne -> 104 + // 101: aconst_null + // 102: astore #4 + // 104: aload #4 + // 106: checkcast android/view/ViewGroup + // 109: astore #4 + // 111: goto -> 61 + // 114: iload_2 + // 115: ifeq -> 119 + // 118: return + // 119: new java/lang/RuntimeException + // 122: dup + // 123: ldc 'Activity and container not match.' + // 125: invokespecial : (Ljava/lang/String;)V + // 128: checkcast java/lang/Throwable + // 131: athrow + // 132: new java/lang/RuntimeException + // 135: dup + // 136: ldc 'Must call bindActivity before adding container to the view hierarchy.' + // 138: invokespecial : (Ljava/lang/String;)V + // 141: checkcast java/lang/Throwable + // 144: astore_1 + // 145: goto -> 150 + // 148: aload_1 + // 149: athrow + // 150: goto -> 148 + } + }); + ViewWindowManager.regAsViewWindowContainer(this); + } + + public final void bindActivity(Activity paramActivity) { + l.b(paramActivity, "a"); + this.activity = paramActivity; + } + + public final void closeAllViewWindow() { + for (ViewWindow viewWindow : this.mViewWindowList) { + viewWindow.doPause(1); + this.container.removeView((View)viewWindow); + viewWindow.doFinish(); + } + this.mViewWindowList.clear(); + } + + public final void closeViewWindow(T paramT) { + l.b(paramT, "v"); + this.mViewWindowList.remove(paramT); + this.container.removeView((View)paramT); + paramT.doPause(1); + T t = getTopView(); + if (t != null) { + t.doResume(1); + } else { + onViewWindowAllClosed(); + } + paramT.doFinish(); + } + + public final void closeViewWindowWithAnim(T paramT, int paramInt, Animation.AnimationListener paramAnimationListener) { + l.b(paramT, "v"); + this.mViewWindowList.remove(paramT); + paramT.doPause(1); + T t = getTopView(); + if (t != null) { + t.doResume(1); + } else { + onViewWindowAllClosed(); + } + Animation animation = AnimationUtils.loadAnimation(this.mContext, paramInt); + animation.setAnimationListener(new ViewWindowRoot$closeViewWindowWithAnim$$inlined$apply$lambda$1(paramAnimationListener, (ViewWindow)paramT)); + paramT.startAnimation(animation); + } + + public final void dispatchActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + l.b(paramIntent, "data"); + Iterator iterator = this.mViewWindowList.iterator(); + while (iterator.hasNext()) + ((ViewWindow)iterator.next()).doOnActivityResult(paramInt1, paramInt2, paramIntent); + } + + public final void dispatchOnActivityDestroy() { + Iterator iterator = this.mViewWindowList.iterator(); + while (iterator.hasNext()) + ((ViewWindow)iterator.next()).doOnActivityDestroy(); + } + + public final void dispatchOnActivityPause() { + T t = getTopView(); + if (t != null) { + t.doOnActivityPause(); + t.doPause(0); + } + } + + public final void dispatchOnActivityResume() { + T t = getTopView(); + if (t != null) { + t.doOnActivityResume(); + t.doResume(0); + } + } + + public final Activity getActivity() { + return this.activity; + } + + public int getActivityLifecycleState() { + return ViewWindowManager.getActivityLifecycleState(this.activity); + } + + public final ViewWindowContainer getContainer() { + return this.container; + } + + public final Context getContext() { + return this.mContext; + } + + protected final Context getMContext() { + return this.mContext; + } + + protected final LinkedList getMViewWindowList() { + return this.mViewWindowList; + } + + public final T getTopView() { + return (T)m.h(this.mViewWindowList); + } + + public final int getViewWindowCount() { + return this.mViewWindowList.size(); + } + + public boolean onBackPressed() { + if (getViewWindowCount() > 1) { + T t = getTopView(); + if (t != null && !t.onBackPressed()) + closeViewWindow(t); + return true; + } + return false; + } + + public void onChildViewSwipedBack(T paramT) { + l.b(paramT, "viewWindow"); + closeViewWindow(paramT); + } + + public void onChildViewSwipedCancel(T paramT) { + l.b(paramT, "viewWindow"); + } + + public void onChildViewSwipedStart(T paramT) { + l.b(paramT, "viewWindow"); + } + + public void onViewWindowAllClosed() {} + + public final void showViewWindow(T paramT, Bundle paramBundle) { + l.b(paramT, "v"); + T t = getTopView(); + if (paramT == t) + return; + paramT.setParams(paramBundle); + if (paramT.getParent() != null) { + if (paramT.getRoot() == this) { + this.mViewWindowList.remove(paramT); + this.mViewWindowList.addLast(paramT); + paramT.bringToFront(); + if (t != null) + t.doPause(1); + paramT.doResume(1); + return; + } + throw (Throwable)new RuntimeException("view is already added on window"); + } + paramT.doOnCreate(this); + this.mViewWindowList.addLast(paramT); + this.container.addView((View)paramT); + if (t != null) + t.doPause(1); + paramT.doResume(1); + } + + public final void showViewWindowWithAnim(T paramT, Bundle paramBundle, int paramInt, Animation.AnimationListener paramAnimationListener) { + l.b(paramT, "v"); + T t = getTopView(); + if (paramT == t) + return; + paramT.setParams(paramBundle); + if (paramT.getParent() != null) { + if (paramT.getRoot() == this) { + this.mViewWindowList.remove(paramT); + this.mViewWindowList.addLast(paramT); + paramT.bringToFront(); + } else { + throw (Throwable)new RuntimeException("view is already added on window"); + } + } else { + this.mViewWindowList.addLast(paramT); + paramT.doOnCreate(this); + this.container.addView((View)paramT); + } + Animation animation = AnimationUtils.loadAnimation(this.mContext, paramInt); + animation.setAnimationListener(new ViewWindowRoot$showViewWindowWithAnim$$inlined$apply$lambda$1(paramAnimationListener, (ViewWindow)t, (ViewWindow)paramT)); + paramT.startAnimation(animation); + } + + public static final class Companion { + private Companion() {} + } + + public static final class ViewWindowRoot$closeViewWindowWithAnim$$inlined$apply$lambda$1 implements Animation.AnimationListener { + ViewWindowRoot$closeViewWindowWithAnim$$inlined$apply$lambda$1(Animation.AnimationListener param1AnimationListener, ViewWindow param1ViewWindow) {} + + public final void onAnimationEnd(Animation param1Animation) { + Animation.AnimationListener animationListener = this.$listener$inlined; + if (animationListener != null) + animationListener.onAnimationEnd(param1Animation); + ViewWindowRoot.this.getContainer().post(new Runnable() { + public final void run() { + ViewWindowRoot.this.getContainer().removeView((View)ViewWindowRoot$closeViewWindowWithAnim$$inlined$apply$lambda$1.this.$v$inlined); + ViewWindowRoot$closeViewWindowWithAnim$$inlined$apply$lambda$1.this.$v$inlined.doFinish(); + } + }); + } + + public final void onAnimationRepeat(Animation param1Animation) { + Animation.AnimationListener animationListener = this.$listener$inlined; + if (animationListener != null) + animationListener.onAnimationRepeat(param1Animation); + } + + public final void onAnimationStart(Animation param1Animation) { + Animation.AnimationListener animationListener = this.$listener$inlined; + if (animationListener != null) + animationListener.onAnimationStart(param1Animation); + } + } + + static final class null implements Runnable { + public final void run() { + ViewWindowRoot.this.getContainer().removeView((View)ViewWindowRoot$closeViewWindowWithAnim$$inlined$apply$lambda$1.this.$v$inlined); + ViewWindowRoot$closeViewWindowWithAnim$$inlined$apply$lambda$1.this.$v$inlined.doFinish(); + } + } + + public static final class ViewWindowRoot$showViewWindowWithAnim$$inlined$apply$lambda$1 implements Animation.AnimationListener { + ViewWindowRoot$showViewWindowWithAnim$$inlined$apply$lambda$1(Animation.AnimationListener param1AnimationListener, ViewWindow param1ViewWindow1, ViewWindow param1ViewWindow2) {} + + public final void onAnimationEnd(Animation param1Animation) { + Animation.AnimationListener animationListener = this.$listener$inlined; + if (animationListener != null) + animationListener.onAnimationEnd(param1Animation); + ViewWindowRoot.this.getContainer().post(new Runnable() { + public final void run() { + ViewWindow viewWindow = ViewWindowRoot$showViewWindowWithAnim$$inlined$apply$lambda$1.this.$topView$inlined; + if (viewWindow != null) + viewWindow.doPause(1); + ViewWindowRoot$showViewWindowWithAnim$$inlined$apply$lambda$1.this.$v$inlined.doResume(1); + } + }); + } + + public final void onAnimationRepeat(Animation param1Animation) { + Animation.AnimationListener animationListener = this.$listener$inlined; + if (animationListener != null) + animationListener.onAnimationRepeat(param1Animation); + } + + public final void onAnimationStart(Animation param1Animation) { + Animation.AnimationListener animationListener = this.$listener$inlined; + if (animationListener != null) + animationListener.onAnimationStart(param1Animation); + } + } + + static final class null implements Runnable { + public final void run() { + ViewWindow viewWindow = ViewWindowRoot$showViewWindowWithAnim$$inlined$apply$lambda$1.this.$topView$inlined; + if (viewWindow != null) + viewWindow.doPause(1); + ViewWindowRoot$showViewWindowWithAnim$$inlined$apply$lambda$1.this.$v$inlined.doResume(1); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\ui\viewwindow\ViewWindowRoot.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/utils/ApiLevel.java b/df_miniapp/classes/com/tt/miniapp/base/utils/ApiLevel.java new file mode 100644 index 0000000..c4cf56a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/utils/ApiLevel.java @@ -0,0 +1,15 @@ +package com.tt.miniapp.base.utils; + +import android.os.Build; + +public class ApiLevel { + public static final boolean geHONEYCOMB() { + return (Build.VERSION.SDK_INT >= 11); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\utils\ApiLevel.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/utils/CompatibilitySupport.java b/df_miniapp/classes/com/tt/miniapp/base/utils/CompatibilitySupport.java new file mode 100644 index 0000000..2a72db4 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/utils/CompatibilitySupport.java @@ -0,0 +1,334 @@ +package com.tt.miniapp.base.utils; + +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; +import android.os.Build; +import android.text.ClipboardManager; +import android.text.TextUtils; +import android.webkit.WebView; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +public class CompatibilitySupport { + private static int DisableOverScrollIntValue; + + private static Method DisableOverScrollMethod; + + public static boolean ZTE_U5_SCROLL_FINISHED; + + public static final boolean afterKITKAT() { + return (Build.VERSION.SDK_INT >= 19); + } + + public static final boolean beforeGINGERBREAD() { + return (Build.VERSION.SDK_INT < 9); + } + + public static final boolean beforeHONEYCOMB() { + return (Build.VERSION.SDK_INT < 11); + } + + public static final boolean beforeIceCreamSandwich() { + return (Build.VERSION.SDK_INT < 14); + } + + public static boolean beforeJelleyBean() { + return (Build.VERSION.SDK_INT < 16); + } + + public static final boolean beforeKIKAT() { + return (Build.VERSION.SDK_INT < 19); + } + + public static final boolean beforeSDK42() { + return (Build.VERSION.SDK_INT <= 17); + } + + public static final boolean canHideNotificationBar() { + return (Build.VERSION.SDK_INT <= 8) ? false : (!isGTI9100() ? (!isSCHi929()) : false); + } + + public static final boolean canSupportSelect() { + return (Build.VERSION.SDK_INT < 14); + } + + public static final void copy(Context paramContext, String paramString) { + ClipboardManager clipboardManager1; + if (Build.VERSION.SDK_INT < 11) { + clipboardManager1 = (ClipboardManager)paramContext.getSystemService("clipboard"); + if (clipboardManager1 != null) + clipboardManager1.setText(paramString); + return; + } + ClipboardManager clipboardManager = (ClipboardManager)clipboardManager1.getSystemService("clipboard"); + if (clipboardManager != null) { + ClipData clipData = ClipData.newPlainText(null, paramString); + try { + clipboardManager.setPrimaryClip(clipData); + return; + } catch (NullPointerException nullPointerException) { + return; + } + } + } + + public static String getSystemProperty(String paramString) { + try { + Class clazz = Class.forName("android.os.SystemProperties"); + return (String)clazz.getMethod("get", new Class[] { String.class }).invoke(clazz, new Object[] { paramString }); + } catch (Exception exception) { + return ""; + } + } + + public static int getWebViewTouchMode(Object paramObject) { + if (paramObject instanceof WebView) + try { + Object object; + null = Build.VERSION.SDK_INT; + if (null >= 16) { + Field field = WebView.class.getDeclaredField("mProvider"); + field.setAccessible(true); + object = field.get(paramObject); + paramObject = object.getClass().getDeclaredField("mTouchMode"); + } else { + Field field = WebView.class.getDeclaredField("mTouchMode"); + object = paramObject; + paramObject = field; + } + paramObject.setAccessible(true); + return ((Integer)paramObject.get(object)).intValue(); + } catch (Exception exception) {} + return -1; + } + + public static boolean is1501_M02() { + return ("360".equals(Build.BRAND) && "1501-M02".equals(Build.MODEL)); + } + + public static final boolean isCoolpad9900() { + return "9900".equals(Build.MODEL); + } + + public static final boolean isCoolpad_9190L() { + return "Coolpad 9190L".equals(Build.MODEL); + } + + public static final boolean isEclair() { + return (Build.VERSION.SDK_INT == 7); + } + + public static final boolean isGTI9000() { + return Build.MODEL.equals("GT-I9000"); + } + + public static final boolean isGTI9100() { + return Build.MODEL.equals("GT-I9100"); + } + + public static final boolean isGTN7000() { + return Build.MODEL.equals("GT-N7000"); + } + + public static final boolean isGTN7105() { + return Build.MODEL.equals("GT-N7105"); + } + + public static final boolean isGT_S7562() { + return Build.MODEL.equals("GT-S7562"); + } + + public static final boolean isGtI9200(Context paramContext) { + int i = (paramContext.getResources().getDisplayMetrics()).widthPixels; + int j = (paramContext.getResources().getDisplayMetrics()).heightPixels; + return (i == 720 && j == 1280 && (paramContext.getResources().getDisplayMetrics()).density == 1.5D); + } + + public static final boolean isHTC7088(Context paramContext, float paramFloat) { + int i = (paramContext.getResources().getDisplayMetrics()).widthPixels; + int j = (paramContext.getResources().getDisplayMetrics()).heightPixels; + return (i == 540 && j == 960 && paramFloat == 1.5D); + } + + public static final boolean isHTC_T328d() { + return "HTC T328d".equals(Build.MODEL); + } + + public static final boolean isHongMI() { + return Build.MODEL.equals("2013023"); + } + + public static boolean isHuaweiOrHonor() { + return (Build.BRAND.equalsIgnoreCase("Huawei") || Build.BRAND.equalsIgnoreCase("Honor")); + } + + public static boolean isJelleyBean() { + return (Build.VERSION.SDK_INT >= 16); + } + + public static boolean isKingsun() { + return Build.BRAND.equalsIgnoreCase("KINGSUN"); + } + + public static final boolean isLenovoA560() { + return "Lenovo A560".equals(Build.MODEL); + } + + public static final boolean isLenovoA850() { + return "Lenovo A850+".equals(Build.MODEL); + } + + public static final boolean isLenovoS880() { + return "Lenovo S880".equals(Build.MODEL); + } + + public static final boolean isM030() { + return Build.MODEL.equals("M030"); + } + + public static final boolean isM032() { + return Build.MODEL.equals("M032"); + } + + public static final boolean isM9() { + return Build.MODEL.equals("M9"); + } + + public static final boolean isMI2() { + return Build.MODEL.equals("MI 2"); + } + + public static boolean isMIUI() { + return Build.HOST.contains("miui"); + } + + public static boolean isMIUIV6() { + return "v6".equalsIgnoreCase(getSystemProperty("ro.miui.ui.version.name")); + } + + public static final boolean isMZ() { + String str = Build.MODEL.toLowerCase(); + return (str.equals("m9") || str.equals("m032") || str.equals("meizu mx") || str.equals("mx2") || str.equals("mx")); + } + + public static final boolean isMeizu() { + return Build.BRAND.equalsIgnoreCase("MEIZU"); + } + + public static final boolean isMeizu3() { + return (isMeizu() && Build.DEVICE.equalsIgnoreCase("mx3")); + } + + public static final boolean isMeizuM9(Context paramContext) { + int i = (paramContext.getResources().getDisplayMetrics()).widthPixels; + int j = (paramContext.getResources().getDisplayMetrics()).heightPixels; + return (i == 640 && j == 960 && (paramContext.getResources().getDisplayMetrics()).density == 2.0D); + } + + public static final boolean isMeizuMX() { + return Build.MODEL.equals("MEIZU MX"); + } + + public static boolean isMeizuPro6() { + return (isMeizu() && Build.MODEL.equalsIgnoreCase("PRO 6")); + } + + public static final boolean isMi4() { + return Build.MODEL.equals("MI 4LTE"); + } + + public static boolean isMiUi() { + return !TextUtils.isEmpty(getSystemProperty("ro.miui.ui.version.name")); + } + + public static boolean isNX511J() { + return "NX511J".equals(Build.MODEL); + } + + public static final boolean isNexus5() { + return "Nexus 5".equals(Build.MODEL); + } + + public static boolean isNubia() { + return Build.BRAND.equalsIgnoreCase("nubia"); + } + + public static boolean isONEPLUS3() { + return "ONEPLUS A3000".equals(Build.MODEL); + } + + public static final boolean isOPPOX9077() { + return Build.MODEL.equals("X9077"); + } + + public static final boolean isOrAfterAndroidM() { + return (Build.VERSION.SDK_INT >= 23); + } + + public static final boolean isOrAfterGINGERBREAD() { + return (Build.VERSION.SDK_INT >= 9); + } + + public static final boolean isOrAfterKKKAT() { + return (Build.VERSION.SDK_INT >= 19); + } + + public static final boolean isOrAfterLollipop() { + return (Build.VERSION.SDK_INT >= 21); + } + + public static boolean isQiKU() { + return (Build.BRAND.equalsIgnoreCase("QiKU") || Build.BRAND.equalsIgnoreCase("360")); + } + + public static final boolean isSCHi929() { + return "SCH-i929".equals(Build.MODEL); + } + + public static final boolean isSMN9008V() { + return "SM-N9008V".equals(Build.MODEL); + } + + public static final boolean isSM_G9006V() { + return "SM-G9006V".equals(Build.MODEL); + } + + public static boolean isSamsung() { + return Build.BRAND.equalsIgnoreCase("samsung"); + } + + public static final boolean isSonyL39t() { + return "L39t".equals(Build.MODEL); + } + + public static final boolean isWebViewSoftLayer() { + return Build.MODEL.equals("8692-M02"); + } + + public static final boolean isXiaoMiOne() { + return Build.MODEL.toUpperCase().equals("MI-ONE PLUS"); + } + + public static boolean isXiaomi() { + return Build.BRAND.equalsIgnoreCase("Xiaomi"); + } + + public static final boolean isZTE_U5() { + return Build.MODEL.equals("ZTE U5"); + } + + public static final boolean isZTE_U970() { + return Build.MODEL.equals("ZTE U970"); + } + + public static final boolean isZTE_U985() { + return "ZTE U985".equals(Build.MODEL); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\utils\CompatibilitySupport.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/base/utils/DensityUtil.java b/df_miniapp/classes/com/tt/miniapp/base/utils/DensityUtil.java new file mode 100644 index 0000000..91eac0d --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/base/utils/DensityUtil.java @@ -0,0 +1,119 @@ +package com.tt.miniapp.base.utils; + +import android.app.KeyguardManager; +import android.content.Context; +import android.os.PowerManager; +import android.util.DisplayMetrics; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; + +public class DensityUtil { + private static float density = -1.0F; + + private static int heightPixels = 0; + + private static int sStatusBarHeight = -1; + + private static int widthPixels; + + public static int dip2px(Context paramContext, float paramFloat) { + return (int)(paramFloat * getScreenDensity(paramContext) + 0.5F); + } + + public static float getScreenDensity(Context paramContext) { + float f = density; + if (f >= 0.0F) + return f; + try { + DisplayMetrics displayMetrics = new DisplayMetrics(); + ((WindowManager)paramContext.getSystemService("window")).getDefaultDisplay().getMetrics(displayMetrics); + f = displayMetrics.density; + density = f; + return f; + } catch (Exception exception) { + return 2.0F; + } + } + + public static int getScreenHeight(Context paramContext) { + if (widthPixels == 0 || heightPixels == 0) + try { + DisplayMetrics displayMetrics = new DisplayMetrics(); + ((WindowManager)paramContext.getSystemService("window")).getDefaultDisplay().getMetrics(displayMetrics); + widthPixels = displayMetrics.widthPixels; + heightPixels = displayMetrics.heightPixels; + } catch (Exception exception) {} + if ((paramContext.getResources().getConfiguration()).orientation == 1) { + int k = widthPixels; + int m = heightPixels; + return (k > m) ? k : m; + } + int i = widthPixels; + int j = heightPixels; + return (i < j) ? i : j; + } + + public static int getScreenWidth(Context paramContext) { + if (widthPixels == 0 || heightPixels == 0) + try { + DisplayMetrics displayMetrics = new DisplayMetrics(); + ((WindowManager)paramContext.getSystemService("window")).getDefaultDisplay().getMetrics(displayMetrics); + widthPixels = displayMetrics.widthPixels; + heightPixels = displayMetrics.heightPixels; + } catch (Exception exception) {} + if ((paramContext.getResources().getConfiguration()).orientation == 1) { + int k = widthPixels; + int m = heightPixels; + return (k < m) ? k : m; + } + int i = widthPixels; + int j = heightPixels; + return (i > j) ? i : j; + } + + public static int getStatusBarHeight(Context paramContext) { + if (sStatusBarHeight < 0 && paramContext != null) { + int i = paramContext.getResources().getIdentifier("status_bar_height", "dimen", "android"); + if (i > 0) + sStatusBarHeight = paramContext.getResources().getDimensionPixelSize(i); + } + return sStatusBarHeight; + } + + public static final boolean isScreenLocked(Context paramContext) { + return !((KeyguardManager)paramContext.getSystemService("keyguard")).inKeyguardRestrictedInputMode(); + } + + public static final boolean isScreenOn(Context paramContext) { + return ((PowerManager)paramContext.getSystemService("power")).isScreenOn(); + } + + public static int measureViewHeight(View paramView) { + if (paramView == null) + return 0; + ViewGroup.LayoutParams layoutParams2 = paramView.getLayoutParams(); + ViewGroup.LayoutParams layoutParams1 = layoutParams2; + if (layoutParams2 == null) + layoutParams1 = new ViewGroup.LayoutParams(-1, -2); + int j = ViewGroup.getChildMeasureSpec(0, 0, layoutParams1.width); + int i = layoutParams1.height; + if (i > 0) { + i = View.MeasureSpec.makeMeasureSpec(i, 1073741824); + } else { + i = View.MeasureSpec.makeMeasureSpec(0, 0); + } + paramView.measure(j, i); + return paramView.getMeasuredHeight(); + } + + public static int px2dip(Context paramContext, float paramFloat) { + return (int)(paramFloat / getScreenDensity(paramContext) + 0.5F); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\bas\\utils\DensityUtil.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/ad/site/AdSiteService.java b/df_miniapp/classes/com/tt/miniapp/business/ad/site/AdSiteService.java new file mode 100644 index 0000000..0876bd0 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/ad/site/AdSiteService.java @@ -0,0 +1,72 @@ +package com.tt.miniapp.business.ad.site; + +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.a.a.a; +import com.bytedance.sandboxapp.protocol.service.a.a.a.a; +import com.bytedance.sandboxapp.protocol.service.a.a.a.b; +import com.bytedance.sandboxapp.protocol.service.a.a.a.c; +import com.bytedance.sandboxapp.protocol.service.a.a.a.d; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.util.ActivityUtil; +import com.tt.miniapphost.MiniappHostBase; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.option.ad.a.a; + +public class AdSiteService implements a { + private a mDxppManager; + + private final MiniAppContext mMiniAppContext; + + public AdSiteService(MiniAppContext paramMiniAppContext) { + this.mMiniAppContext = paramMiniAppContext; + } + + public void cancelDxppAd(b paramb) { + isSupportDxppManager(); + } + + public void dxppAd(b paramb) { + isSupportDxppManager(); + } + + public a getContext() { + return (a)this.mMiniAppContext; + } + + public boolean isSupportDxppManager() { + if (this.mDxppManager == null) + this.mDxppManager = HostDependManager.getInst().createAdSiteDxppManager(); + return (this.mDxppManager != null); + } + + public void onDestroy() { + if (this.mDxppManager != null) + this.mDxppManager = null; + } + + public void openAdLandPageLinks(d paramd, c paramc) { + if (isSupportDxppManager()) { + AppbrandApplicationImpl.getInst().setOpenedSchema(true); + ActivityUtil.previousGetSnapshot((MiniappHostBase)getContext().getCurrentActivity()); + AppbrandApplicationImpl.getInst().getForeBackgroundManager().pauseBackgroundOverLimitTimeStrategy(); + return; + } + if (paramc != null) + paramc.a(); + } + + public void subscribeAppAd(b paramb, a parama) { + isSupportDxppManager(); + } + + public void unsubscribeAppAd(b paramb) { + isSupportDxppManager(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\ad\site\AdSiteService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/app/SandboxAppService.java b/df_miniapp/classes/com/tt/miniapp/business/app/SandboxAppService.java new file mode 100644 index 0000000..b18c529 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/app/SandboxAppService.java @@ -0,0 +1,66 @@ +package com.tt.miniapp.business.app; + +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.b.a; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.jsbridge.ApiPermissionManager; +import com.tt.miniapp.process.bridge.InnerHostProcessBridge; +import com.tt.miniapp.streamloader.LoadTask; +import com.tt.miniapp.streamloader.StreamLoader; +import com.tt.miniapphost.AppbrandApplication; +import org.json.JSONArray; +import org.json.JSONObject; + +public class SandboxAppService implements a { + private final MiniAppContext mContext; + + public SandboxAppService(MiniAppContext paramMiniAppContext) { + this.mContext = paramMiniAppContext; + } + + public JSONArray getApiBlackList() { + return ApiPermissionManager.getBlackListJsonArray(); + } + + public JSONArray getApiWhiteList() { + return ApiPermissionManager.getWhiteListJsonArray(); + } + + public String getAppId() { + return (getContext().getAppInfo()).appId; + } + + public MiniAppContext getContext() { + return this.mContext; + } + + public JSONObject getExtConfigInfoJson() { + return getContext().getAppInfo().getExtConfigInfoJson(); + } + + public int getPkgType() { + LoadTask loadTask = StreamLoader.getLoadTask(); + if (loadTask != null) { + Boolean bool = loadTask.isUseLocalPkg(); + } else { + loadTask = null; + } + return (loadTask != null) ? (loadTask.booleanValue() ? 2 : 0) : -1; + } + + public String getPlatformSession() { + return InnerHostProcessBridge.getPlatformSession(getAppId()); + } + + public String getSchema() { + return AppbrandApplication.getInst().getSchema(); + } + + public void onDestroy() {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\app\SandboxAppService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/aweme/AwemeHandler.java b/df_miniapp/classes/com/tt/miniapp/business/aweme/AwemeHandler.java new file mode 100644 index 0000000..f2d8f51 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/aweme/AwemeHandler.java @@ -0,0 +1,76 @@ +package com.tt.miniapp.business.aweme; + +import com.bytedance.sandboxapp.protocol.service.c.c; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.process.handler.IAsyncHostDataHandler; +import com.tt.miniapphost.process.helper.AsyncIpcHandler; +import d.f.b.g; +import d.f.b.l; + +public final class AwemeHandler implements IAsyncHostDataHandler { + public static final Companion Companion = new Companion(null); + + public static AsyncIpcHandler asyncIpcHandler; + + public final void action(CrossProcessDataEntity paramCrossProcessDataEntity, AsyncIpcHandler paramAsyncIpcHandler) { + l.b(paramAsyncIpcHandler, "asyncIpcHandler"); + if (paramCrossProcessDataEntity == null) { + onFailure(paramAsyncIpcHandler, -1, "callData is null"); + return; + } + int i = paramCrossProcessDataEntity.getInt("aweme_action"); + String str2 = paramCrossProcessDataEntity.getString("aweme_uid"); + String str1 = paramCrossProcessDataEntity.getString("aweme_sec_uid"); + if (i != 1) { + if (i != 2) { + onFailure(paramAsyncIpcHandler, -1, "unknown action"); + return; + } + asyncIpcHandler = paramAsyncIpcHandler; + return; + } + HostDependManager.getInst().checkFollowAwemeState(str2, str1, new AwemeHandler$action$1(paramAsyncIpcHandler)); + } + + public final String getType() { + return "awemeHandler"; + } + + public final void onFailure(AsyncIpcHandler paramAsyncIpcHandler, int paramInt, String paramString) { + if (paramAsyncIpcHandler != null) + paramAsyncIpcHandler.callback(CrossProcessDataEntity.Builder.create().put("aweme_result", Integer.valueOf(-1)).put("aweme_error_code", Integer.valueOf(paramInt)).put("aweme_error_msg", paramString).build(), true); + } + + public static final class Companion { + private Companion() {} + + public final void notifyFollowAwemeState(AsyncIpcHandler param1AsyncIpcHandler, Boolean param1Boolean) { + if (param1AsyncIpcHandler != null) + param1AsyncIpcHandler.callback(CrossProcessDataEntity.Builder.create().put("aweme_result", Integer.valueOf(0)).put("aweme_has_followed", param1Boolean).build(), true); + } + + public final void notifyFollowAwemeState(boolean param1Boolean) { + notifyFollowAwemeState(AwemeHandler.asyncIpcHandler, Boolean.valueOf(param1Boolean)); + AwemeHandler.asyncIpcHandler = null; + } + } + + public static final class AwemeHandler$action$1 implements c { + AwemeHandler$action$1(AsyncIpcHandler param1AsyncIpcHandler) {} + + public final void onFailure(int param1Int, String param1String) { + AwemeHandler.this.onFailure(this.$asyncIpcHandler, param1Int, param1String); + } + + public final void onFollowAwemeResult(Boolean param1Boolean) { + AwemeHandler.Companion.notifyFollowAwemeState(this.$asyncIpcHandler, param1Boolean); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\aweme\AwemeHandler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/aweme/AwemeService.java b/df_miniapp/classes/com/tt/miniapp/business/aweme/AwemeService.java new file mode 100644 index 0000000..3c44582 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/aweme/AwemeService.java @@ -0,0 +1,147 @@ +package com.tt.miniapp.business.aweme; + +import android.app.Activity; +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.c.a; +import com.bytedance.sandboxapp.protocol.service.c.b; +import com.bytedance.sandboxapp.protocol.service.c.c; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.manager.UserInfoManager; +import com.tt.miniapp.service.suffixmeta.SuffixMetaEntity; +import com.tt.miniapp.service.suffixmeta.SuffixMetaServiceInterface; +import com.tt.miniapp.settings.data.SettingsDAO; +import com.tt.miniapp.settings.keys.Settings; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.option.b.b; +import d.f.b.l; + +public final class AwemeService implements a { + private final MiniAppContext context; + + public AwemeService(MiniAppContext paramMiniAppContext) { + this.context = paramMiniAppContext; + } + + public final boolean canCheckFollowAwemeState() { + return (SettingsDAO.getInt(getContext().getApplicationContext(), 0, new Enum[] { (Enum)Settings.TT_TMA_SWITCH, (Enum)Settings.TmaSwitch.CHECK_FOLLOW_AWEME_STATE }) == 1); + } + + public final void checkFollowAwemeState(String paramString1, String paramString2, c paramc) { + l.b(paramString1, "uid"); + l.b(paramString2, "secUid"); + l.b(paramc, "callback"); + HostProcessBridge.callAwemeHandler(1, paramString1, paramString2, paramc); + } + + public final void getAwemeUidFromSuffixMeta(b paramb) { + l.b(paramb, "callback"); + SuffixMetaServiceInterface suffixMetaServiceInterface = (SuffixMetaServiceInterface)getContext().getService(SuffixMetaServiceInterface.class); + if (suffixMetaServiceInterface != null) { + String str; + SuffixMetaEntity suffixMetaEntity = suffixMetaServiceInterface.getOrNull(true); + if (suffixMetaEntity != null) { + str = suffixMetaEntity.awemeUserId; + l.a(str, "suffixMetaEntity.awemeUserId"); + String str1 = suffixMetaEntity.awemeSecUserId; + l.a(str1, "suffixMetaEntity.awemeSecUserId"); + paramb.a(str, str1); + return; + } + str.getRemoteImmediately(new AwemeService$getAwemeUidFromSuffixMeta$1(paramb)); + return; + } + paramb.a("SuffixMetaServiceInterface is null"); + } + + public final MiniAppContext getContext() { + return this.context; + } + + public final boolean hasAwemeDepend() { + return HostDependManager.getInst().hasAwemeDepend(); + } + + public final boolean hasLogin() { + return (UserInfoManager.getHostClientUserInfo()).isLogin; + } + + public final void onDestroy() {} + + public final void openAwemeUserProfile(Activity paramActivity, String paramString1, String paramString2, boolean paramBoolean, c paramc) { + l.b(paramActivity, "activity"); + l.b(paramString1, "uid"); + l.b(paramString2, "secUid"); + l.b(paramc, "callback"); + HostDependManager.getInst().openAwemeUserProfile(paramActivity, paramString1, paramString2, paramBoolean, new AwemeService$openAwemeUserProfile$1(paramBoolean, paramString1, paramString2, paramc)); + } + + public static final class AwemeService$getAwemeUidFromSuffixMeta$1 implements SuffixMetaServiceInterface.SuffixMetaListener { + AwemeService$getAwemeUidFromSuffixMeta$1(b param1b) {} + + public final void onError(String param1String) { + b b1 = this.$callback; + String str = param1String; + if (param1String == null) + str = "unknown"; + b1.a(str); + } + + public final void onSuccess(SuffixMetaEntity param1SuffixMetaEntity) { + // Byte code: + // 0: aload_0 + // 1: getfield $callback : Lcom/bytedance/sandboxapp/protocol/service/c/b; + // 4: astore #4 + // 6: aload_1 + // 7: ifnull -> 21 + // 10: aload_1 + // 11: getfield awemeUserId : Ljava/lang/String; + // 14: astore_3 + // 15: aload_3 + // 16: astore_2 + // 17: aload_3 + // 18: ifnonnull -> 24 + // 21: ldc '' + // 23: astore_2 + // 24: aload_1 + // 25: ifnull -> 39 + // 28: aload_1 + // 29: getfield awemeSecUserId : Ljava/lang/String; + // 32: astore_3 + // 33: aload_3 + // 34: astore_1 + // 35: aload_3 + // 36: ifnonnull -> 42 + // 39: ldc '' + // 41: astore_1 + // 42: aload #4 + // 44: aload_2 + // 45: aload_1 + // 46: invokeinterface a : (Ljava/lang/String;Ljava/lang/String;)V + // 51: return + } + } + + public static final class AwemeService$openAwemeUserProfile$1 implements b { + AwemeService$openAwemeUserProfile$1(boolean param1Boolean, String param1String1, String param1String2, c param1c) {} + + public final void onFailure(int param1Int, String param1String) { + l.b(param1String, "msg"); + this.$callback.onFailure(param1Int, param1String); + } + + public final void onSuccess() { + if (this.$notifyFollowState) { + HostProcessBridge.callAwemeHandler(2, this.$uid, this.$secUid, this.$callback); + return; + } + this.$callback.onFollowAwemeResult(null); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\aweme\AwemeService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/cloud/LarkCloudService.java b/df_miniapp/classes/com/tt/miniapp/business/cloud/LarkCloudService.java new file mode 100644 index 0000000..515ac8b --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/cloud/LarkCloudService.java @@ -0,0 +1,224 @@ +package com.tt.miniapp.business.cloud; + +import android.text.TextUtils; +import android.util.Base64; +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.d.a; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.manager.UserInfoManager; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.entity.InitParamsEntity; +import d.a.ac; +import d.f.a.b; +import d.f.b.g; +import d.f.b.l; +import d.f.b.m; +import d.n; +import d.t; +import java.util.Map; + +public final class LarkCloudService implements a { + public static final Companion Companion = new Companion(null); + + private final MiniAppContext context; + + public LarkCloudService(MiniAppContext paramMiniAppContext) { + this.context = paramMiniAppContext; + } + + private final String encodeDigestToBase64(byte[] paramArrayOfbyte) { + if (paramArrayOfbyte == null) + return "-1"; + String str = Base64.encodeToString(paramArrayOfbyte, 11); + l.a(str, "Base64.encodeToString(di…RAP or Base64.NO_PADDING)"); + return str; + } + + private final String generateSign(Map paramMap) { + // Byte code: + // 0: aload_1 + // 1: invokeinterface keySet : ()Ljava/util/Set; + // 6: checkcast java/lang/Iterable + // 9: astore_2 + // 10: aload_2 + // 11: ldc '$this$sorted' + // 13: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 16: aload_2 + // 17: instanceof java/util/Collection + // 20: ifeq -> 133 + // 23: aload_2 + // 24: checkcast java/util/Collection + // 27: astore_3 + // 28: aload_3 + // 29: invokeinterface size : ()I + // 34: iconst_1 + // 35: if_icmpgt -> 46 + // 38: aload_2 + // 39: invokestatic f : (Ljava/lang/Iterable;)Ljava/util/List; + // 42: astore_2 + // 43: goto -> 142 + // 46: aload_3 + // 47: iconst_0 + // 48: anewarray java/lang/Comparable + // 51: invokeinterface toArray : ([Ljava/lang/Object;)[Ljava/lang/Object; + // 56: astore_2 + // 57: aload_2 + // 58: ifnull -> 123 + // 61: aload_2 + // 62: ifnull -> 113 + // 65: aload_2 + // 66: checkcast [Ljava/lang/Comparable; + // 69: astore_2 + // 70: aload_2 + // 71: ifnull -> 103 + // 74: aload_2 + // 75: checkcast [Ljava/lang/Object; + // 78: astore_2 + // 79: aload_2 + // 80: ldc '$this$sort' + // 82: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 85: aload_2 + // 86: arraylength + // 87: iconst_1 + // 88: if_icmple -> 95 + // 91: aload_2 + // 92: invokestatic sort : ([Ljava/lang/Object;)V + // 95: aload_2 + // 96: invokestatic a : ([Ljava/lang/Object;)Ljava/util/List; + // 99: astore_2 + // 100: goto -> 142 + // 103: new d/u + // 106: dup + // 107: ldc 'null cannot be cast to non-null type kotlin.Array' + // 109: invokespecial : (Ljava/lang/String;)V + // 112: athrow + // 113: new d/u + // 116: dup + // 117: ldc 'null cannot be cast to non-null type kotlin.Array' + // 119: invokespecial : (Ljava/lang/String;)V + // 122: athrow + // 123: new d/u + // 126: dup + // 127: ldc 'null cannot be cast to non-null type kotlin.Array' + // 129: invokespecial : (Ljava/lang/String;)V + // 132: athrow + // 133: aload_2 + // 134: invokestatic g : (Ljava/lang/Iterable;)Ljava/util/List; + // 137: astore_2 + // 138: aload_2 + // 139: invokestatic c : (Ljava/util/List;)V + // 142: aload_0 + // 143: ldc 'c9ba4701efd919cd748668a821abe126d147afb6d35a439112df25f01dcab26e' + // 145: aload_2 + // 146: checkcast java/lang/Iterable + // 149: ldc '&' + // 151: checkcast java/lang/CharSequence + // 154: aconst_null + // 155: aconst_null + // 156: iconst_0 + // 157: aconst_null + // 158: new com/tt/miniapp/business/cloud/LarkCloudService$generateSign$signStr$1 + // 161: dup + // 162: aload_1 + // 163: invokespecial : (Ljava/util/Map;)V + // 166: checkcast d/f/a/b + // 169: bipush #30 + // 171: aconst_null + // 172: invokestatic a : (Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Ld/f/a/b;ILjava/lang/Object;)Ljava/lang/String; + // 175: invokestatic encryptHmacSHA1 : (Ljava/lang/String;Ljava/lang/String;)[B + // 178: invokespecial encodeDigestToBase64 : ([B)Ljava/lang/String; + // 181: areturn + } + + private final String getAid() { + AppbrandContext appbrandContext = AppbrandContext.getInst(); + l.a(appbrandContext, "AppbrandContext.getInst()"); + InitParamsEntity initParamsEntity = appbrandContext.getInitParams(); + if (initParamsEntity != null) { + String str2 = initParamsEntity.getAppId(); + String str1 = str2; + return (str2 == null) ? "-1" : str1; + } + return "-1"; + } + + private final String getAnonymousId() { + String str = UserInfoManager.getLocalTmpId(); + if (!TextUtils.isEmpty(str)) { + l.a(str, "anonymousId"); + return str; + } + return "-1"; + } + + private final String getAppId() { + AppInfoEntity appInfoEntity = getContext().getAppInfo(); + if (appInfoEntity != null) { + String str2 = appInfoEntity.appId; + String str1 = str2; + return (str2 == null) ? "-1" : str1; + } + return "-1"; + } + + private final String getNonce() { + return String.valueOf(Math.random()); + } + + private final String getSessionId() { + String str = (UserInfoManager.getHostClientUserInfo()).sessionId; + if (!TextUtils.isEmpty(str)) { + l.a(str, "sessionId"); + return str; + } + return "-1"; + } + + private final String getTimeStamp() { + return String.valueOf(System.currentTimeMillis()); + } + + public final MiniAppContext getContext() { + return this.context; + } + + public final Map getRequestHeader() { + String str1 = getTimeStamp(); + String str2 = getNonce(); + String str3 = getAppId(); + String str4 = getAid(); + String str5 = getSessionId(); + String str6 = getAnonymousId(); + Map map = ac.b(new n[] { t.a("x-lc-mp-timestamp", str1), t.a("x-lc-mp-nonce", str2), t.a("x-lc-mp-appid", str3), t.a("x-lc-mp-aid", str4), t.a("x-lc-mp-sessionid", str5), t.a("x-lc-mp-anonymousid", str6) }); + map.put("x-lc-mp-sign", generateSign(ac.b(new n[] { t.a("timestamp", str1), t.a("nonce", str2), t.a("appId", str3), t.a("aId", str4), t.a("sessionId", str5), t.a("anonymousId", str6) }))); + return map; + } + + public final void onDestroy() {} + + public static final class Companion { + private Companion() {} + } + + static final class LarkCloudService$generateSign$signStr$1 extends m implements b { + LarkCloudService$generateSign$signStr$1(Map param1Map) { + super(1); + } + + public final String invoke(String param1String) { + l.b(param1String, "it"); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(param1String); + stringBuilder.append('='); + stringBuilder.append((String)this.$signMap.get(param1String)); + return stringBuilder.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\cloud\LarkCloudService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/component/video/MediaService.java b/df_miniapp/classes/com/tt/miniapp/business/component/video/MediaService.java new file mode 100644 index 0000000..e5e5777 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/component/video/MediaService.java @@ -0,0 +1,138 @@ +package com.tt.miniapp.business.component.video; + +import android.app.Activity; +import android.view.View; +import android.view.Window; +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.j.a; +import com.bytedance.sandboxapp.protocol.service.j.a.a; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.business.component.video.audiofocus.BDPAudioFocusManager; +import com.tt.miniapp.business.component.video.fullscreen.AnchorTransaction; +import com.tt.miniapp.business.component.video.fullscreen.BottomBarTransaction; +import com.tt.miniapp.business.component.video.fullscreen.FullScreenTransaction; +import com.tt.miniapp.business.component.video.fullscreen.NavigationBarTransaction; +import com.tt.miniapp.business.component.video.fullscreen.PullRefreshTransaction; +import com.tt.miniapp.business.component.video.fullscreen.SwipeBackTransaction; +import com.tt.miniapp.business.component.video.fullscreen.TabHostTransaction; +import com.tt.miniapp.util.VideoUtils; +import com.tt.miniapphost.util.UIUtils; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class MediaService implements a { + private final MiniAppContext mContext; + + private List mFullScreenTransactions; + + public MediaService(MiniAppContext paramMiniAppContext) { + this.mContext = paramMiniAppContext; + } + + private void setScreenOrientation(a.a parama) { + Activity activity = this.mContext.getCurrentActivity(); + if (activity == null) + return; + int i = null.$SwitchMap$com$bytedance$sandboxapp$protocol$service$media$MediaServiceInterface$ScreenOrientation[parama.ordinal()]; + byte b = 1; + if (i != 1) { + if (i != 2) { + if (i != 3) { + if (i != 4) { + if (i == 5) + b = 6; + } else { + b = 7; + } + } else { + b = 8; + } + } else { + b = 0; + } + } else { + b = 9; + } + UIUtils.setActivityOrientation(activity, b); + } + + private void setWindowFullScreen(boolean paramBoolean) { + Activity activity = this.mContext.getCurrentActivity(); + if (activity == null) + return; + Window window = activity.getWindow(); + if (window == null) + return; + if (paramBoolean) { + window.setFlags(1024, 1024); + return; + } + window.clearFlags(1024); + } + + public void abandonAudioFocus(a parama) { + if (parama == null) + return; + BDPAudioFocusManager.Companion.getInstance().abandonAudioFocus(this.mContext, parama); + } + + public a.d acquireAudioFocus(a parama) { + return (parama == null) ? a.d.FOCUS_REQUEST_FAILED : BDPAudioFocusManager.Companion.getInstance().requestAudioFocus(this.mContext, parama); + } + + public void enterFullScreen(View paramView) { + enterFullScreen(paramView, a.a.LANDSCAPE); + } + + public void enterFullScreen(View paramView, a.a parama) { + if (this.mFullScreenTransactions == null) { + this.mFullScreenTransactions = new ArrayList(); + this.mFullScreenTransactions.add(new BottomBarTransaction(this.mContext)); + this.mFullScreenTransactions.add(new NavigationBarTransaction(this.mContext)); + this.mFullScreenTransactions.add(new SwipeBackTransaction(this.mContext)); + this.mFullScreenTransactions.add(new AnchorTransaction(this.mContext)); + this.mFullScreenTransactions.add(new TabHostTransaction(this.mContext)); + this.mFullScreenTransactions.add(new PullRefreshTransaction(this.mContext)); + } + Iterator iterator = this.mFullScreenTransactions.iterator(); + while (iterator.hasNext()) + ((FullScreenTransaction)iterator.next()).enterFullScreen(); + if (paramView != null) + VideoUtils.showOrHideNaviBar(paramView, false); + setScreenOrientation(parama); + setWindowFullScreen(true); + } + + public void exitFullScreen(View paramView) { + List list = this.mFullScreenTransactions; + if (list != null) { + Iterator iterator = list.iterator(); + while (iterator.hasNext()) + ((FullScreenTransaction)iterator.next()).exitFullScreen(); + } + if (paramView != null) + VideoUtils.showOrHideNaviBar(paramView, true); + setScreenOrientation(a.a.PORTRAIT); + setWindowFullScreen(false); + } + + public MiniAppContext getContext() { + return this.mContext; + } + + public void onDestroy() { + List list = this.mFullScreenTransactions; + if (list != null) { + list.clear(); + this.mFullScreenTransactions = null; + } + BDPAudioFocusManager.Companion.getInstance().release(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\component\video\MediaService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/component/video/audiofocus/BDPAudioFocusManager$WhenMappings.java b/df_miniapp/classes/com/tt/miniapp/business/component/video/audiofocus/BDPAudioFocusManager$WhenMappings.java new file mode 100644 index 0000000..8e287d6 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/component/video/audiofocus/BDPAudioFocusManager$WhenMappings.java @@ -0,0 +1,10 @@ +package com.tt.miniapp.business.component.video.audiofocus; + +import com.bytedance.sandboxapp.protocol.service.j.a.a; + + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\component\video\audiofocus\BDPAudioFocusManager$WhenMappings.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/component/video/audiofocus/BDPAudioFocusManager.java b/df_miniapp/classes/com/tt/miniapp/business/component/video/audiofocus/BDPAudioFocusManager.java new file mode 100644 index 0000000..b9b41c0 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/component/video/audiofocus/BDPAudioFocusManager.java @@ -0,0 +1,295 @@ +package com.tt.miniapp.business.component.video.audiofocus; + +import android.media.AudioManager; +import com.bytedance.sandboxapp.protocol.service.j.a.a; +import com.tt.miniapp.base.MiniAppContext; +import d.f; +import d.f.a.a; +import d.f.b.g; +import d.f.b.l; +import d.f.b.m; +import d.f.b.u; +import d.f.b.v; +import d.f.b.x; +import d.g; +import d.k; +import d.k.d; +import d.k.h; +import java.util.Iterator; +import java.util.concurrent.ConcurrentLinkedDeque; + +public final class BDPAudioFocusManager { + public static final Companion Companion = new Companion(null); + + public static final f instance$delegate = g.a(k.SYNCHRONIZED, BDPAudioFocusManager$Companion$instance$2.INSTANCE); + + private AudioManager.OnAudioFocusChangeListener mAudioFocusListener; + + public final ConcurrentLinkedDeque mAudioFocusRequests = new ConcurrentLinkedDeque(); + + public a.b mAudioFocusState = a.b.FOCUS_NONE; + + private AudioManager mAudioManager; + + private BDPAudioFocusManager() {} + + private final a.b gainToLoss(a.b paramb) { + int i = BDPAudioFocusManager$WhenMappings.$EnumSwitchMapping$1[paramb.ordinal()]; + return (i != 1) ? ((i != 2 && i != 3) ? ((i != 4) ? a.b.FOCUS_NONE : a.b.FOCUS_LOSS_TRANSIENT_CAN_DUCK) : a.b.LOSS_TRANSIENT) : a.b.LOSS; + } + + private final void initAudioManager(MiniAppContext paramMiniAppContext) { + if (this.mAudioManager != null) + return; + Object object = paramMiniAppContext.getApplicationContext().getSystemService("audio"); + if (object instanceof AudioManager) + this.mAudioManager = (AudioManager)object; + } + + private final boolean isGainFocus(a.b paramb) { + int i = BDPAudioFocusManager$WhenMappings.$EnumSwitchMapping$0[paramb.ordinal()]; + return !(i != 1 && i != 2 && i != 3 && i != 4); + } + + public final void abandonAudioFocus(MiniAppContext paramMiniAppContext, a parama) { + l.b(paramMiniAppContext, "context"); + l.b(parama, "request"); + this.mAudioFocusRequests.remove(parama); + if (parama.c == a.e.SELF_ONLY) { + Iterator iterator = this.mAudioFocusRequests.iterator(); + while (iterator.hasNext()) + ((a)iterator.next()).d.onAudioFocusChanged(a.b.GAIN); + } + if (this.mAudioFocusRequests.size() == 0) { + initAudioManager(paramMiniAppContext); + AudioManager audioManager = this.mAudioManager; + if (audioManager != null) + audioManager.abandonAudioFocus(this.mAudioFocusListener); + synchronized (this.mAudioFocusRequests) { + this.mAudioFocusState = a.b.FOCUS_NONE; + return; + } + } + } + + public final void release() { + this.mAudioFocusRequests.clear(); + this.mAudioManager = null; + this.mAudioFocusListener = null; + } + + public final a.d requestAudioFocus(MiniAppContext paramMiniAppContext, a parama) { + // Byte code: + // 0: aload_1 + // 1: ldc 'context' + // 3: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 6: aload_2 + // 7: ldc 'request' + // 9: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 12: aload_2 + // 13: getfield c : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$e; + // 16: getstatic com/bytedance/sandboxapp/protocol/service/j/a/a$e.SELF_ONLY : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$e; + // 19: if_acmpne -> 70 + // 22: aload_0 + // 23: getfield mAudioFocusRequests : Ljava/util/concurrent/ConcurrentLinkedDeque; + // 26: invokevirtual iterator : ()Ljava/util/Iterator; + // 29: astore #6 + // 31: aload #6 + // 33: invokeinterface hasNext : ()Z + // 38: ifeq -> 70 + // 41: aload #6 + // 43: invokeinterface next : ()Ljava/lang/Object; + // 48: checkcast com/bytedance/sandboxapp/protocol/service/j/a/a + // 51: getfield d : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$c; + // 54: aload_0 + // 55: aload_2 + // 56: getfield a : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$b; + // 59: invokespecial gainToLoss : (Lcom/bytedance/sandboxapp/protocol/service/j/a/a$b;)Lcom/bytedance/sandboxapp/protocol/service/j/a/a$b; + // 62: invokeinterface onAudioFocusChanged : (Lcom/bytedance/sandboxapp/protocol/service/j/a/a$b;)V + // 67: goto -> 31 + // 70: aload_0 + // 71: getfield mAudioFocusRequests : Ljava/util/concurrent/ConcurrentLinkedDeque; + // 74: aload_2 + // 75: invokevirtual contains : (Ljava/lang/Object;)Z + // 78: ifne -> 90 + // 81: aload_0 + // 82: getfield mAudioFocusRequests : Ljava/util/concurrent/ConcurrentLinkedDeque; + // 85: aload_2 + // 86: invokevirtual offer : (Ljava/lang/Object;)Z + // 89: pop + // 90: aload_0 + // 91: aload_0 + // 92: getfield mAudioFocusState : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$b; + // 95: invokespecial isGainFocus : (Lcom/bytedance/sandboxapp/protocol/service/j/a/a$b;)Z + // 98: ifeq -> 105 + // 101: getstatic com/bytedance/sandboxapp/protocol/service/j/a/a$d.FOCUS_REQUEST_GRANTED : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$d; + // 104: areturn + // 105: aload_0 + // 106: aload_1 + // 107: invokespecial initAudioManager : (Lcom/tt/miniapp/base/MiniAppContext;)V + // 110: aload_0 + // 111: getfield mAudioManager : Landroid/media/AudioManager; + // 114: ifnonnull -> 121 + // 117: getstatic com/bytedance/sandboxapp/protocol/service/j/a/a$d.FOCUS_REQUEST_FAILED : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$d; + // 120: areturn + // 121: aload_0 + // 122: getfield mAudioFocusListener : Landroid/media/AudioManager$OnAudioFocusChangeListener; + // 125: ifnonnull -> 143 + // 128: aload_0 + // 129: new com/tt/miniapp/business/component/video/audiofocus/BDPAudioFocusManager$requestAudioFocus$1 + // 132: dup + // 133: aload_0 + // 134: invokespecial : (Lcom/tt/miniapp/business/component/video/audiofocus/BDPAudioFocusManager;)V + // 137: checkcast android/media/AudioManager$OnAudioFocusChangeListener + // 140: putfield mAudioFocusListener : Landroid/media/AudioManager$OnAudioFocusChangeListener; + // 143: aload_0 + // 144: getfield mAudioManager : Landroid/media/AudioManager; + // 147: astore_1 + // 148: aload_1 + // 149: ifnonnull -> 155 + // 152: invokestatic a : ()V + // 155: aload_0 + // 156: getfield mAudioFocusListener : Landroid/media/AudioManager$OnAudioFocusChangeListener; + // 159: astore #6 + // 161: aload_2 + // 162: getfield b : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$f; + // 165: astore #7 + // 167: aload #7 + // 169: ldc 'usage' + // 171: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 174: getstatic com/bytedance/sandboxapp/protocol/service/j/a/a$f.USAGE_MEDIA : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$f; + // 177: astore #8 + // 179: iconst_3 + // 180: istore_3 + // 181: aload #7 + // 183: aload #8 + // 185: if_acmpne -> 194 + // 188: iconst_3 + // 189: istore #4 + // 191: goto -> 197 + // 194: iconst_4 + // 195: istore #4 + // 197: aload_2 + // 198: getfield a : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$b; + // 201: astore_2 + // 202: aload_2 + // 203: ldc 'focusState' + // 205: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 208: getstatic com/bytedance/sandboxapp/protocol/service/j/a/b.a : [I + // 211: aload_2 + // 212: invokevirtual ordinal : ()I + // 215: iaload + // 216: istore #5 + // 218: iload #5 + // 220: iconst_1 + // 221: if_icmpeq -> 252 + // 224: iload #5 + // 226: iconst_2 + // 227: if_icmpeq -> 242 + // 230: iload #5 + // 232: iconst_3 + // 233: if_icmpeq -> 254 + // 236: iload #5 + // 238: iconst_4 + // 239: if_icmpeq -> 247 + // 242: iconst_2 + // 243: istore_3 + // 244: goto -> 254 + // 247: iconst_4 + // 248: istore_3 + // 249: goto -> 254 + // 252: iconst_1 + // 253: istore_3 + // 254: aload_1 + // 255: aload #6 + // 257: iload #4 + // 259: iload_3 + // 260: invokevirtual requestAudioFocus : (Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I + // 263: istore_3 + // 264: iload_3 + // 265: ifeq -> 290 + // 268: iload_3 + // 269: iconst_1 + // 270: if_icmpeq -> 286 + // 273: iload_3 + // 274: iconst_2 + // 275: if_icmpeq -> 282 + // 278: getstatic com/bytedance/sandboxapp/protocol/service/j/a/a$d.FOCUS_REQUEST_FAILED : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$d; + // 281: areturn + // 282: getstatic com/bytedance/sandboxapp/protocol/service/j/a/a$d.FOCUS_REQUEST_DELAYED : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$d; + // 285: areturn + // 286: getstatic com/bytedance/sandboxapp/protocol/service/j/a/a$d.FOCUS_REQUEST_GRANTED : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$d; + // 289: areturn + // 290: getstatic com/bytedance/sandboxapp/protocol/service/j/a/a$d.FOCUS_REQUEST_FAILED : Lcom/bytedance/sandboxapp/protocol/service/j/a/a$d; + // 293: areturn + } + + public static final class Companion { + private Companion() {} + + public final BDPAudioFocusManager getInstance() { + return (BDPAudioFocusManager)BDPAudioFocusManager.instance$delegate.getValue(); + } + } + + static final class BDPAudioFocusManager$Companion$instance$2 extends m implements a { + public static final BDPAudioFocusManager$Companion$instance$2 INSTANCE = new BDPAudioFocusManager$Companion$instance$2(); + + BDPAudioFocusManager$Companion$instance$2() { + super(0); + } + + public final BDPAudioFocusManager invoke() { + return new BDPAudioFocusManager(null); + } + } + + static final class BDPAudioFocusManager$requestAudioFocus$1 implements AudioManager.OnAudioFocusChangeListener { + public final void onAudioFocusChange(int param1Int) { + synchronized (BDPAudioFocusManager.this.mAudioFocusRequests) { + a.b b; + BDPAudioFocusManager bDPAudioFocusManager = BDPAudioFocusManager.this; + if (param1Int != -3) { + if (param1Int != -2) { + if (param1Int != -1) { + if (param1Int != 1) { + if (param1Int != 2) { + if (param1Int != 3) { + if (param1Int != 4) { + b = a.b.FOCUS_NONE; + } else { + b = a.b.GAIN_TRANSIENT_EXCLUSIVE; + } + } else { + b = a.b.GAIN_TRANSIENT_MAY_DUCK; + } + } else { + b = a.b.GAIN_TRANSIENT; + } + } else { + b = a.b.GAIN; + } + } else { + b = a.b.LOSS; + } + } else { + b = a.b.LOSS_TRANSIENT; + } + } else { + b = a.b.FOCUS_LOSS_TRANSIENT_CAN_DUCK; + } + bDPAudioFocusManager.mAudioFocusState = b; + Iterator iterator = BDPAudioFocusManager.this.mAudioFocusRequests.iterator(); + while (iterator.hasNext()) + ((a)iterator.next()).d.onAudioFocusChanged(BDPAudioFocusManager.this.mAudioFocusState); + return; + } + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\component\video\audiofocus\BDPAudioFocusManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/AnchorTransaction.java b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/AnchorTransaction.java new file mode 100644 index 0000000..17895fa --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/AnchorTransaction.java @@ -0,0 +1,44 @@ +package com.tt.miniapp.business.component.video.fullscreen; + +import android.app.Activity; +import android.view.View; +import com.tt.miniapp.base.MiniAppContext; + +public class AnchorTransaction extends FullScreenTransaction { + private boolean mAnchorButtonHidden; + + public AnchorTransaction(MiniAppContext paramMiniAppContext) { + super(paramMiniAppContext); + } + + private View getAnchorButton() { + Activity activity = getCurrentActivity(); + return (activity == null) ? null : activity.findViewById(2097545246); + } + + public void enterFullScreen() { + View view = getAnchorButton(); + if (view == null) + return; + if (view.getVisibility() == 0) { + view.setVisibility(4); + this.mAnchorButtonHidden = true; + } + } + + public void exitFullScreen() { + if (!this.mAnchorButtonHidden) + return; + View view = getAnchorButton(); + if (view == null) + return; + view.setVisibility(0); + this.mAnchorButtonHidden = false; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\component\video\fullscreen\AnchorTransaction.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/BottomBarTransaction.java b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/BottomBarTransaction.java new file mode 100644 index 0000000..bb800f3 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/BottomBarTransaction.java @@ -0,0 +1,40 @@ +package com.tt.miniapp.business.component.video.fullscreen; + +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.page.AppbrandSinglePage; + +public class BottomBarTransaction extends FullScreenTransaction { + private boolean mBottomHidden; + + public BottomBarTransaction(MiniAppContext paramMiniAppContext) { + super(paramMiniAppContext); + } + + public void enterFullScreen() { + AppbrandSinglePage appbrandSinglePage = getCurrentPage(); + if (appbrandSinglePage == null) + return; + if (appbrandSinglePage.isBottomBarHidden()) + return; + appbrandSinglePage.hideBottomBar(); + this.mBottomHidden = true; + } + + public void exitFullScreen() { + if (!this.mBottomHidden) + return; + this.mBottomHidden = false; + AppbrandSinglePage appbrandSinglePage = getCurrentPage(); + if (appbrandSinglePage == null) + return; + if (appbrandSinglePage.isBottomBarShown()) + return; + appbrandSinglePage.showBottomBar(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\component\video\fullscreen\BottomBarTransaction.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/FullScreenTransaction.java b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/FullScreenTransaction.java new file mode 100644 index 0000000..83e1365 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/FullScreenTransaction.java @@ -0,0 +1,50 @@ +package com.tt.miniapp.business.component.video.fullscreen; + +import android.app.Activity; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.TTAppbrandTabUI; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.page.AppbrandSinglePage; +import com.tt.miniapp.page.AppbrandViewWindowBase; +import com.tt.miniapp.route.PageRouter; +import com.tt.miniapphost.IActivityProxy; +import com.tt.miniapphost.MiniappHostBase; + +public abstract class FullScreenTransaction { + protected MiniAppContext mContext; + + public FullScreenTransaction(MiniAppContext paramMiniAppContext) { + this.mContext = paramMiniAppContext; + } + + public abstract void enterFullScreen(); + + public abstract void exitFullScreen(); + + protected Activity getCurrentActivity() { + return this.mContext.getCurrentActivity(); + } + + protected AppbrandSinglePage getCurrentPage() { + AppbrandViewWindowBase appbrandViewWindowBase = (AppbrandViewWindowBase)((PageRouter)AppbrandApplicationImpl.getInst().getService(PageRouter.class)).getViewWindowRoot().getTopView(); + return (appbrandViewWindowBase != null) ? appbrandViewWindowBase.getCurrentPage() : null; + } + + protected AppbrandViewWindowBase getCurrentViewWindowBase() { + return (AppbrandViewWindowBase)((PageRouter)AppbrandApplicationImpl.getInst().getService(PageRouter.class)).getViewWindowRoot().getTopView(); + } + + protected TTAppbrandTabUI getTabUI() { + Activity activity = this.mContext.getCurrentActivity(); + if (!(activity instanceof MiniappHostBase)) + return null; + IActivityProxy iActivityProxy = ((MiniappHostBase)activity).getActivityProxy(); + return (iActivityProxy == null) ? null : (!(iActivityProxy instanceof TTAppbrandTabUI) ? null : (TTAppbrandTabUI)iActivityProxy); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\component\video\fullscreen\FullScreenTransaction.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/NavigationBarTransaction.java b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/NavigationBarTransaction.java new file mode 100644 index 0000000..8ab8ad0 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/NavigationBarTransaction.java @@ -0,0 +1,44 @@ +package com.tt.miniapp.business.component.video.fullscreen; + +import android.view.View; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.page.AppbrandSinglePage; + +public class NavigationBarTransaction extends FullScreenTransaction { + private boolean mNavigationBarHidden; + + public NavigationBarTransaction(MiniAppContext paramMiniAppContext) { + super(paramMiniAppContext); + } + + private View getNavigationBar() { + AppbrandSinglePage appbrandSinglePage = getCurrentPage(); + return (appbrandSinglePage == null) ? null : appbrandSinglePage.getTitleBar().getTitleView(); + } + + public void enterFullScreen() { + View view = getNavigationBar(); + if (view == null) + return; + if (view.getVisibility() == 0) { + this.mNavigationBarHidden = true; + view.setVisibility(8); + } + } + + public void exitFullScreen() { + if (!this.mNavigationBarHidden) + return; + View view = getNavigationBar(); + if (view == null) + return; + view.setVisibility(0); + this.mNavigationBarHidden = false; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\component\video\fullscreen\NavigationBarTransaction.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/PullRefreshTransaction.java b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/PullRefreshTransaction.java new file mode 100644 index 0000000..725201c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/PullRefreshTransaction.java @@ -0,0 +1,36 @@ +package com.tt.miniapp.business.component.video.fullscreen; + +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.page.AppbrandSinglePage; + +public final class PullRefreshTransaction extends FullScreenTransaction { + private boolean mDisablePullToRefresh; + + public PullRefreshTransaction(MiniAppContext paramMiniAppContext) { + super(paramMiniAppContext); + } + + public final void enterFullScreen() { + AppbrandSinglePage appbrandSinglePage = getCurrentPage(); + if (appbrandSinglePage != null && appbrandSinglePage.pullDownRefreshEnabled()) { + appbrandSinglePage.setDisableRefresh(true); + this.mDisablePullToRefresh = true; + } + } + + public final void exitFullScreen() { + if (!this.mDisablePullToRefresh) + return; + AppbrandSinglePage appbrandSinglePage = getCurrentPage(); + if (appbrandSinglePage != null) { + appbrandSinglePage.setDisableRefresh(false); + this.mDisablePullToRefresh = false; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\component\video\fullscreen\PullRefreshTransaction.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/SwipeBackTransaction.java b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/SwipeBackTransaction.java new file mode 100644 index 0000000..e1c1a0f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/SwipeBackTransaction.java @@ -0,0 +1,45 @@ +package com.tt.miniapp.business.component.video.fullscreen; + +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.page.AppbrandSinglePage; +import com.tt.miniapp.page.AppbrandViewWindowBase; + +public class SwipeBackTransaction extends FullScreenTransaction { + private boolean mDisableGesture; + + public SwipeBackTransaction(MiniAppContext paramMiniAppContext) { + super(paramMiniAppContext); + } + + public void enterFullScreen() { + AppbrandSinglePage appbrandSinglePage = getCurrentPage(); + if (appbrandSinglePage == null) + return; + AppbrandViewWindowBase appbrandViewWindowBase = appbrandSinglePage.getHost(); + if (appbrandViewWindowBase == null) + return; + if (appbrandViewWindowBase.isDragEnabled()) { + appbrandViewWindowBase.setDragEnable(false); + this.mDisableGesture = true; + } + } + + public void exitFullScreen() { + if (!this.mDisableGesture) + return; + AppbrandSinglePage appbrandSinglePage = getCurrentPage(); + if (appbrandSinglePage == null) + return; + AppbrandViewWindowBase appbrandViewWindowBase = appbrandSinglePage.getHost(); + if (appbrandViewWindowBase == null) + return; + appbrandViewWindowBase.setDragEnable(true); + this.mDisableGesture = false; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\component\video\fullscreen\SwipeBackTransaction.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/TabHostTransaction.java b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/TabHostTransaction.java new file mode 100644 index 0000000..cefeec3 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/component/video/fullscreen/TabHostTransaction.java @@ -0,0 +1,44 @@ +package com.tt.miniapp.business.component.video.fullscreen; + +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.page.AppbrandHomePageViewWindow; +import com.tt.miniapp.page.AppbrandViewWindowBase; + +public class TabHostTransaction extends FullScreenTransaction { + private boolean mTabHostHidden; + + public TabHostTransaction(MiniAppContext paramMiniAppContext) { + super(paramMiniAppContext); + } + + public void enterFullScreen() { + AppbrandViewWindowBase appbrandViewWindowBase = getCurrentViewWindowBase(); + if (!(appbrandViewWindowBase instanceof AppbrandHomePageViewWindow)) + return; + AppbrandHomePageViewWindow appbrandHomePageViewWindow = (AppbrandHomePageViewWindow)appbrandViewWindowBase; + if (appbrandHomePageViewWindow.isTabMode()) { + if (!appbrandHomePageViewWindow.isTabBarVisible()) + return; + appbrandHomePageViewWindow.setTabBarVisibility(false, false); + this.mTabHostHidden = true; + } + } + + public void exitFullScreen() { + if (!this.mTabHostHidden) + return; + this.mTabHostHidden = false; + AppbrandViewWindowBase appbrandViewWindowBase = getCurrentViewWindowBase(); + if (!(appbrandViewWindowBase instanceof AppbrandHomePageViewWindow)) + return; + AppbrandHomePageViewWindow appbrandHomePageViewWindow = (AppbrandHomePageViewWindow)appbrandViewWindowBase; + if (appbrandHomePageViewWindow.isTabMode() && !appbrandHomePageViewWindow.isTabBarVisible()) + appbrandHomePageViewWindow.setTabBarVisibility(true, false); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\component\video\fullscreen\TabHostTransaction.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/device/DeviceService.java b/df_miniapp/classes/com/tt/miniapp/business/device/DeviceService.java new file mode 100644 index 0000000..87380fc --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/device/DeviceService.java @@ -0,0 +1,50 @@ +package com.tt.miniapp.business.device; + +import android.text.TextUtils; +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.e.a; +import com.bytedance.sandboxapp.protocol.service.e.b; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.InitParamsEntity; +import com.tt.option.q.d; +import d.f.b.l; + +public final class DeviceService implements b { + private final a context; + + private a mCacheDeviceInfo; + + public DeviceService(a parama) { + this.context = parama; + } + + public final a getContext() { + return this.context; + } + + public final a getDeviceInfo() { + a a2 = this.mCacheDeviceInfo; + if (a2 != null) + return a2; + AppbrandContext appbrandContext = AppbrandContext.getInst(); + l.a(appbrandContext, "AppbrandContext.getInst()"); + InitParamsEntity initParamsEntity = appbrandContext.getInitParams(); + String str = d.a(); + if (TextUtils.isEmpty(str)) { + l.a(initParamsEntity, "initParams"); + return new a(str, initParamsEntity.getOsVersion(), initParamsEntity.getDevicePlatform()); + } + l.a(initParamsEntity, "initParams"); + a a1 = new a(str, initParamsEntity.getOsVersion(), initParamsEntity.getDevicePlatform()); + this.mCacheDeviceInfo = a1; + return a1; + } + + public final void onDestroy() {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\device\DeviceService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/base/ApiCallbackHandler.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/base/ApiCallbackHandler.java new file mode 100644 index 0000000..5f66fb8 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/base/ApiCallbackHandler.java @@ -0,0 +1,81 @@ +package com.tt.miniapp.business.frontendapihandle.base; + +import android.text.TextUtils; +import com.tt.frontendapiinterface.ApiCallResult; +import com.tt.frontendapiinterface.a; +import java.util.HashMap; +import org.json.JSONObject; + +public abstract class ApiCallbackHandler { + private void callbackFail(String paramString, JSONObject paramJSONObject, int paramInt) { + callbackApiHandleResult(ApiCallResult.a.a(getApiName(), paramString, paramInt).a(paramJSONObject).a()); + } + + protected abstract void callbackApiHandleResult(ApiCallResult paramApiCallResult); + + public final void callbackCancel() { + callbackApiHandleResult(ApiCallResult.a.c(getApiName()).a()); + } + + @Deprecated + public final void callbackCancel(String paramString, JSONObject paramJSONObject) { + callbackApiHandleResult(ApiCallResult.a.c(getApiName()).d(paramString).a(paramJSONObject).a()); + } + + public final void callbackFail(String paramString) { + callbackFail(paramString, null, 0); + } + + public final void callbackFail(String paramString, int paramInt) { + callbackFail(paramString, null, paramInt); + } + + @Deprecated + public final void callbackFail(String paramString, Throwable paramThrowable) { + String str = paramString; + if (TextUtils.isEmpty(paramString)) { + str = paramString; + if (paramThrowable != null) + str = a.a(paramThrowable); + } + callbackFail(str, null, 0); + } + + @Deprecated + public final void callbackFail(String paramString, JSONObject paramJSONObject) { + callbackFail(paramString, paramJSONObject, 0); + } + + public final void callbackFail(Throwable paramThrowable) { + callbackFail(a.a(paramThrowable), null, 0); + } + + public final void callbackOk() { + callbackOk(null, null); + } + + public final void callbackOk(String paramString) { + callbackOk(paramString, null); + } + + public final void callbackOk(String paramString, JSONObject paramJSONObject) { + callbackApiHandleResult((new ApiCallResult.a(getApiName(), "ok")).a(paramJSONObject).d(paramString).a()); + } + + @Deprecated + public final void callbackOk(HashMap paramHashMap) { + callbackOk(null, a.a(paramHashMap)); + } + + public final void callbackOk(JSONObject paramJSONObject) { + callbackOk(null, paramJSONObject); + } + + protected abstract String getApiName(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\base\ApiCallbackHandler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/entity/CommonApiOutputParam.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/entity/CommonApiOutputParam.java new file mode 100644 index 0000000..b9c21ff --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/entity/CommonApiOutputParam.java @@ -0,0 +1,31 @@ +package com.tt.miniapp.business.frontendapihandle.entity; + +import com.tt.frontendapiinterface.g; +import java.util.Iterator; +import org.json.JSONObject; + +public class CommonApiOutputParam implements g { + private final JSONObject mJsonObject; + + public CommonApiOutputParam(JSONObject paramJSONObject) { + this.mJsonObject = paramJSONObject; + } + + public T getData(String paramString) { + Object object2 = this.mJsonObject.opt(paramString); + Object object1 = object2; + if (object2 == JSONObject.NULL) + object1 = null; + return (T)object1; + } + + public Iterator keys() { + return this.mJsonObject.keys(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\entity\CommonApiOutputParam.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/OverridePreHandler.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/OverridePreHandler.java new file mode 100644 index 0000000..fbd6b5a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/OverridePreHandler.java @@ -0,0 +1,32 @@ +package com.tt.miniapp.business.frontendapihandle.handler; + +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.a.b; +import com.bytedance.sandboxapp.protocol.service.api.a.a; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import com.bytedance.sandboxapp.protocol.service.api.entity.b; +import com.tt.miniapphost.AppbrandContext; +import com.tt.option.e.f; + +public class OverridePreHandler extends b { + public OverridePreHandler(a parama) { + super(parama); + } + + public b preHandleApi(a parama, a parama1) { + f.a a1 = AppbrandContext.getInst().getExtensionApiCreator(); + if (a1 != null) { + if (a1.a(parama1.apiName, null) != null) + return b.c; + if (a1.a(parama1.apiName, null, 0, null) != null) + return b.c; + } + return null; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\OverridePreHandler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/SubScribeMessageApiHandler.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/SubScribeMessageApiHandler.java new file mode 100644 index 0000000..bfa578f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/SubScribeMessageApiHandler.java @@ -0,0 +1,76 @@ +package com.tt.miniapp.business.frontendapihandle.handler; + +import android.util.ArrayMap; +import com.bytedance.sandboxapp.a.a.d.a; +import com.bytedance.sandboxapp.c.a.a.a; +import com.bytedance.sandboxapp.c.a.a.c; +import com.bytedance.sandboxapp.c.a.b; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import com.storage.async.Action; +import com.tt.miniapp.business.frontendapihandle.handler.subscribe.SubScribeMessageProcessor; +import com.tt.miniapp.thread.ThreadPools; +import com.tt.miniapp.thread.ThreadUtil; +import d.f.b.l; +import java.util.Map; +import org.json.JSONArray; + +public class SubScribeMessageApiHandler extends c { + public SubScribeMessageProcessor subScribeMessageProcessor; + + public SubScribeMessageApiHandler(b paramb, a parama) { + super(paramb, parama); + } + + public void handleApi(final a apiInvokeInfo) { + final Object templateIdArray = apiInvokeInfo.a("tmplIds"); + final String apiName = ((a)this).apiName; + if (!(object instanceof JSONArray)) { + triggerApiCallback(apiInvokeInfo, str, 1002, "invalid params", null); + return; + } + object = object; + if (object.length() <= 0) { + triggerApiCallback(apiInvokeInfo, str, 1002, "invalid params", null); + return; + } + if (!(object.opt(0) instanceof String)) { + triggerApiCallback(apiInvokeInfo, str, 1002, "invalid params", null); + return; + } + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + SubScribeMessageApiHandler.this.subScribeMessageProcessor = new SubScribeMessageProcessor(); + SubScribeMessageApiHandler.this.subScribeMessageProcessor.requestSubScribeMessage(templateIdArray, new SubScribeMessageProcessor.SubscribeMessageCallback() { + public void onResult(int param2Int, String param2String, ArrayMap param2ArrayMap) { + SubScribeMessageApiHandler.this.triggerApiCallback(apiInvokeInfo, apiName, param2Int, param2String, param2ArrayMap); + } + }); + } + }ThreadPools.defaults()); + } + + public void triggerApiCallback(a parama, String paramString1, int paramInt, String paramString2, ArrayMap paramArrayMap) { + ApiCallbackData.a a1; + if (paramInt == 0) { + l.b(paramString1, "apiName"); + a1 = new ApiCallbackData.a(paramString1, "ok", null); + } else { + String str = paramString2; + if (paramString2 == null) + str = ""; + a1 = ApiCallbackData.a.a((String)a1, str, 0); + a1.a("errCode", Integer.valueOf(paramInt)); + } + if (paramArrayMap != null && paramArrayMap.size() > 0) + for (Map.Entry entry : paramArrayMap.entrySet()) + a1.a((String)entry.getKey(), entry.getValue()); + parama.a(a1.a()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\SubScribeMessageApiHandler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiCreateSocketTaskParam.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiCreateSocketTaskParam.java new file mode 100644 index 0000000..7d12f96 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiCreateSocketTaskParam.java @@ -0,0 +1,45 @@ +package com.tt.miniapp.business.frontendapihandle.handler.net; + +import com.tt.frontendapiinterface.f; +import com.tt.frontendapiinterface.g; +import org.json.JSONArray; +import org.json.JSONObject; + +public class ApiCreateSocketTaskParam { + public static class InputParam implements f { + public boolean __skipDomainCheck__; + + public JSONObject header; + + public String method; + + public JSONArray protocols; + + public String socketType; + + public String url; + + public InputParam(String param1String1, String param1String2, String param1String3, JSONObject param1JSONObject, JSONArray param1JSONArray, boolean param1Boolean) { + this.socketType = param1String1; + this.url = param1String2; + this.method = param1String3; + this.header = param1JSONObject; + this.protocols = param1JSONArray; + this.__skipDomainCheck__ = param1Boolean; + } + } + + public static class OutputParam implements g { + public String errMsg; + + public int socketTaskId; + + public String socketType; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\net\ApiCreateSocketTaskParam.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiOperateSocketTask.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiOperateSocketTask.java new file mode 100644 index 0000000..7e74c35 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiOperateSocketTask.java @@ -0,0 +1,110 @@ +package com.tt.miniapp.business.frontendapihandle.handler.net; + +import android.text.TextUtils; +import com.tt.frontendapiinterface.b; +import com.tt.miniapp.websocket.mgr.SocketManager; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.entity.ApiErrorInfoEntity; +import com.tt.option.e.e; +import g.i; +import org.json.JSONArray; +import org.json.JSONObject; + +public class ApiOperateSocketTask extends b { + public ApiOperateSocketTask(String paramString, int paramInt, e parame) { + super(paramString, paramInt, parame); + } + + private void closeCollection() { + boolean bool; + try { + JSONObject jSONObject = new JSONObject(this.mArgs); + int i = jSONObject.optInt("socketTaskId"); + int j = jSONObject.optInt("code"); + String str = jSONObject.optString("reason"); + bool = SocketManager.getInst().closeSocket(i, j, str); + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "ApiOperateSocketTask", exception.getStackTrace()); + bool = false; + } + callbackDefaultMsg(bool); + } + + private i getByteString(JSONArray paramJSONArray) { + if (paramJSONArray != null) { + int i = 0; + try { + int j = paramJSONArray.length(); + while (i < j) { + JSONObject jSONObject = paramJSONArray.getJSONObject(i); + if (TextUtils.equals(jSONObject.getString("key"), "data")) + return i.decodeBase64(jSONObject.optString("base64")); + i++; + } + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "ApiOperateSocketTask", exception.getStackTrace()); + } + } + return null; + } + + private void sendMsg() { + try { + String str; + ApiErrorInfoEntity apiErrorInfoEntity = new ApiErrorInfoEntity(); + JSONObject jSONObject = new JSONObject(this.mArgs); + int i = jSONObject.optInt("socketTaskId"); + boolean bool1 = jSONObject.has("data"); + boolean bool2 = jSONObject.has("__nativeBuffers__"); + if (bool1) { + str = jSONObject.optString("data"); + bool1 = SocketManager.getInst().sendText(i, str, apiErrorInfoEntity); + } else if (bool2) { + bool1 = SocketManager.getInst().sendArrayBuffer(i, getByteString(str.optJSONArray("__nativeBuffers__")), apiErrorInfoEntity); + } else { + apiErrorInfoEntity.append(paramIllegalMsg("data")); + bool1 = false; + } + if (bool1) { + callbackDefaultMsg(true); + return; + } + doCallbackByApiHandler(makeMsgByResult(false, null, apiErrorInfoEntity.getErrorMsg(), apiErrorInfoEntity.getThrowable()).toString()); + return; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "ApiOperateSocketTask", exception.getStackTrace()); + callbackException(exception); + return; + } + } + + public void act() { + try { + String str = (new JSONObject(this.mArgs)).optString("operationType"); + if (TextUtils.equals(str, "send")) { + sendMsg(); + return; + } + if (TextUtils.equals("close", str)) { + closeCollection(); + return; + } + callbackIllegalParam("operationType"); + return; + } catch (Exception exception) { + callbackDefaultMsg(false); + AppBrandLogger.stacktrace(6, "ApiOperateSocketTask", exception.getStackTrace()); + return; + } + } + + public String getActionName() { + return "operateSocketTask"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\net\ApiOperateSocketTask.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiOperateSocketTaskParam.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiOperateSocketTaskParam.java new file mode 100644 index 0000000..37885c5 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiOperateSocketTaskParam.java @@ -0,0 +1,93 @@ +package com.tt.miniapp.business.frontendapihandle.handler.net; + +import com.tt.frontendapiinterface.f; +import com.tt.frontendapiinterface.g; +import com.tt.miniapp.msg.bean.NativeBufferItem; +import java.util.List; + +public class ApiOperateSocketTaskParam { + public static class InputParam implements f { + public List __nativeBuffers__; + + public int code; + + public String data; + + public String operationType; + + public String reason; + + public int socketTaskId; + + public InputParam(String param1String1, int param1Int1, String param1String2, List param1List, int param1Int2, String param1String3) { + this.operationType = param1String1; + this.socketTaskId = param1Int1; + this.data = param1String2; + this.__nativeBuffers__ = param1List; + this.code = param1Int2; + this.reason = param1String3; + } + } + + public static class OutputParam implements g { + public List __nativeBuffers__; + + public String data; + + public String errMsg; + + public String errStack; + + public String header; + + public String protocolType; + + public int socketTaskId; + + public String socketType; + + public String state; + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("OutputParam{errMsg='"); + stringBuilder.append(this.errMsg); + stringBuilder.append('\''); + stringBuilder.append(", errStack='"); + stringBuilder.append(this.errStack); + stringBuilder.append('\''); + stringBuilder.append(", socketTaskId="); + stringBuilder.append(this.socketTaskId); + stringBuilder.append(", socketType='"); + stringBuilder.append(this.socketType); + stringBuilder.append('\''); + stringBuilder.append(", protocolType='"); + stringBuilder.append(this.protocolType); + stringBuilder.append('\''); + stringBuilder.append(", state='"); + stringBuilder.append(this.state); + stringBuilder.append('\''); + stringBuilder.append(", header='"); + String str = this.header; + if (str != null) { + str = str.replaceAll("\n", "\\n"); + } else { + str = ""; + } + stringBuilder.append(str); + stringBuilder.append('\''); + stringBuilder.append(", data='"); + stringBuilder.append(this.data); + stringBuilder.append('\''); + stringBuilder.append(", __nativeBuffers__="); + stringBuilder.append(this.__nativeBuffers__); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\net\ApiOperateSocketTaskParam.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiOperateSocketTaskV2.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiOperateSocketTaskV2.java new file mode 100644 index 0000000..9b6aa4c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/ApiOperateSocketTaskV2.java @@ -0,0 +1,142 @@ +package com.tt.miniapp.business.frontendapihandle.handler.net; + +import android.text.TextUtils; +import com.tt.frontendapiinterface.f; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.msg.ApiHandlerV2; +import com.tt.miniapp.msg.ApiParamParser; +import com.tt.miniapp.msg.bean.NativeBufferItem; +import com.tt.miniapp.websocket.mgr.SocketManagerV2; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.entity.ApiErrorInfoEntity; +import com.tt.option.e.e; +import g.i; +import java.nio.ByteBuffer; +import java.util.List; + +public class ApiOperateSocketTaskV2 extends ApiHandlerV2 { + private ApiOperateSocketTaskParam.InputParam mInputParam; + + public ApiOperateSocketTaskV2(f paramf, int paramInt, e parame) { + super(paramf, paramInt, parame); + } + + private void callback(ApiOperateSocketTaskParam.OutputParam paramOutputParam) { + AppbrandApplicationImpl.getInst().getJsBridge().invokeApi(getActionName(), paramOutputParam, this.mCallBackId); + } + + private void closeCollection() { + boolean bool; + try { + int i = this.mInputParam.socketTaskId; + int j = this.mInputParam.code; + String str = this.mInputParam.reason; + bool = SocketManagerV2.getInst().closeSocket(i, j, str); + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "ApiOperateSocketTaskV2", exception.getStackTrace()); + bool = false; + } + ApiOperateSocketTaskParam.OutputParam outputParam = new ApiOperateSocketTaskParam.OutputParam(); + outputParam.errMsg = makeErrMsg(bool, null); + callback(outputParam); + } + + private i getByteString(List paramList) { + if (paramList == null) + return null; + try { + for (NativeBufferItem nativeBufferItem : paramList) { + if (nativeBufferItem != null && TextUtils.equals(nativeBufferItem.key, "data")) { + ByteBuffer byteBuffer = nativeBufferItem.value; + if (byteBuffer != null) + return i.of(byteBuffer); + } + } + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "ApiOperateSocketTaskV2", exception.getStackTrace()); + } + return null; + } + + private void sendMsg() { + ApiOperateSocketTaskParam.OutputParam outputParam = new ApiOperateSocketTaskParam.OutputParam(); + try { + boolean bool1; + boolean bool2; + boolean bool3; + ApiErrorInfoEntity apiErrorInfoEntity = new ApiErrorInfoEntity(); + int i = this.mInputParam.socketTaskId; + if (!ApiParamParser.isEmptyString(this.mInputParam.data)) { + bool1 = true; + } else { + bool1 = false; + } + if (this.mInputParam.__nativeBuffers__ != null) { + bool2 = true; + } else { + bool2 = false; + } + if (bool1) { + String str = this.mInputParam.data; + bool3 = SocketManagerV2.getInst().sendText(i, str, apiErrorInfoEntity); + } else if (bool2) { + bool3 = SocketManagerV2.getInst().sendArrayBuffer(i, getByteString(this.mInputParam.__nativeBuffers__), apiErrorInfoEntity); + } else { + apiErrorInfoEntity.append(paramIllegalMsg("data")); + bool3 = false; + } + if (bool3) { + outputParam.errMsg = makeErrMsg(true, null); + } else { + outputParam.errMsg = makeErrMsg(false, apiErrorInfoEntity.getErrorMsg()); + Throwable throwable = apiErrorInfoEntity.getThrowable(); + if (throwable != null) + outputParam.errStack = makeErrStack(throwable); + } + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "ApiOperateSocketTaskV2", exception.getStackTrace()); + outputParam.errMsg = makeErrMsg(false, "exception"); + outputParam.errStack = makeErrStack(exception); + } + callback(outputParam); + } + + public void act() { + if (this.mApiParams == null) { + AppBrandLogger.e("ApiOperateSocketTaskV2", new Object[] { "input params is null" }); + return; + } + this.mInputParam = (ApiOperateSocketTaskParam.InputParam)this.mApiParams; + try { + String str = this.mInputParam.operationType; + if (TextUtils.equals(str, "send")) { + sendMsg(); + return; + } + if (TextUtils.equals("close", str)) { + closeCollection(); + return; + } + ApiOperateSocketTaskParam.OutputParam outputParam = new ApiOperateSocketTaskParam.OutputParam(); + outputParam.errMsg = makeErrMsg(false, paramIllegalMsg("operationType")); + callback(outputParam); + return; + } catch (Exception exception) { + ApiOperateSocketTaskParam.OutputParam outputParam = new ApiOperateSocketTaskParam.OutputParam(); + outputParam.errMsg = makeErrMsg(false, null); + callback(outputParam); + AppBrandLogger.stacktrace(6, "ApiOperateSocketTaskV2", exception.getStackTrace()); + return; + } + } + + public String getActionName() { + return "operateSocketTask"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\net\ApiOperateSocketTaskV2.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/CreateSocketTaskSync.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/CreateSocketTaskSync.java new file mode 100644 index 0000000..02d17e7 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/CreateSocketTaskSync.java @@ -0,0 +1,52 @@ +package com.tt.miniapp.business.frontendapihandle.handler.net; + +import android.text.TextUtils; +import com.tt.miniapp.msg.sync.SyncMsgCtrl; +import com.tt.miniapp.util.NetUtil; +import com.tt.miniapp.websocket.common.WSRequest; +import com.tt.miniapp.websocket.mgr.SocketManager; +import com.tt.miniapphost.AppBrandLogger; +import org.json.JSONObject; + +public class CreateSocketTaskSync extends SyncMsgCtrl { + public CreateSocketTaskSync(String paramString) { + super(paramString); + } + + private String makeMsg(boolean paramBoolean, int paramInt) { + try { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("socketTaskId", paramInt); + if (paramBoolean) { + jSONObject.put("socketType", SocketManager.getInst().getSocketType(paramInt)); + jSONObject.put("errMsg", buildErrorMsg("createSocketTask", "ok")); + } else { + jSONObject.put("errMsg", buildErrorMsg("createSocketTask", "fail")); + } + return jSONObject.toString(); + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "SyncMsgCtrl", exception.getStackTrace()); + return ""; + } + } + + public String act() { + WSRequest wSRequest = WSRequest.parse(this.mParams); + if (wSRequest == null || TextUtils.isEmpty(wSRequest.url)) + return makeMsg(false, -1); + if (!NetUtil.isSafeDomain("socket", wSRequest.url)) + return makeMsg(false, -1); + int i = SocketManager.getInst().createTask(wSRequest); + return (i == -1) ? makeMsg(false, -1) : makeMsg(true, i); + } + + public String getName() { + return "createSocketTask"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\net\CreateSocketTaskSync.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/CreateSocketTaskSyncV2.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/CreateSocketTaskSyncV2.java new file mode 100644 index 0000000..c4b828e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/net/CreateSocketTaskSyncV2.java @@ -0,0 +1,53 @@ +package com.tt.miniapp.business.frontendapihandle.handler.net; + +import android.text.TextUtils; +import com.tt.frontendapiinterface.f; +import com.tt.frontendapiinterface.g; +import com.tt.miniapp.msg.sync.SyncMsgCtrlV2; +import com.tt.miniapp.util.NetUtil; +import com.tt.miniapp.websocket.common.WSRequest; +import com.tt.miniapp.websocket.mgr.SocketManagerV2; +import com.tt.miniapphost.AppBrandLogger; + +public class CreateSocketTaskSyncV2 extends SyncMsgCtrlV2 { + public CreateSocketTaskSyncV2(f paramf) { + super(paramf); + } + + private g makeMsg(boolean paramBoolean, int paramInt) { + ApiCreateSocketTaskParam.OutputParam outputParam = new ApiCreateSocketTaskParam.OutputParam(); + try { + outputParam.socketTaskId = paramInt; + if (paramBoolean) { + outputParam.socketType = SocketManagerV2.getInst().getSocketType(paramInt); + outputParam.errMsg = buildErrorMsg("createSocketTask", "ok"); + return outputParam; + } + outputParam.errMsg = buildErrorMsg("createSocketTask", "fail"); + return outputParam; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "SyncMsgCtrlV2", exception.getStackTrace()); + return outputParam; + } + } + + public g act() { + WSRequest wSRequest = WSRequest.parse((ApiCreateSocketTaskParam.InputParam)this.mParams); + if (wSRequest == null || TextUtils.isEmpty(wSRequest.url)) + return makeMsg(false, -1); + if (!NetUtil.isSafeDomain("socket", wSRequest.url)) + return makeMsg(false, -1); + int i = SocketManagerV2.getInst().createTask(wSRequest); + return (i == -1) ? makeMsg(false, -1) : makeMsg(true, i); + } + + public String getName() { + return "createSocketTask"; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\net\CreateSocketTaskSyncV2.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/SubScribeMessageModule.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/SubScribeMessageModule.java new file mode 100644 index 0000000..e40088e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/SubScribeMessageModule.java @@ -0,0 +1,11 @@ +package com.tt.miniapp.business.frontendapihandle.handler.subscribe; + +public class SubScribeMessageModule { + public static class ErrCode {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\subscribe\SubScribeMessageModule.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/SubScribeMessageProcessor.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/SubScribeMessageProcessor.java new file mode 100644 index 0000000..53aab20 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/SubScribeMessageProcessor.java @@ -0,0 +1,343 @@ +package com.tt.miniapp.business.frontendapihandle.handler.subscribe; + +import android.app.Activity; +import android.content.Context; +import android.text.TextUtils; +import android.util.ArrayMap; +import com.storage.async.Action; +import com.tt.miniapp.AppbrandConstant; +import com.tt.miniapp.business.frontendapihandle.handler.subscribe.data.TemplateMsgInfo; +import com.tt.miniapp.business.frontendapihandle.handler.subscribe.data.TemplateMsgLimitInfo; +import com.tt.miniapp.business.frontendapihandle.handler.subscribe.util.SubscribeMsgShowRecordUtil; +import com.tt.miniapp.business.frontendapihandle.handler.subscribe.util.TemplateMsgCacheUtil; +import com.tt.miniapp.manager.UserInfoManager; +import com.tt.miniapp.permission.BrandPermissionUtils; +import com.tt.miniapp.thread.ThreadPools; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.user.TmaUserManager; +import com.tt.miniapp.util.NetUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.MiniappHostBase; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.entity.InitParamsEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.permission.IPermissionsRequestCallback; +import com.tt.miniapphost.util.JsonBuilder; +import com.tt.option.q.i; +import com.tt.option.q.j; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.LinkedList; +import java.util.List; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class SubScribeMessageProcessor { + public TemplateMsgLimitInfo mTotalLimit; + + public SubscribeMessageCallback subscribeMessageCallback; + + public ArrayMap templateMsgInfoArrayMap = new ArrayMap(); + + public ArrayMap templateResultMap = new ArrayMap(); + + private JSONArray filterInvalidTemplates(JSONArray paramJSONArray) { + JSONArray jSONArray = new JSONArray(); + for (int i = 0; i < paramJSONArray.length(); i++) { + String str = paramJSONArray.optString(i); + TemplateMsgInfo templateMsgInfo = (TemplateMsgInfo)this.templateMsgInfoArrayMap.get(str); + if (templateMsgInfo != null && templateMsgInfo.isValid()) { + jSONArray.put(str); + } else { + this.templateResultMap.put(str, "ban"); + } + } + if (jSONArray.length() == 0) { + SubscribeMessageCallback subscribeMessageCallback = this.subscribeMessageCallback; + if (subscribeMessageCallback != null) + subscribeMessageCallback.onResult(1004, "template not exist or invalid", null); + } + return jSONArray; + } + + private JSONArray filterShowCountLimitTemplates(JSONArray paramJSONArray) { + JSONArray jSONArray = new JSONArray(); + for (int i = 0; i < paramJSONArray.length(); i++) { + String str = paramJSONArray.optString(i); + TemplateMsgInfo templateMsgInfo = (TemplateMsgInfo)this.templateMsgInfoArrayMap.get(str); + if (templateMsgInfo != null && !SubscribeMsgShowRecordUtil.hasReachLimitCount(str, this.mTotalLimit, templateMsgInfo.getLimitInfo())) { + jSONArray.put(str); + } else { + StringBuilder stringBuilder = new StringBuilder("subscribe template message: "); + stringBuilder.append(str); + stringBuilder.append(", has reach max count"); + AppBrandLogger.i("SubscribeMessageProcessor", new Object[] { stringBuilder.toString() }); + this.templateResultMap.put(str, "reject"); + } + } + if (jSONArray.length() == 0) { + SubscribeMessageCallback subscribeMessageCallback = this.subscribeMessageCallback; + if (subscribeMessageCallback != null) + subscribeMessageCallback.onResult(1005, "request count out of limit ", null); + } + return jSONArray; + } + + private void initTemplateInfo(final JSONArray templateIds) { + int i = 0; + boolean bool = false; + while (i < templateIds.length()) { + String str = templateIds.optString(i); + TemplateMsgLimitInfo templateMsgLimitInfo = TemplateMsgCacheUtil.getSavedTotalLimit(); + TemplateMsgInfo templateMsgInfo = TemplateMsgCacheUtil.getSavedTemplateMsgInfo(str); + if (templateMsgLimitInfo != null && templateMsgInfo != null) { + this.mTotalLimit = templateMsgLimitInfo; + this.templateMsgInfoArrayMap.put(str, templateMsgInfo); + StringBuilder stringBuilder2 = new StringBuilder("cached totalLimit = "); + stringBuilder2.append(templateMsgLimitInfo.toString()); + AppBrandLogger.d("SubscribeMessageProcessor", new Object[] { stringBuilder2.toString() }); + StringBuilder stringBuilder1 = new StringBuilder("cached templateMsgInfo = "); + stringBuilder1.append(templateMsgInfo.toString()); + AppBrandLogger.d("SubscribeMessageProcessor", new Object[] { stringBuilder1.toString() }); + if (templateMsgInfo.needUpdateOnline()) + bool = true; + i++; + continue; + } + queryTemplateInfoOnline(templateIds, new OnQueryTemplateInfoListener() { + public void onFail(int param1Int, String param1String) { + if (param1Int == -1000) { + if (SubScribeMessageProcessor.this.subscribeMessageCallback != null) { + SubScribeMessageProcessor.this.subscribeMessageCallback.onResult(2001, "network error", null); + return; + } + } else if (SubScribeMessageProcessor.this.subscribeMessageCallback != null) { + SubScribeMessageProcessor.this.subscribeMessageCallback.onResult(2002, "service error", null); + } + } + + public void onSuccess(TemplateMsgLimitInfo param1TemplateMsgLimitInfo, ArrayMap param1ArrayMap) { + SubScribeMessageProcessor subScribeMessageProcessor = SubScribeMessageProcessor.this; + subScribeMessageProcessor.mTotalLimit = param1TemplateMsgLimitInfo; + subScribeMessageProcessor.templateMsgInfoArrayMap = param1ArrayMap; + } + }); + return; + } + if (bool) + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + AppBrandLogger.d("SubscribeMessageProcessor", new Object[] { "async update templateInfo" }); + SubScribeMessageProcessor.this.queryTemplateInfoOnline(templateIds, null); + } + }ThreadPools.defaults()); + } + + public void queryTemplateInfoOnline(JSONArray paramJSONArray, OnQueryTemplateInfoListener paramOnQueryTemplateInfoListener) { + if (!NetUtil.isNetworkAvailable((Context)AppbrandContext.getInst().getApplicationContext())) { + if (paramOnQueryTemplateInfoListener != null) + paramOnQueryTemplateInfoListener.onFail(-1000, "network error"); + return; + } + i i = new i(AppbrandConstant.OpenApi.getInst().getTemplateMsgInfoUrl(), "POST"); + AppInfoEntity appInfoEntity = AppbrandApplication.getInst().getAppInfo(); + InitParamsEntity initParamsEntity = AppbrandContext.getInst().getInitParams(); + i.a("app_id", appInfoEntity.appId); + i.a("aid", initParamsEntity.getAppId()); + i.a("tpl_ids", paramJSONArray); + j j = HostDependManager.getInst().doPostBody(i); + if (j != null && !TextUtils.isEmpty(j.a())) { + StringBuilder stringBuilder = new StringBuilder("query templateInfo result = "); + stringBuilder.append(j.a()); + String str2 = stringBuilder.toString(); + int k = 0; + AppBrandLogger.d("SubscribeMessageProcessor", new Object[] { str2 }); + JSONObject jSONObject = (new JsonBuilder(j.a())).build(); + int m = jSONObject.optInt("err_no"); + if (m == 0) { + final TemplateMsgLimitInfo totalLimitInfo = new TemplateMsgLimitInfo(jSONObject.optJSONObject("total_limit")); + jSONObject = jSONObject.optJSONObject("tpl_data"); + ArrayMap arrayMap = new ArrayMap(); + final LinkedList templateMsgInfoList = new LinkedList(); + if (jSONObject != null) + while (k < paramJSONArray.length()) { + String str = paramJSONArray.optString(k); + JSONObject jSONObject1 = jSONObject.optJSONObject(str); + if (jSONObject1 != null) { + TemplateMsgInfo templateMsgInfo = new TemplateMsgInfo(str, jSONObject1); + arrayMap.put(str, templateMsgInfo); + linkedList.add(templateMsgInfo); + } + k++; + } + if (paramOnQueryTemplateInfoListener != null) + paramOnQueryTemplateInfoListener.onSuccess(templateMsgLimitInfo, arrayMap); + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + TemplateMsgCacheUtil.saveTotalLimit(totalLimitInfo); + Iterator iterator = templateMsgInfoList.iterator(); + while (iterator.hasNext()) + TemplateMsgCacheUtil.saveTemplateMsgInfo(iterator.next()); + templateMsgInfoList.clear(); + } + }, ThreadPools.defaults()); + return; + } + String str1 = jSONObject.optString("err_tips"); + if (paramOnQueryTemplateInfoListener != null) + paramOnQueryTemplateInfoListener.onFail(m, str1); + return; + } + if (paramOnQueryTemplateInfoListener != null) + paramOnQueryTemplateInfoListener.onFail(-1002, "request fail"); + } + + public void reportSubscribeMsg(final JSONArray templateIds) { + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + if (!NetUtil.isNetworkAvailable((Context)AppbrandContext.getInst().getApplicationContext())) { + if (SubScribeMessageProcessor.this.subscribeMessageCallback != null) + SubScribeMessageProcessor.this.subscribeMessageCallback.onResult(2001, "network error", null); + return; + } + i i = new i(AppbrandConstant.OpenApi.getInst().reportSubscribeMsgUrl(), "POST"); + i.a("tpl_ids", templateIds); + i.a("appId", (AppbrandApplication.getInst().getAppInfo()).appId); + i.a("aid", Integer.valueOf(AppbrandContext.getInst().getInitParams().getAppId())); + JSONObject jSONObject = (new JsonBuilder("{}")).build(); + try { + jSONObject.put("mp_name", (AppbrandApplication.getInst().getAppInfo()).appName); + jSONObject.put("mp_version", (AppbrandApplication.getInst().getAppInfo()).versionCode); + } catch (JSONException jSONException) { + AppBrandLogger.eWithThrowable("SubscribeMessageProcessor", "", (Throwable)jSONException); + } + i.a("extra", jSONObject.toString()); + UserInfoManager.UserInfo userInfo = UserInfoManager.getHostClientUserInfo(); + if (userInfo != null && !TextUtils.isEmpty(userInfo.sessionId)) + i.a("X-Tma-Host-Sessionid", userInfo.sessionId); + j j = HostDependManager.getInst().doPostBody(i); + if (j != null && !TextUtils.isEmpty(j.a())) { + JSONObject jSONObject1 = (new JsonBuilder(j.a())).build(); + int k = jSONObject1.optInt("err_no"); + if (k == 0) { + int m = templateIds.length(); + jSONObject1 = jSONObject1.optJSONObject("result"); + for (k = 0; k < m; k++) { + String str = templateIds.optString(k); + int n = jSONObject1.optInt(str); + if (n != 1) { + if (n == 2) + SubScribeMessageProcessor.this.templateResultMap.put(str, "reject"); + } else { + SubScribeMessageProcessor.this.templateResultMap.put(str, "accept"); + } + } + if (SubScribeMessageProcessor.this.subscribeMessageCallback != null) { + SubScribeMessageProcessor.this.subscribeMessageCallback.onResult(0, "", SubScribeMessageProcessor.this.templateResultMap); + return; + } + } else { + String str = jSONObject1.optString("err_tips"); + StringBuilder stringBuilder = new StringBuilder("report subscribe fail, err_no = "); + stringBuilder.append(k); + stringBuilder.append(" err_tip = "); + stringBuilder.append(str); + AppBrandLogger.i("SubscribeMessageProcessor", new Object[] { stringBuilder.toString() }); + if (SubScribeMessageProcessor.this.subscribeMessageCallback != null) + SubScribeMessageProcessor.this.subscribeMessageCallback.onResult(2002, "service error", null); + return; + } + } else if (SubScribeMessageProcessor.this.subscribeMessageCallback != null) { + SubScribeMessageProcessor.this.subscribeMessageCallback.onResult(2002, "service error", null); + } + } + }ThreadPools.longIO()); + } + + public void requestSubScribeMessage(final JSONArray finalFilteredTemplates, SubscribeMessageCallback paramSubscribeMessageCallback) { + this.subscribeMessageCallback = paramSubscribeMessageCallback; + initTemplateInfo(finalFilteredTemplates); + JSONArray jSONArray = filterInvalidTemplates(finalFilteredTemplates); + finalFilteredTemplates = jSONArray; + if (jSONArray.length() > 0) + finalFilteredTemplates = filterShowCountLimitTemplates(jSONArray); + if (finalFilteredTemplates.length() == 0) + return; + MiniappHostBase miniappHostBase = AppbrandContext.getInst().getCurrentActivity(); + LinkedHashSet linkedHashSet = new LinkedHashSet(); + linkedHashSet.add(BrandPermissionUtils.BrandPermission.SUBSCRIBE_MESSAGE); + HashMap hashMap = new HashMap(); + final String templateId = finalFilteredTemplates.optString(0); + TemplateMsgInfo templateMsgInfo = (TemplateMsgInfo)this.templateMsgInfoArrayMap.get(str); + if (templateMsgInfo != null) { + hashMap.put("templateId", str); + hashMap.put("title", templateMsgInfo.getTitle()); + hashMap.put("subtitle", templateMsgInfo.getContent()); + } + BrandPermissionUtils.requestPermissions((Activity)miniappHostBase, "requestSubscribeMessage", linkedHashSet, new LinkedHashMap(), new IPermissionsRequestCallback() { + public void onDenied(LinkedHashMap param1LinkedHashMap) { + AppBrandLogger.i("SubscribeMessageProcessor", new Object[] { "auth denied" }); + if (SubScribeMessageProcessor.this.subscribeMessageCallback != null) { + SubScribeMessageProcessor.this.templateResultMap.put(templateId, "reject"); + SubScribeMessageProcessor.this.subscribeMessageCallback.onResult(3001, "auth denied", SubScribeMessageProcessor.this.templateResultMap); + } + } + + public void onGranted(LinkedHashMap param1LinkedHashMap) { + if (!(UserInfoManager.getHostClientUserInfo()).isLogin) { + TmaUserManager.getInstance().login(new TmaUserManager.HostClientLoginListener() { + public void onLoginFail() { + AppBrandLogger.i("SubscribeMessageProcessor", new Object[] { "onLoginFail" }); + if (SubScribeMessageProcessor.this.subscribeMessageCallback != null) + SubScribeMessageProcessor.this.subscribeMessageCallback.onResult(3002, "login fail", null); + } + + public void onLoginSuccess() { + SubScribeMessageProcessor.this.reportSubscribeMsg(finalFilteredTemplates); + SubscribeMsgShowRecordUtil.updateUser(); + } + + public void onLoginUnSupport() { + AppBrandLogger.i("SubscribeMessageProcessor", new Object[] { "onLoginUnSupport" }); + if (SubScribeMessageProcessor.this.subscribeMessageCallback != null) + SubScribeMessageProcessor.this.subscribeMessageCallback.onResult(3002, "login un support", null); + } + + public void onLoginWhenBackground() { + AppBrandLogger.i("SubscribeMessageProcessor", new Object[] { "onLoginWhenBackground" }); + if (SubScribeMessageProcessor.this.subscribeMessageCallback != null) + SubScribeMessageProcessor.this.subscribeMessageCallback.onResult(3002, "login when background", null); + } + + public void onTriggerHostClientLogin() { + AppBrandLogger.d("SubscribeMessageProcessor", new Object[] { "onTriggerHostClientLogin" }); + } + }); + return; + } + SubScribeMessageProcessor.this.reportSubscribeMsg(finalFilteredTemplates); + } + }hashMap); + } + + public static interface OnQueryTemplateInfoListener { + void onFail(int param1Int, String param1String); + + void onSuccess(TemplateMsgLimitInfo param1TemplateMsgLimitInfo, ArrayMap param1ArrayMap); + } + + public static interface SubscribeMessageCallback { + void onResult(int param1Int, String param1String, ArrayMap param1ArrayMap); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\subscribe\SubScribeMessageProcessor.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/data/TemplateMsgInfo.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/data/TemplateMsgInfo.java new file mode 100644 index 0000000..4939505 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/data/TemplateMsgInfo.java @@ -0,0 +1,107 @@ +package com.tt.miniapp.business.frontendapihandle.handler.subscribe.data; + +import com.tt.miniapphost.AppBrandLogger; +import org.json.JSONException; +import org.json.JSONObject; + +public class TemplateMsgInfo { + private String mContent; + + private String mId; + + private long mLastUpdateTime; + + private TemplateMsgLimitInfo mLimitInfo; + + private int mStatus; + + private String mTitle; + + public TemplateMsgInfo(String paramString, JSONObject paramJSONObject) { + if (paramJSONObject != null) { + this.mId = paramString; + this.mTitle = paramJSONObject.optString("title"); + this.mContent = paramJSONObject.optString("content"); + this.mStatus = paramJSONObject.optInt("status"); + this.mLastUpdateTime = paramJSONObject.optLong("lastUpdateTime", System.currentTimeMillis()); + this.mLimitInfo = new TemplateMsgLimitInfo(paramJSONObject.optString("limit")); + } + } + + public String getContent() { + return this.mContent; + } + + public String getId() { + return this.mId; + } + + public long getLastUpdateTime() { + return this.mLastUpdateTime; + } + + public TemplateMsgLimitInfo getLimitInfo() { + return this.mLimitInfo; + } + + public int getStatus() { + return this.mStatus; + } + + public String getTitle() { + return this.mTitle; + } + + public boolean isValid() { + return (this.mStatus == 1); + } + + public boolean needUpdateOnline() { + return (Math.abs(System.currentTimeMillis() - this.mLastUpdateTime) > 7200000L); + } + + public void setContent(String paramString) { + this.mContent = paramString; + } + + public void setId(String paramString) { + this.mId = paramString; + } + + public void setLastUpdateTime(long paramLong) { + this.mLastUpdateTime = paramLong; + } + + public void setLimitInfo(TemplateMsgLimitInfo paramTemplateMsgLimitInfo) { + this.mLimitInfo = paramTemplateMsgLimitInfo; + } + + public void setStatus(int paramInt) { + this.mStatus = paramInt; + } + + public void setTitle(String paramString) { + this.mTitle = paramString; + } + + public String toString() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("title", this.mTitle); + jSONObject.put("content", this.mContent); + jSONObject.put("status", this.mStatus); + jSONObject.put("lastUpdateTime", this.mLastUpdateTime); + if (this.mLimitInfo != null) + jSONObject.put("limit", this.mLimitInfo.toString()); + } catch (JSONException jSONException) { + AppBrandLogger.eWithThrowable("TemplateMsgInfo", "", (Throwable)jSONException); + } + return jSONObject.toString(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\subscribe\data\TemplateMsgInfo.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/data/TemplateMsgLimitInfo.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/data/TemplateMsgLimitInfo.java new file mode 100644 index 0000000..192b49e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/data/TemplateMsgLimitInfo.java @@ -0,0 +1,63 @@ +package com.tt.miniapp.business.frontendapihandle.handler.subscribe.data; + +import android.text.TextUtils; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.util.JsonBuilder; +import org.json.JSONException; +import org.json.JSONObject; + +public class TemplateMsgLimitInfo { + private int mMaxCount; + + private int mTimeUnit; + + public TemplateMsgLimitInfo(String paramString) { + if (!TextUtils.isEmpty(paramString)) { + JSONObject jSONObject = (new JsonBuilder(paramString)).build(); + if (jSONObject != null) { + this.mMaxCount = jSONObject.optInt("max_count"); + this.mTimeUnit = jSONObject.optInt("time_unit"); + } + } + } + + public TemplateMsgLimitInfo(JSONObject paramJSONObject) { + if (paramJSONObject != null) { + this.mMaxCount = paramJSONObject.optInt("max_count"); + this.mTimeUnit = paramJSONObject.optInt("time_unit"); + } + } + + public int getMaxCount() { + return this.mMaxCount; + } + + public int getTimeUnit() { + return this.mTimeUnit; + } + + public void setMaxCount(int paramInt) { + this.mMaxCount = paramInt; + } + + public void setTimeUnit(int paramInt) { + this.mTimeUnit = paramInt; + } + + public String toString() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("max_count", this.mMaxCount); + jSONObject.put("time_unit", this.mTimeUnit); + } catch (JSONException jSONException) { + AppBrandLogger.eWithThrowable("TemplateMsgAuthShowLimitInfo", "", (Throwable)jSONException); + } + return jSONObject.toString(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\subscribe\data\TemplateMsgLimitInfo.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/SubscribeMsgShowRecordUtil.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/SubscribeMsgShowRecordUtil.java new file mode 100644 index 0000000..e442651 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/SubscribeMsgShowRecordUtil.java @@ -0,0 +1,303 @@ +package com.tt.miniapp.business.frontendapihandle.handler.subscribe.util; + +import android.content.Context; +import android.content.SharedPreferences; +import android.text.TextUtils; +import com.storage.async.Action; +import com.tt.miniapp.business.frontendapihandle.handler.subscribe.data.TemplateMsgLimitInfo; +import com.tt.miniapp.mmkv.KVUtil; +import com.tt.miniapp.thread.ThreadPools; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.util.CharacterUtils; +import com.tt.miniapphost.util.JsonBuilder; +import java.util.TimeZone; +import org.json.JSONException; +import org.json.JSONObject; + +public class SubscribeMsgShowRecordUtil { + private static volatile String sUserId; + + public static SharedPreferences getSharedPreference() { + return KVUtil.getSharedPreferences((Context)AppbrandContext.getInst().getApplicationContext(), "Subscribe_Message"); + } + + public static TemplateMsgAuthShowRecord getTemplateMsgAuthShowRecord(String paramString) { + String str1 = (AppbrandApplication.getInst().getAppInfo()).appId; + String str2 = getUserIdentifier(); + String str3 = getSharedPreference().getString(str1, ""); + if (TextUtils.isEmpty(str3)) + return null; + StringBuilder stringBuilder = new StringBuilder("appRecord = "); + stringBuilder.append(str3); + AppBrandLogger.d("SubscribeMsgShowRecordUtil", new Object[] { stringBuilder.toString() }); + JSONObject jSONObject = (new JsonBuilder(str3)).build().optJSONObject(str2); + if (jSONObject == null) + return null; + int i = jSONObject.optInt("lastShowTotalCount"); + long l1 = jSONObject.optLong("lastShowTime"); + jSONObject = jSONObject.optJSONObject(paramString); + if (jSONObject == null) + return new TemplateMsgAuthShowRecord(str1, str2, i, l1, paramString, 0, System.currentTimeMillis()); + jSONObject = jSONObject.optJSONObject("lastTplShowInfo"); + if (jSONObject == null) + return new TemplateMsgAuthShowRecord(str1, str2, i, l1, paramString, 0, System.currentTimeMillis()); + long l2 = jSONObject.optLong("lastTplShowTime"); + return new TemplateMsgAuthShowRecord(str1, str2, i, l1, paramString, jSONObject.optInt("lastTplShowCount"), l2); + } + + public static String getUserIdentifier() { + // Byte code: + // 0: getstatic com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/SubscribeMsgShowRecordUtil.sUserId : Ljava/lang/String; + // 3: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 6: ifeq -> 63 + // 9: ldc com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/SubscribeMsgShowRecordUtil + // 11: monitorenter + // 12: getstatic com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/SubscribeMsgShowRecordUtil.sUserId : Ljava/lang/String; + // 15: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 18: ifeq -> 51 + // 21: invokestatic getHostClientUserInfo : ()Lcom/tt/miniapp/manager/UserInfoManager$UserInfo; + // 24: astore_0 + // 25: aload_0 + // 26: ifnull -> 67 + // 29: aload_0 + // 30: getfield isLogin : Z + // 33: ifeq -> 67 + // 36: aload_0 + // 37: getfield userId : Ljava/lang/String; + // 40: astore_0 + // 41: goto -> 44 + // 44: aload_0 + // 45: invokestatic md5Hex : (Ljava/lang/String;)Ljava/lang/String; + // 48: putstatic com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/SubscribeMsgShowRecordUtil.sUserId : Ljava/lang/String; + // 51: ldc com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/SubscribeMsgShowRecordUtil + // 53: monitorexit + // 54: goto -> 63 + // 57: astore_0 + // 58: ldc com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/SubscribeMsgShowRecordUtil + // 60: monitorexit + // 61: aload_0 + // 62: athrow + // 63: getstatic com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/SubscribeMsgShowRecordUtil.sUserId : Ljava/lang/String; + // 66: areturn + // 67: ldc 'AnonymousUser' + // 69: astore_0 + // 70: goto -> 44 + // Exception table: + // from to target type + // 12 25 57 finally + // 29 41 57 finally + // 44 51 57 finally + // 51 54 57 finally + // 58 61 57 finally + } + + public static boolean hasReachLimitCount(String paramString, TemplateMsgLimitInfo paramTemplateMsgLimitInfo1, TemplateMsgLimitInfo paramTemplateMsgLimitInfo2) { + if (paramTemplateMsgLimitInfo1 != null) { + StringBuilder stringBuilder; + if (paramTemplateMsgLimitInfo2 == null) + return true; + TemplateMsgAuthShowRecord templateMsgAuthShowRecord = getTemplateMsgAuthShowRecord(paramString); + if (templateMsgAuthShowRecord == null) + return false; + long l1 = System.currentTimeMillis(); + int i = templateMsgAuthShowRecord.lastTotalShowCount; + long l2 = templateMsgAuthShowRecord.lastShowTime; + if (l1 < l2) { + templateMsgAuthShowRecord.resetLastShowTime(); + templateMsgAuthShowRecord.save(); + AppBrandLogger.d("SubscribeMsgShowRecordUtil", new Object[] { "lastShowTime is ahead of currentTime" }); + return true; + } + boolean bool1 = needResetRecord(l2, l1, paramTemplateMsgLimitInfo1.getTimeUnit() * 1000); + if (!bool1 && i >= paramTemplateMsgLimitInfo1.getMaxCount()) { + stringBuilder = new StringBuilder("reach total limit, lastTotalCount = "); + stringBuilder.append(i); + stringBuilder.append(", limit total count = "); + stringBuilder.append(paramTemplateMsgLimitInfo1.getMaxCount()); + AppBrandLogger.d("SubscribeMsgShowRecordUtil", new Object[] { stringBuilder.toString() }); + return true; + } + if (bool1) + stringBuilder.resetLastTotalShowCount(); + l2 = ((TemplateMsgAuthShowRecord)stringBuilder).lastTplShowTime; + i = ((TemplateMsgAuthShowRecord)stringBuilder).lastTplShowCount; + if (l1 < l2) { + stringBuilder.resetLastTplShowTime(); + stringBuilder.save(); + AppBrandLogger.d("SubscribeMsgShowRecordUtil", new Object[] { "lastTplShowTime is ahead of currentTime" }); + return true; + } + boolean bool2 = needResetRecord(l2, l1, paramTemplateMsgLimitInfo2.getTimeUnit() * 1000); + if (!bool2 && i >= paramTemplateMsgLimitInfo2.getMaxCount()) { + stringBuilder = new StringBuilder("reach template msg limit, lastTplShowCount = "); + stringBuilder.append(i); + stringBuilder.append(", limit count = "); + stringBuilder.append(paramTemplateMsgLimitInfo2.getMaxCount()); + AppBrandLogger.d("SubscribeMsgShowRecordUtil", new Object[] { stringBuilder.toString() }); + return true; + } + if (bool2) + stringBuilder.resetLastTplShowCount(); + if (bool1 || bool2) + stringBuilder.save(); + return false; + } + return true; + } + + private static boolean isSameTimeUnit(long paramLong1, long paramLong2, int paramInt1, int paramInt2) { + paramLong1 = translateLocalLocale(paramLong1); + long l1 = paramInt2; + paramLong2 = translateLocalLocale(paramLong2); + long l2 = paramInt1; + return ((paramLong1 - l1) / l2 == (paramLong2 - l1) / l2); + } + + private static boolean needResetRecord(long paramLong1, long paramLong2, int paramInt) { + if (paramInt != 86400000) { + if (paramInt != 604800000) { + boolean bool2 = isSameTimeUnit(paramLong1, paramLong2, paramInt, 0); + return bool2 ^ true; + } + boolean bool1 = isSameTimeUnit(paramLong1, paramLong2, paramInt, 363600000); + return bool1 ^ true; + } + boolean bool = isSameTimeUnit(paramLong1, paramLong2, paramInt, 18000000); + return bool ^ true; + } + + public static void recordTemplateMsgAuthShow(final String templateId) { + ThreadUtil.runOnWorkThread(new Action() { + public final void act() { + if (TextUtils.isEmpty(templateId)) + return; + SubscribeMsgShowRecordUtil.TemplateMsgAuthShowRecord templateMsgAuthShowRecord2 = SubscribeMsgShowRecordUtil.getTemplateMsgAuthShowRecord(templateId); + SubscribeMsgShowRecordUtil.TemplateMsgAuthShowRecord templateMsgAuthShowRecord1 = templateMsgAuthShowRecord2; + if (templateMsgAuthShowRecord2 == null) + templateMsgAuthShowRecord1 = new SubscribeMsgShowRecordUtil.TemplateMsgAuthShowRecord(templateId); + templateMsgAuthShowRecord1.lastTotalShowCount++; + templateMsgAuthShowRecord1.lastShowTime = System.currentTimeMillis(); + templateMsgAuthShowRecord1.lastTplShowCount++; + templateMsgAuthShowRecord1.lastTplShowTime = System.currentTimeMillis(); + templateMsgAuthShowRecord1.save(); + StringBuilder stringBuilder = new StringBuilder("record TemplateMsgInfo = "); + stringBuilder.append(templateMsgAuthShowRecord1.toString()); + AppBrandLogger.d("SubscribeMsgShowRecordUtil", new Object[] { stringBuilder.toString() }); + } + }ThreadPools.defaults()); + } + + private static long translateLocalLocale(long paramLong) { + return paramLong + TimeZone.getDefault().getRawOffset(); + } + + public static void updateUser() { + sUserId = CharacterUtils.empty(); + getUserIdentifier(); + } + + public static class TemplateMsgAuthShowRecord { + public String appId = (AppbrandApplication.getInst().getAppInfo()).appId; + + public long lastShowTime; + + public int lastTotalShowCount; + + public int lastTplShowCount; + + public long lastTplShowTime; + + public String templateId; + + public String userId = SubscribeMsgShowRecordUtil.getUserIdentifier(); + + public TemplateMsgAuthShowRecord(String param1String) { + this.templateId = param1String; + } + + public TemplateMsgAuthShowRecord(String param1String1, String param1String2, int param1Int1, long param1Long1, String param1String3, int param1Int2, long param1Long2) { + this.lastTotalShowCount = param1Int1; + this.lastShowTime = param1Long1; + this.templateId = param1String3; + this.lastTplShowCount = param1Int2; + this.lastTplShowTime = param1Long2; + } + + public void resetLastShowTime() { + this.lastShowTime = System.currentTimeMillis(); + } + + public void resetLastTotalShowCount() { + this.lastTotalShowCount = 0; + } + + public void resetLastTplShowCount() { + this.lastTplShowCount = 0; + } + + public void resetLastTplShowTime() { + this.lastTplShowTime = System.currentTimeMillis(); + } + + public void save() { + JSONObject jSONObject5 = (new JsonBuilder(SubscribeMsgShowRecordUtil.getSharedPreference().getString(this.appId, ""))).build(); + JSONObject jSONObject2 = jSONObject5.optJSONObject(this.userId); + JSONObject jSONObject1 = jSONObject2; + if (jSONObject2 == null) + jSONObject1 = new JSONObject(); + JSONObject jSONObject3 = jSONObject1.optJSONObject(this.templateId); + jSONObject2 = jSONObject3; + if (jSONObject3 == null) + jSONObject2 = new JSONObject(); + JSONObject jSONObject4 = jSONObject2.optJSONObject("lastTplShowInfo"); + jSONObject3 = jSONObject4; + if (jSONObject4 == null) + jSONObject3 = new JSONObject(); + try { + jSONObject3.put("lastTplShowTime", this.lastTplShowTime); + jSONObject3.put("lastTplShowCount", this.lastTplShowCount); + jSONObject2.put("lastTplShowInfo", jSONObject3); + jSONObject1.put(this.templateId, jSONObject2); + jSONObject1.put("lastShowTotalCount", this.lastTotalShowCount); + jSONObject1.put("lastShowTime", this.lastShowTime); + jSONObject5.put(this.userId, jSONObject1); + SubscribeMsgShowRecordUtil.getSharedPreference().edit().putString(this.appId, jSONObject5.toString()).apply(); + return; + } catch (JSONException jSONException) { + AppBrandLogger.e("SubscribeMsgShowRecordUtil", new Object[] { "", jSONException }); + return; + } + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("TemplateMsgAuthShowRecord{appId='"); + stringBuilder.append(this.appId); + stringBuilder.append('\''); + stringBuilder.append(", userId='"); + stringBuilder.append(this.userId); + stringBuilder.append('\''); + stringBuilder.append(", lastTotalShowCount="); + stringBuilder.append(this.lastTotalShowCount); + stringBuilder.append(", lastShowTime="); + stringBuilder.append(this.lastShowTime); + stringBuilder.append(", templateId='"); + stringBuilder.append(this.templateId); + stringBuilder.append('\''); + stringBuilder.append(", lastTplShowCount="); + stringBuilder.append(this.lastTplShowCount); + stringBuilder.append(", lastTplShowTime="); + stringBuilder.append(this.lastTplShowTime); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\subscrib\\util\SubscribeMsgShowRecordUtil.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/TemplateMsgCacheUtil.java b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/TemplateMsgCacheUtil.java new file mode 100644 index 0000000..4904d35 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/frontendapihandle/handler/subscribe/util/TemplateMsgCacheUtil.java @@ -0,0 +1,50 @@ +package com.tt.miniapp.business.frontendapihandle.handler.subscribe.util; + +import android.content.Context; +import android.content.SharedPreferences; +import android.text.TextUtils; +import com.tt.miniapp.business.frontendapihandle.handler.subscribe.data.TemplateMsgInfo; +import com.tt.miniapp.business.frontendapihandle.handler.subscribe.data.TemplateMsgLimitInfo; +import com.tt.miniapp.mmkv.KVUtil; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.util.JsonBuilder; + +public class TemplateMsgCacheUtil { + public static TemplateMsgInfo getSavedTemplateMsgInfo(String paramString) { + String str = getSharedPreference().getString(getTemplateKey(paramString), ""); + return TextUtils.isEmpty(str) ? null : new TemplateMsgInfo(paramString, (new JsonBuilder(str)).build()); + } + + public static TemplateMsgLimitInfo getSavedTotalLimit() { + String str = getSharedPreference().getString(getTemplateKey("total_limit"), ""); + return (TextUtils.isEmpty(str) || TextUtils.equals("{}", str)) ? null : new TemplateMsgLimitInfo((new JsonBuilder(str)).build()); + } + + private static SharedPreferences getSharedPreference() { + return KVUtil.getSharedPreferences((Context)AppbrandContext.getInst().getApplicationContext(), "Subscribe_Message"); + } + + private static String getTemplateKey(String paramString) { + StringBuilder stringBuilder = new StringBuilder("template_"); + stringBuilder.append(paramString); + return stringBuilder.toString(); + } + + public static void saveTemplateMsgInfo(TemplateMsgInfo paramTemplateMsgInfo) { + if (paramTemplateMsgInfo == null) + return; + getSharedPreference().edit().putString(getTemplateKey(paramTemplateMsgInfo.getId()), paramTemplateMsgInfo.toString()).apply(); + } + + public static void saveTotalLimit(TemplateMsgLimitInfo paramTemplateMsgLimitInfo) { + if (paramTemplateMsgLimitInfo == null) + return; + getSharedPreference().edit().putString(getTemplateKey("total_limit"), paramTemplateMsgLimitInfo.toString()).apply(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\frontendapihandle\handler\subscrib\\util\TemplateMsgCacheUtil.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/host/HostService.java b/df_miniapp/classes/com/tt/miniapp/business/host/HostService.java new file mode 100644 index 0000000..e98f88c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/host/HostService.java @@ -0,0 +1,223 @@ +package com.tt.miniapp.business.host; + +import android.content.Intent; +import android.net.Uri; +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.h.a; +import com.bytedance.sandboxapp.protocol.service.h.b; +import com.bytedance.sandboxapp.protocol.service.h.c; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.base.activity.ActivityServiceInterface; +import com.tt.miniapp.base.activity.IActivityResultHandler; +import com.tt.miniapp.manager.UserInfoManager; +import com.tt.miniapp.process.bridge.InnerHostProcessBridge; +import com.tt.miniapp.util.ActivityUtil; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.InitParamsEntity; +import com.tt.miniapphost.entity.MicroSchemaEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.language.LocaleManager; +import com.tt.miniapphost.process.callback.IpcCallback; +import com.tt.miniapphost.process.data.CrossProcessDataEntity; +import com.tt.miniapphost.util.ProcessUtil; +import d.f.b.l; + +public final class HostService implements c { + private final MiniAppContext context; + + private a mCacheHostAppInfo; + + public HostService(MiniAppContext paramMiniAppContext) { + this.context = paramMiniAppContext; + } + + public final MiniAppContext getContext() { + return this.context; + } + + public final a getHostAppInfo() { + a a2 = this.mCacheHostAppInfo; + if (a2 != null) + return a2; + AppbrandContext appbrandContext = AppbrandContext.getInst(); + l.a(appbrandContext, "AppbrandContext.getInst()"); + InitParamsEntity initParamsEntity = appbrandContext.getInitParams(); + l.a(initParamsEntity, "initParams"); + a a1 = new a(initParamsEntity.getAppId(), initParamsEntity.getChannel(), initParamsEntity.getVersionCode(), initParamsEntity.getUpdateVersionCode()); + this.mCacheHostAppInfo = a1; + return a1; + } + + public final b getHostAppUserInfo() { + UserInfoManager.UserInfo userInfo = UserInfoManager.getHostClientUserInfo(); + l.a(userInfo, "UserInfoManager.getHostClientUserInfo()"); + return new b(userInfo.userId, userInfo.secUID, userInfo.isLogin); + } + + public final void loginHostApp(c.a parama) { + l.b(parama, "hostAppLoginListener"); + UserInfoManager.requestLoginHostClient(new WrapperHostClientLoginListener(parama), null, null); + } + + public final void onDestroy() {} + + public final void openMiniApp(c.b paramb) { + String str2; + l.b(paramb, "openMiniAppEntity"); + String str3 = paramb.a; + MicroSchemaEntity microSchemaEntity = MicroSchemaEntity.parseFromSchema(str3); + boolean bool = paramb.c; + String str4 = "1"; + if (bool) { + str2 = "1"; + } else { + str2 = "0"; + } + microSchemaEntity.addCustomField("killCurrentProcess", str2); + if (paramb.d) { + str2 = str4; + } else { + str2 = "0"; + } + microSchemaEntity.addCustomField("forceColdBoot", str2); + microSchemaEntity.addCustomField("toolbarStyle", String.valueOf(paramb.e)); + AppbrandContext appbrandContext = AppbrandContext.getInst(); + l.a(appbrandContext, "AppbrandContext.getInst()"); + ActivityUtil.previousGetSnapshot(appbrandContext.getCurrentActivity()); + str4 = microSchemaEntity.toSchema(); + String str1 = str3; + if (str4 != null) + str1 = str4; + bool = paramb.b; + AppbrandApplicationImpl appbrandApplicationImpl = AppbrandApplicationImpl.getInst(); + l.a(appbrandApplicationImpl, "AppbrandApplicationImpl.getInst()"); + InnerHostProcessBridge.jumpToAppFromSchema(str1, bool, (appbrandApplicationImpl.getAppInfo()).appId); + appbrandApplicationImpl = AppbrandApplicationImpl.getInst(); + l.a(appbrandApplicationImpl, "AppbrandApplicationImpl.getInst()"); + appbrandApplicationImpl.getForeBackgroundManager().pauseBackgroundOverLimitTimeStrategy(); + } + + public final void openSchema(c.c paramc, c.d paramd) { + l.b(paramc, "openSchemaEntity"); + Uri uri = paramc.a; + Uri.Builder builder = uri.buildUpon(); + String str = uri.getQueryParameter("launchflag"); + ProcessUtil.fillCrossProcessCallbackUri(builder, new HostService$openSchema$1(paramd, "hostProcess")); + HostDependManager hostDependManager = HostDependManager.getInst(); + l.a(hostDependManager, "HostDependManager.getInst()"); + if (hostDependManager.isEnableOpenSchemaAnimation()) { + String str1; + LocaleManager localeManager = LocaleManager.getInst(); + l.a(localeManager, "LocaleManager.getInst()"); + if (localeManager.isRTL()) { + str1 = "1"; + } else { + str1 = "0"; + } + builder.appendQueryParameter("isNeedRTLAnim", str1); + } + AppbrandContext appbrandContext = AppbrandContext.getInst(); + l.a(appbrandContext, "AppbrandContext.getInst()"); + ActivityUtil.startOpenSchemaActivity(appbrandContext.getCurrentActivity(), builder.toString(), str, paramc.b); + } + + public final class WrapperHostClientLoginListener implements UserInfoManager.HostClientLoginListener { + private final c.a hostAppLoginListener; + + public WrapperHostClientLoginListener(c.a param1a) { + this.hostAppLoginListener = param1a; + } + + public final boolean handleHostClientLoginResult(int param1Int1, int param1Int2, Intent param1Intent) { + return UserInfoManager.handleHostClientLoginResult(param1Int1, param1Int2, param1Intent, this); + } + + public final void onLoginFail() { + this.hostAppLoginListener.a("loginHostFail"); + } + + public final void onLoginSuccess() { + this.hostAppLoginListener.a(); + } + + public final void onLoginUnSupport() { + this.hostAppLoginListener.c(); + } + + public final void onLoginWhenBackground() { + this.hostAppLoginListener.b(); + } + + public final void onTriggerHostClientLogin(String param1String) { + ((ActivityServiceInterface)HostService.this.getContext().getService(ActivityServiceInterface.class)).registerActivityResultHandler(new HostService$WrapperHostClientLoginListener$onTriggerHostClientLogin$1()); + } + + public static final class HostService$WrapperHostClientLoginListener$onTriggerHostClientLogin$1 implements IActivityResultHandler { + public final boolean autoClearAfterActivityResult() { + return true; + } + + public final boolean handleActivityResult(int param2Int1, int param2Int2, Intent param2Intent) { + return HostService.WrapperHostClientLoginListener.this.handleHostClientLoginResult(param2Int1, param2Int2, param2Intent); + } + } + } + + public static final class HostService$WrapperHostClientLoginListener$onTriggerHostClientLogin$1 implements IActivityResultHandler { + public final boolean autoClearAfterActivityResult() { + return true; + } + + public final boolean handleActivityResult(int param1Int1, int param1Int2, Intent param1Intent) { + return HostService.WrapperHostClientLoginListener.this.handleHostClientLoginResult(param1Int1, param1Int2, param1Intent); + } + } + + public static final class HostService$openSchema$1 extends IpcCallback { + HostService$openSchema$1(c.d param1d, String param1String) { + super(param1String); + } + + public final void onIpcCallback(CrossProcessDataEntity param1CrossProcessDataEntity) { + Integer integer1; + Integer integer2; + Integer integer3 = null; + if (param1CrossProcessDataEntity != null) { + Boolean bool2 = Boolean.valueOf(param1CrossProcessDataEntity.getBoolean("openSchemaResult")); + integer3 = Integer.valueOf(param1CrossProcessDataEntity.getInt("openSchemaFailType")); + Boolean bool1 = bool2; + integer2 = integer3; + } else { + integer2 = null; + integer1 = integer3; + } + if (integer1 != null && integer1.booleanValue()) { + c.d d1 = this.$openSchemaListener; + if (d1 != null) + d1.a(); + } else if (integer2 != null && integer2.intValue() == 1) { + c.d d1 = this.$openSchemaListener; + if (d1 != null) + d1.b(); + } else { + c.d d1 = this.$openSchemaListener; + if (d1 != null) + d1.a("unknown error"); + } + finishListenIpcCallback(); + } + + public final void onIpcConnectError() { + c.d d1 = this.$openSchemaListener; + if (d1 != null) + d1.a("ipc fail"); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\host\HostService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/pay/PayService.java b/df_miniapp/classes/com/tt/miniapp/business/pay/PayService.java new file mode 100644 index 0000000..5eea90c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/pay/PayService.java @@ -0,0 +1,88 @@ +package com.tt.miniapp.business.pay; + +import android.app.Activity; +import android.widget.FrameLayout; +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.b.a; +import com.bytedance.sandboxapp.protocol.service.h.c; +import com.bytedance.sandboxapp.protocol.service.k.a; +import com.bytedance.sandboxapp.protocol.service.request.a; +import com.bytedance.sandboxapp.protocol.service.request.entity.HttpRequest; +import com.tt.miniapp.AppbrandConstant; +import com.tt.miniapp.base.MiniAppContext; +import com.tt.miniapp.base.activity.ActivityServiceInterface; +import com.tt.miniapp.event.InnerEventHelper; +import com.tt.miniapp.manager.WxPayManager; +import com.tt.miniapp.notification.MiniAppNotificationManager; +import com.tt.miniapphost.AppbrandContext; +import java.util.HashMap; + +public class PayService implements a { + private final MiniAppContext mMiniAppContext; + + public PayService(MiniAppContext paramMiniAppContext) { + this.mMiniAppContext = paramMiniAppContext; + } + + public a.c createPayNotification() { + return new a.c(MiniAppNotificationManager.createPayNotification()); + } + + public MiniAppContext getContext() { + return this.mMiniAppContext; + } + + public void onDestroy() {} + + public void payOnH5(String paramString1, String paramString2, a.b paramb, final a.a payListener) { + FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(-2, -2); + layoutParams.leftMargin = paramb.a; + layoutParams.topMargin = paramb.b; + layoutParams.width = paramb.c; + layoutParams.height = paramb.d; + WxPayManager.payOnH5((Activity)AppbrandContext.getInst().getCurrentActivity(), paramString1, paramString2, layoutParams, new WxPayManager.WxPayListener() { + public void onNotInstalled() { + payListener.a(); + } + + public void onPayFail(String param1String) { + String str = param1String; + if (param1String == null) + str = ""; + payListener.a(str); + } + + public void onTriggerWxClientPay() { + payListener.b(); + final ActivityServiceInterface activityServiceInterface = (ActivityServiceInterface)PayService.this.getContext().getService(ActivityServiceInterface.class); + activityServiceInterface.registerActivityLifecycleCallbacks((ActivityServiceInterface.ActivityLifecycleCallbacks)new ActivityServiceInterface.AbsActivityLifecycleCallbacks() { + public void onActivityResumed(Activity param2Activity) { + payListener.c(); + activityServiceInterface.unregisterActivityLifecycleCallbacks((ActivityServiceInterface.ActivityLifecycleCallbacks)this); + InnerEventHelper.mpTechnologyMsg("微信 H5 支付回调成功"); + } + }); + } + }); + } + + public void reportPayInformation() { + HashMap hashMap = new HashMap(); + c c = (c)this.mMiniAppContext.getService(c.class); + hashMap.put("aid", (c.getHostAppInfo()).a); + hashMap.put("uid", (c.getHostAppUserInfo()).a); + hashMap.put("sec_user_id", (c.getHostAppUserInfo()).b); + hashMap.put("app_id", ((a)this.mMiniAppContext.getService(a.class)).getAppId()); + hashMap.put("order_no", String.valueOf(System.currentTimeMillis() / 1000L)); + a a1 = (a)this.mMiniAppContext.getService(a.class); + HttpRequest.RequestTask.a a2 = HttpRequest.RequestTask.a.a.a(AppbrandConstant.OpenApi.getInst().getUploadOrderInfoUrl(), "POST").a(true); + a2.c = hashMap; + a1.syncHttpRequest(a2.a()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\pay\PayService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/permission/PermissionService.java b/df_miniapp/classes/com/tt/miniapp/business/permission/PermissionService.java new file mode 100644 index 0000000..467f018 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/permission/PermissionService.java @@ -0,0 +1,43 @@ +package com.tt.miniapp.business.permission; + +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.l.a; +import com.tt.miniapp.util.NetUtil; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.IAppbrandApplication; +import com.tt.miniapphost.entity.AppInfoEntity; +import d.f.b.l; + +public final class PermissionService implements a { + private final a context; + + public PermissionService(a parama) { + this.context = parama; + } + + public final a getContext() { + return this.context; + } + + public final boolean isSafeDomain(String paramString1, String paramString2) { + l.b(paramString1, "type"); + l.b(paramString2, "url"); + if (paramString1.hashCode() == -1411064585 && paramString1.equals("appids")) { + IAppbrandApplication iAppbrandApplication = AppbrandApplication.getInst(); + l.a(iAppbrandApplication, "AppbrandApplication.getInst()"); + AppInfoEntity appInfoEntity = iAppbrandApplication.getAppInfo(); + l.a(appInfoEntity, "AppbrandApplication.getInst().appInfo"); + if (appInfoEntity.isWhite()) + return true; + } + return NetUtil.isSafeDomain(paramString1, paramString2); + } + + public final void onDestroy() {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\permission\PermissionService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/business/render/RenderService.java b/df_miniapp/classes/com/tt/miniapp/business/render/RenderService.java new file mode 100644 index 0000000..f2e9d86 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/business/render/RenderService.java @@ -0,0 +1,109 @@ +package com.tt.miniapp.business.render; + +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.m.a; +import com.tt.miniapp.service.suffixmeta.SuffixMetaServiceInterface; +import com.tt.miniapp.settings.data.SettingsDAO; +import com.tt.miniapp.settings.keys.Settings; +import com.tt.miniapp.view.webcore.NestWebView; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.InitParamsEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.util.DebugUtil; +import d.f.b.l; +import d.u; + +public final class RenderService implements a { + private final boolean DEFAULT_USE_WEB_VIDEO; + + private final String TAG; + + private final a context; + + private Boolean mUseWebLivePlayerWhenRenderInBrowser; + + private Boolean mUseWebVideoWhenNotRenderInBrowser; + + public RenderService(a parama) { + this.context = parama; + this.TAG = "RenderService"; + } + + public final a getContext() { + return this.context; + } + + public final boolean isRenderInBrowser() { + if (!NestWebView.hasSetRenderInBrowser()) { + DebugUtil.logOrThrow(this.TAG, new Object[] { "not set render in browser", new Throwable() }); + return false; + } + return NestWebView.isRenderInBrowserEnabled(); + } + + public final void onDestroy() {} + + public final boolean useWebLivePlayer() { + if (SettingsDAO.getInt(getContext().getApplicationContext(), 1, new Enum[] { (Enum)Settings.TT_TMA_SWITCH, (Enum)Settings.TmaSwitch.USE_NATIVE_LIVE_PLAYER }) != 1) + return true; + if (!NestWebView.hasSetRenderInBrowser()) { + DebugUtil.logOrThrow(this.TAG, new Object[] { "not set render in browser", new Throwable() }); + return true; + } + if (isRenderInBrowser()) { + HostDependManager hostDependManager = HostDependManager.getInst(); + l.a(hostDependManager, "HostDependManager.getInst()"); + if (!hostDependManager.isSupportNativeLivePlayer()) + return true; + if (this.mUseWebLivePlayerWhenRenderInBrowser == null) { + boolean bool2 = this.DEFAULT_USE_WEB_VIDEO; + AppbrandContext appbrandContext = AppbrandContext.getInst(); + l.a(appbrandContext, "AppbrandContext.getInst()"); + InitParamsEntity initParamsEntity = appbrandContext.getInitParams(); + boolean bool1 = bool2; + if (initParamsEntity != null) + bool1 = initParamsEntity.useWebLivePlayerWheRenderInBrowser(bool2); + AppBrandLogger.d(this.TAG, new Object[] { "localConfigUseLivePlayer:", Boolean.valueOf(bool1) }); + this.mUseWebLivePlayerWhenRenderInBrowser = Boolean.valueOf(((SuffixMetaServiceInterface)getContext().getService(SuffixMetaServiceInterface.class)).get(true).isUseWebLivePlayer(bool1)); + } + Boolean bool = this.mUseWebLivePlayerWhenRenderInBrowser; + if (bool != null) + return bool.booleanValue(); + throw new u("null cannot be cast to non-null type kotlin.Boolean"); + } + return true; + } + + public final boolean useWebVideo() { + if (!NestWebView.hasSetRenderInBrowser()) { + DebugUtil.logOrThrow(this.TAG, new Object[] { "not set render in browser", new Throwable() }); + return false; + } + if (isRenderInBrowser()) { + AppBrandLogger.i(this.TAG, new Object[] { "开启同层渲染时使用 native video 组件" }); + return false; + } + if (this.mUseWebVideoWhenNotRenderInBrowser == null) { + boolean bool1 = this.DEFAULT_USE_WEB_VIDEO; + AppbrandContext appbrandContext = AppbrandContext.getInst(); + l.a(appbrandContext, "AppbrandContext.getInst()"); + InitParamsEntity initParamsEntity = appbrandContext.getInitParams(); + if (initParamsEntity != null) + bool1 = initParamsEntity.useWebVideoWhenNotRenderInBrowser(this.DEFAULT_USE_WEB_VIDEO); + AppBrandLogger.d(this.TAG, new Object[] { "localConfigUseWebVideo:", Boolean.valueOf(bool1) }); + this.mUseWebVideoWhenNotRenderInBrowser = Boolean.valueOf(((SuffixMetaServiceInterface)getContext().getService(SuffixMetaServiceInterface.class)).get(true).isUseWebVideo(bool1)); + } + AppBrandLogger.i(this.TAG, new Object[] { "非同层渲染情况下 useWebVideo:", this.mUseWebVideoWhenNotRenderInBrowser }); + Boolean bool = this.mUseWebVideoWhenNotRenderInBrowser; + if (bool != null) + return bool.booleanValue(); + throw new u("null cannot be cast to non-null type kotlin.Boolean"); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\business\render\RenderService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/call/PhoneCallHelper.java b/df_miniapp/classes/com/tt/miniapp/call/PhoneCallHelper.java new file mode 100644 index 0000000..2f9c427 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/call/PhoneCallHelper.java @@ -0,0 +1,24 @@ +package com.tt.miniapp.call; + +import android.content.Context; +import android.content.Intent; +import android.net.Uri; + +public class PhoneCallHelper { + public static void markPhoneCall(Context paramContext, String paramString) { + if (!paramString.startsWith("tel:")) { + StringBuilder stringBuilder = new StringBuilder("tel:"); + stringBuilder.append(paramString); + paramString = stringBuilder.toString(); + } + Intent intent = new Intent("android.intent.action.DIAL", Uri.parse(paramString)); + intent.setFlags(268435456); + paramContext.startActivity(intent); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\call\PhoneCallHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/call/PhoneCallImpl.java b/df_miniapp/classes/com/tt/miniapp/call/PhoneCallImpl.java new file mode 100644 index 0000000..943ec68 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/call/PhoneCallImpl.java @@ -0,0 +1,81 @@ +package com.tt.miniapp.call; + +import android.app.Activity; +import android.app.Application; +import android.content.Context; +import android.text.TextUtils; +import com.tt.frontendapiinterface.a; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.NativeModule; +import org.json.JSONException; +import org.json.JSONObject; + +public class PhoneCallImpl extends NativeModule { + public PhoneCallImpl(AppbrandContext paramAppbrandContext) { + super(paramAppbrandContext); + } + + public String getName() { + return "makePhoneCall"; + } + + public String invoke(final String phoneNumber, final NativeModule.NativeModuleCallback nativeModuleCallback) throws Exception { + try { + phoneNumber = (new JSONObject(phoneNumber)).optString("phoneNumber"); + AppbrandContext.mainHandler.post(new Runnable() { + public void run() { + Application application; + String str1; + Activity activity = PhoneCallImpl.this.getCurrentActivity(); + if (activity == null) + application = AppbrandContext.getInst().getApplicationContext(); + boolean bool = false; + boolean bool1 = TextUtils.isEmpty(phoneNumber); + String str2 = " "; + if (!bool1) { + try { + PhoneCallHelper.markPhoneCall((Context)application, phoneNumber); + bool = true; + str1 = str2; + } catch (Exception exception) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(" "); + stringBuilder.append(a.a(exception)); + str1 = stringBuilder.toString(); + } + } else { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(" "); + stringBuilder.append(a.c("phoneNumber")); + str1 = stringBuilder.toString(); + } + NativeModule.NativeModuleCallback nativeModuleCallback = nativeModuleCallback; + if (nativeModuleCallback != null) { + if (bool) { + nativeModuleCallback.onNativeModuleCall("ok"); + return; + } + StringBuilder stringBuilder = new StringBuilder("fail"); + stringBuilder.append(str1); + nativeModuleCallback.onNativeModuleCall(stringBuilder.toString()); + } + } + }); + } catch (JSONException jSONException) { + AppBrandLogger.e("PhoneCallImpl", new Object[] { "invoke", jSONException.getStackTrace() }); + if (nativeModuleCallback != null) { + StringBuilder stringBuilder = new StringBuilder("fail "); + stringBuilder.append(a.a((Throwable)jSONException)); + nativeModuleCallback.onNativeModuleCall(stringBuilder.toString()); + } + } + return null; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\call\PhoneCallImpl.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/callback/ResultCallback.java b/df_miniapp/classes/com/tt/miniapp/callback/ResultCallback.java new file mode 100644 index 0000000..f299b1e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/callback/ResultCallback.java @@ -0,0 +1,11 @@ +package com.tt.miniapp.callback; + +public interface ResultCallback { + void onResult(T paramT); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\callback\ResultCallback.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/PickerActivity.java b/df_miniapp/classes/com/tt/miniapp/chooser/PickerActivity.java new file mode 100644 index 0000000..5c40d5c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/PickerActivity.java @@ -0,0 +1,290 @@ +package com.tt.miniapp.chooser; + +import android.app.Activity; +import android.app.LoaderManager; +import android.content.Context; +import android.content.Intent; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.support.v7.widget.GridLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.Button; +import android.widget.ListAdapter; +import android.widget.ListPopupWindow; +import android.widget.TextView; +import com.tt.miniapp.chooser.adapter.FolderAdapter; +import com.tt.miniapp.chooser.adapter.MediaGridAdapter; +import com.tt.miniapp.chooser.adapter.SpacingDecoration; +import com.tt.miniapp.chooser.data.DataCallback; +import com.tt.miniapp.chooser.data.ImageLoader; +import com.tt.miniapp.chooser.data.MediaLoader; +import com.tt.miniapp.chooser.data.VideoLoader; +import com.tt.miniapp.entity.Folder; +import com.tt.miniapp.permission.PermissionsManager; +import com.tt.miniapp.permission.PermissionsResultAction; +import com.tt.miniapp.view.swipeback.SwipeBackActivity; +import com.tt.miniapphost.entity.MediaEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.language.LanguageChangeListener; +import com.tt.miniapphost.util.UIUtils; +import java.io.File; +import java.util.ArrayList; +import java.util.HashSet; + +public class PickerActivity extends SwipeBackActivity implements View.OnClickListener, DataCallback, LanguageChangeListener { + Intent argsIntent; + + Button category_btn; + + Button done; + + MediaGridAdapter gridAdapter; + + public FolderAdapter mFolderAdapter; + + ListPopupWindow mFolderPopupWindow; + + Button preview; + + RecyclerView recyclerView; + + public void cancel() { + Intent intent = new Intent(); + intent.putParcelableArrayListExtra("select_result", null); + setResult(19901026, intent); + finish(); + } + + void createAdapter() { + GridLayoutManager gridLayoutManager = new GridLayoutManager((Context)this, PickerConfig.GridSpanCount); + this.recyclerView.setLayoutManager((RecyclerView.i)gridLayoutManager); + this.recyclerView.a((RecyclerView.h)new SpacingDecoration(PickerConfig.GridSpanCount, PickerConfig.GridSpace)); + this.recyclerView.setHasFixedSize(true); + ArrayList arrayList1 = new ArrayList(); + ArrayList arrayList2 = this.argsIntent.getParcelableArrayListExtra("default_list"); + int i = this.argsIntent.getIntExtra("max_select_count", 40); + long l = this.argsIntent.getLongExtra("max_select_size", 188743680L); + this.gridAdapter = new MediaGridAdapter(this.argsIntent.getIntExtra("camerType", 0), arrayList1, (Context)this, arrayList2, i, l); + this.recyclerView.setAdapter((RecyclerView.a)this.gridAdapter); + } + + void createFolderAdapter() { + this.mFolderAdapter = new FolderAdapter(new ArrayList(), (Context)this); + this.mFolderPopupWindow = new ListPopupWindow((Context)this); + this.mFolderPopupWindow.setBackgroundDrawable((Drawable)new ColorDrawable(-1)); + this.mFolderPopupWindow.setAdapter((ListAdapter)this.mFolderAdapter); + ListPopupWindow listPopupWindow = this.mFolderPopupWindow; + double d = UIUtils.getScreenHeight((Context)this); + Double.isNaN(d); + listPopupWindow.setHeight((int)(d * 0.6D)); + this.mFolderPopupWindow.setAnchorView(findViewById(2097545302)); + this.mFolderPopupWindow.setModal(true); + this.mFolderPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() { + public void onItemClick(AdapterView param1AdapterView, View param1View, int param1Int, long param1Long) { + PickerActivity.this.mFolderAdapter.setSelectIndex(param1Int); + PickerActivity.this.category_btn.setText((PickerActivity.this.mFolderAdapter.getItem(param1Int)).name); + PickerActivity.this.gridAdapter.updateAdapter(PickerActivity.this.mFolderAdapter.getSelectMedias()); + PickerActivity.this.mFolderPopupWindow.dismiss(); + } + }); + } + + public void done(ArrayList paramArrayList) { + Intent intent = new Intent(); + intent.putParcelableArrayListExtra("select_result", paramArrayList); + setResult(19901026, intent); + finish(); + } + + void getMediaData() { + HashSet hashSet = new HashSet(); + hashSet.add("android.permission.READ_EXTERNAL_STORAGE"); + PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult((Activity)this, hashSet, new PermissionsResultAction() { + public void onDenied(String param1String) {} + + public void onGranted() { + int i = PickerActivity.this.argsIntent.getIntExtra("select_mode", 101); + if (i == 101) { + LoaderManager loaderManager = PickerActivity.this.getLoaderManager(); + PickerActivity pickerActivity = PickerActivity.this; + loaderManager.initLoader(i, null, (LoaderManager.LoaderCallbacks)new MediaLoader((Context)pickerActivity, pickerActivity)); + return; + } + if (i == 100) { + LoaderManager loaderManager = PickerActivity.this.getLoaderManager(); + PickerActivity pickerActivity = PickerActivity.this; + loaderManager.initLoader(i, null, (LoaderManager.LoaderCallbacks)new ImageLoader((Context)pickerActivity, pickerActivity)); + return; + } + if (i == 102) { + LoaderManager loaderManager = PickerActivity.this.getLoaderManager(); + PickerActivity pickerActivity = PickerActivity.this; + loaderManager.initLoader(i, null, (LoaderManager.LoaderCallbacks)new VideoLoader((Context)pickerActivity, pickerActivity)); + } + } + }); + } + + public void onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + super.onActivityResult(paramInt1, paramInt2, paramIntent); + if (paramInt1 == 8) { + if (paramIntent == null) + return; + ArrayList arrayList = paramIntent.getParcelableArrayListExtra("select_result"); + if (paramInt2 == 1990) { + this.gridAdapter.updateSelectAdapter(arrayList); + setButtonText(); + return; + } + if (paramInt2 == 19901026) + done(arrayList); + return; + } + if (paramInt1 == 9 || paramInt1 == 10) { + String str; + if (paramInt1 == 9) { + str = PickerConfig.currentCameraVideoPath; + } else { + str = PickerConfig.currentCameraPhotoPath; + } + if (paramInt2 == -1 && !TextUtils.isEmpty(str)) { + File file = new File(str); + if (file.exists()) { + ArrayList arrayList = new ArrayList(); + arrayList.add(new MediaEntity(str, file.getName(), 0L, 0, file.length(), 0, "")); + done(arrayList); + return; + } + } + cancel(); + } + } + + public void onBackPressed() { + cancel(); + } + + public void onClick(View paramView) { + int i = paramView.getId(); + if (i == 2097545250) { + cancel(); + return; + } + if (i == 2097545255) { + if (this.mFolderPopupWindow.isShowing()) { + this.mFolderPopupWindow.dismiss(); + return; + } + this.mFolderPopupWindow.show(); + return; + } + if (i == 2097545269) { + done(this.gridAdapter.getSelectMedias()); + return; + } + if (i == 2097545369) { + if (this.gridAdapter.getSelectMedias().size() <= 0) { + HostDependManager.getInst().showToast((Context)this, null, getString(2097742021), 0L, null); + return; + } + Intent intent = new Intent((Context)this, PreviewActivity.class); + intent.putExtra("max_select_count", this.argsIntent.getIntExtra("max_select_count", 40)); + intent.putExtra("pre_raw_List", this.gridAdapter.getSelectMedias()); + startActivityForResult(intent, 8); + } + } + + public void onCreate(Bundle paramBundle) { + super.onCreate(paramBundle); + this.argsIntent = getIntent(); + setContentView(2097676327); + this.recyclerView = (RecyclerView)findViewById(2097545370); + this.recyclerView.setRecyclerListener(new RecyclerView.p() { + public void onViewRecycled(RecyclerView.v param1v) { + if (param1v instanceof MediaGridAdapter.MyViewHolder) + ((MediaGridAdapter.MyViewHolder)param1v).media_image.setTag(2097545452, null); + } + }); + findViewById(2097545250).setOnClickListener(this); + setTitleBar(); + this.done = (Button)findViewById(2097545269); + this.category_btn = (Button)findViewById(2097545255); + this.preview = (Button)findViewById(2097545369); + this.done.setOnClickListener(this); + this.category_btn.setOnClickListener(this); + this.preview.setOnClickListener(this); + createAdapter(); + createFolderAdapter(); + getMediaData(); + } + + public void onData(ArrayList paramArrayList) { + setView(paramArrayList); + this.category_btn.setText(((Folder)paramArrayList.get(0)).name); + this.mFolderAdapter.updateAdapter(paramArrayList); + } + + public void onLanguageChange() { + setTitleBar(); + } + + public void onRequestPermissionsResult(int paramInt, String[] paramArrayOfString, int[] paramArrayOfint) { + super.onRequestPermissionsResult(paramInt, paramArrayOfString, paramArrayOfint); + if ((paramInt >> 16 & 0xFFFF) == 0) + PermissionsManager.getInstance().notifyPermissionsChange((Activity)this, paramArrayOfString, paramArrayOfint); + } + + void setButtonText() { + int i = this.argsIntent.getIntExtra("max_select_count", 40); + Button button = this.done; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(getString(2097741885)); + stringBuilder.append("("); + stringBuilder.append(this.gridAdapter.getSelectMedias().size()); + stringBuilder.append("/"); + stringBuilder.append(i); + stringBuilder.append(")"); + button.setText(stringBuilder.toString()); + button = this.preview; + stringBuilder = new StringBuilder(); + stringBuilder.append(getString(2097741988)); + stringBuilder.append("("); + stringBuilder.append(this.gridAdapter.getSelectMedias().size()); + stringBuilder.append(")"); + button.setText(stringBuilder.toString()); + } + + public void setTitleBar() { + int i = this.argsIntent.getIntExtra("select_mode", 101); + if (i == 101) { + ((TextView)findViewById(2097545248)).setText(getString(2097742022)); + return; + } + if (i == 100) { + ((TextView)findViewById(2097545248)).setText(getString(2097742020)); + return; + } + if (i == 102) + ((TextView)findViewById(2097545248)).setText(getString(2097742023)); + } + + void setView(ArrayList paramArrayList) { + this.gridAdapter.updateAdapter(((Folder)paramArrayList.get(0)).getMedias()); + setButtonText(); + this.gridAdapter.setOnItemClickListener(new MediaGridAdapter.OnRecyclerViewItemClickListener() { + public void onItemClick(View param1View, MediaEntity param1MediaEntity, ArrayList param1ArrayList) { + PickerActivity.this.setButtonText(); + } + }); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\PickerActivity.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/PickerConfig.java b/df_miniapp/classes/com/tt/miniapp/chooser/PickerConfig.java new file mode 100644 index 0000000..d702388 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/PickerConfig.java @@ -0,0 +1,17 @@ +package com.tt.miniapp.chooser; + +public class PickerConfig { + public static int GridSpace = 4; + + public static int GridSpanCount = 3; + + public static String currentCameraPhotoPath; + + public static String currentCameraVideoPath; +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\PickerConfig.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/PreviewActivity.java b/df_miniapp/classes/com/tt/miniapp/chooser/PreviewActivity.java new file mode 100644 index 0000000..303bc4d --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/PreviewActivity.java @@ -0,0 +1,171 @@ +package com.tt.miniapp.chooser; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.support.v4.app.k; +import android.support.v4.app.q; +import android.support.v4.content.c; +import android.support.v4.view.PagerAdapter; +import android.support.v4.view.ViewPager; +import android.view.View; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; +import com.tt.miniapp.chooser.view.PreviewFragment; +import com.tt.miniapp.view.swipeback.SwipeBackActivity; +import com.tt.miniapphost.entity.MediaEntity; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class PreviewActivity extends SwipeBackActivity implements ViewPager.e, View.OnClickListener { + TextView bar_title; + + ImageView check_image; + + LinearLayout check_layout; + + Button done; + + ArrayList preRawList; + + ArrayList selects; + + ViewPager viewpager; + + public void done(ArrayList paramArrayList, int paramInt) { + Intent intent = new Intent(); + intent.putParcelableArrayListExtra("select_result", paramArrayList); + setResult(paramInt, intent); + finish(); + } + + public int isSelect(MediaEntity paramMediaEntity, ArrayList paramArrayList) { + if (paramArrayList.size() <= 0) + return -1; + for (int i = 0; i < paramArrayList.size(); i++) { + if (((MediaEntity)paramArrayList.get(i)).path.equals(paramMediaEntity.path)) + return i; + } + return -1; + } + + public void onBackPressed() { + done(this.selects, 1990); + super.onBackPressed(); + } + + public void onClick(View paramView) { + int i = paramView.getId(); + if (i == 2097545250) { + done(this.selects, 1990); + return; + } + if (i == 2097545269) { + done(this.selects, 19901026); + return; + } + if (i == 2097545258) { + MediaEntity mediaEntity = this.preRawList.get(this.viewpager.getCurrentItem()); + i = isSelect(mediaEntity, this.selects); + if (i < 0) { + this.check_image.setImageDrawable(c.a((Context)this, 2097479695)); + this.selects.add(mediaEntity); + } else { + this.check_image.setImageDrawable(c.a((Context)this, 2097479696)); + this.selects.remove(i); + } + setDoneView(this.selects.size()); + } + } + + public void onCreate(Bundle paramBundle) { + super.onCreate(paramBundle); + setContentView(2097676344); + findViewById(2097545250).setOnClickListener(this); + this.check_image = (ImageView)findViewById(2097545257); + this.check_layout = (LinearLayout)findViewById(2097545258); + this.check_layout.setOnClickListener(this); + this.bar_title = (TextView)findViewById(2097545248); + this.done = (Button)findViewById(2097545269); + this.done.setOnClickListener(this); + this.viewpager = (ViewPager)findViewById(2097545500); + this.preRawList = getIntent().getParcelableArrayListExtra("pre_raw_List"); + this.selects = new ArrayList(); + this.selects.addAll(this.preRawList); + setView(this.preRawList); + } + + public void onPageScrollStateChanged(int paramInt) {} + + public void onPageScrolled(int paramInt1, float paramFloat, int paramInt2) {} + + public void onPageSelected(int paramInt) { + TextView textView = this.bar_title; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramInt + 1); + stringBuilder.append("/"); + stringBuilder.append(this.preRawList.size()); + textView.setText(stringBuilder.toString()); + ImageView imageView = this.check_image; + if (isSelect(this.preRawList.get(paramInt), this.selects) < 0) { + paramInt = 2097479696; + } else { + paramInt = 2097479695; + } + imageView.setImageDrawable(c.a((Context)this, paramInt)); + } + + void setDoneView(int paramInt) { + Button button = this.done; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(getString(2097741885)); + stringBuilder.append("("); + stringBuilder.append(paramInt); + stringBuilder.append("/"); + stringBuilder.append(getIntent().getIntExtra("max_select_count", 40)); + stringBuilder.append(")"); + button.setText(stringBuilder.toString()); + } + + void setView(ArrayList paramArrayList) { + setDoneView(paramArrayList.size()); + TextView textView = this.bar_title; + StringBuilder stringBuilder = new StringBuilder("1/"); + stringBuilder.append(this.preRawList.size()); + textView.setText(stringBuilder.toString()); + ArrayList arrayList = new ArrayList(); + Iterator iterator = paramArrayList.iterator(); + while (iterator.hasNext()) + arrayList.add(PreviewFragment.newInstance(iterator.next(), "")); + AdapterFragment adapterFragment = new AdapterFragment(getSupportFragmentManager(), (List)arrayList); + this.viewpager.setAdapter((PagerAdapter)adapterFragment); + this.viewpager.addOnPageChangeListener(this); + } + + public class AdapterFragment extends q { + private List mFragments; + + public AdapterFragment(k param1k, List param1List) { + super(param1k); + this.mFragments = param1List; + } + + public int getCount() { + return this.mFragments.size(); + } + + public Fragment getItem(int param1Int) { + return this.mFragments.get(param1Int); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\PreviewActivity.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/adapter/FolderAdapter.java b/df_miniapp/classes/com/tt/miniapp/chooser/adapter/FolderAdapter.java new file mode 100644 index 0000000..264c521 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/adapter/FolderAdapter.java @@ -0,0 +1,121 @@ +package com.tt.miniapp.chooser.adapter; + +import android.content.Context; +import android.net.Uri; +import android.support.v4.content.c; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.TextView; +import com.tt.miniapp.entity.Folder; +import com.tt.miniapphost.entity.MediaEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.util.UIUtils; +import java.text.MessageFormat; +import java.util.ArrayList; + +public class FolderAdapter extends BaseAdapter { + ArrayList folders; + + int lastSelected; + + private Context mContext; + + private LayoutInflater mInflater; + + public FolderAdapter(ArrayList paramArrayList, Context paramContext) { + this.mInflater = (LayoutInflater)paramContext.getSystemService("layout_inflater"); + this.folders = paramArrayList; + this.mContext = paramContext; + } + + public int getCount() { + return this.folders.size(); + } + + public Folder getItem(int paramInt) { + return this.folders.get(paramInt); + } + + public long getItemId(int paramInt) { + return 0L; + } + + public ArrayList getSelectMedias() { + return ((Folder)this.folders.get(this.lastSelected)).getMedias(); + } + + public View getView(int paramInt, View paramView, ViewGroup paramViewGroup) { + ViewHolder viewHolder; + boolean bool = false; + if (paramView == null) { + paramView = this.mInflater.inflate(2097676306, paramViewGroup, false); + viewHolder = new ViewHolder(paramView); + } else { + viewHolder = (ViewHolder)paramView.getTag(); + } + Folder folder = getItem(paramInt); + if (folder.getMedias().size() > 0) { + MediaEntity mediaEntity = folder.getMedias().get(0); + HostDependManager hostDependManager = HostDependManager.getInst(); + Context context = this.mContext; + ImageView imageView1 = viewHolder.cover; + StringBuilder stringBuilder = new StringBuilder("file://"); + stringBuilder.append(mediaEntity.path); + hostDependManager.loadImage(context, imageView1, Uri.parse(stringBuilder.toString())); + } else { + viewHolder.cover.setImageDrawable(c.a(this.mContext, 2097479705)); + } + viewHolder.name.setText(folder.name); + viewHolder.size.setText(MessageFormat.format("{0}{1}", new Object[] { Integer.valueOf(folder.getMedias().size()), UIUtils.getString(2097741879) })); + ImageView imageView = viewHolder.indicator; + if (this.lastSelected == paramInt) { + paramInt = bool; + } else { + paramInt = 4; + } + imageView.setVisibility(paramInt); + return paramView; + } + + public void setSelectIndex(int paramInt) { + if (this.lastSelected == paramInt) + return; + this.lastSelected = paramInt; + notifyDataSetChanged(); + } + + public void updateAdapter(ArrayList paramArrayList) { + this.folders = paramArrayList; + notifyDataSetChanged(); + } + + class ViewHolder { + ImageView cover; + + ImageView indicator; + + TextView name; + + TextView path; + + TextView size; + + ViewHolder(View param1View) { + this.cover = (ImageView)param1View.findViewById(2097545262); + this.name = (TextView)param1View.findViewById(2097545351); + this.path = (TextView)param1View.findViewById(2097545361); + this.size = (TextView)param1View.findViewById(2097545387); + this.indicator = (ImageView)param1View.findViewById(2097545312); + param1View.setTag(this); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\adapter\FolderAdapter.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/adapter/MediaGridAdapter.java b/df_miniapp/classes/com/tt/miniapp/chooser/adapter/MediaGridAdapter.java new file mode 100644 index 0000000..fd3f25a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/adapter/MediaGridAdapter.java @@ -0,0 +1,443 @@ +package com.tt.miniapp.chooser.adapter; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; +import android.os.Parcelable; +import android.support.v4.content.FileProvider; +import android.support.v4.content.c; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AbsListView; +import android.widget.ImageView; +import android.widget.RelativeLayout; +import android.widget.TextView; +import com.tt.miniapp.chooser.PickerConfig; +import com.tt.miniapp.permission.PermissionsManager; +import com.tt.miniapp.permission.PermissionsResultAction; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.MediaEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.util.IOUtils; +import com.tt.miniapphost.util.UIUtils; +import java.io.File; +import java.util.ArrayList; +import java.util.HashSet; + +public class MediaGridAdapter extends RecyclerView.a { + Context context; + + int mCamerType = 0; + + public OnRecyclerViewItemClickListener mOnItemClickListener = null; + + long maxSelect; + + long maxSize; + + ArrayList medias; + + ArrayList selectMedias = new ArrayList(); + + private VideoThumbLoader thumbLoader; + + public MediaGridAdapter(int paramInt1, ArrayList paramArrayList1, Context paramContext, ArrayList paramArrayList2, int paramInt2, long paramLong) { + if (paramArrayList2 != null) + this.selectMedias = paramArrayList2; + this.maxSelect = paramInt2; + this.maxSize = paramLong; + this.medias = paramArrayList1; + this.context = paramContext; + this.mCamerType = paramInt1; + this.thumbLoader = new VideoThumbLoader(); + } + + public static void openCamera(final Activity activity, final int requestCode) { + HashSet hashSet = new HashSet(); + hashSet.add("android.permission.CAMERA"); + hashSet.add("android.permission.WRITE_EXTERNAL_STORAGE"); + PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult(activity, hashSet, new PermissionsResultAction() { + public final void onDenied(String param1String) {} + + public final void onGranted() { + File file = new File(activity.getExternalCacheDir(), "image"); + if (file.exists() || file.mkdirs()) { + Uri uri; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(System.currentTimeMillis()); + stringBuilder.append("-tmp.jpg"); + file = new File(file, stringBuilder.toString()); + PickerConfig.currentCameraPhotoPath = file.getAbsolutePath(); + Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); + if (Build.VERSION.SDK_INT >= 24) { + String str = AppbrandContext.getInst().getInitParams().getHostStr(1007, "com.ss.android.uri.fileprovider"); + uri = FileProvider.getUriForFile((Context)activity, str, file); + } else { + uri = Uri.fromFile((File)uri); + } + intent.putExtra("output", (Parcelable)uri); + activity.startActivityForResult(intent, requestCode); + } + } + }); + } + + public static void openVideoCap(final Activity activity, final int requestCode) { + HashSet hashSet = new HashSet(); + hashSet.add("android.permission.CAMERA"); + hashSet.add("android.permission.WRITE_EXTERNAL_STORAGE"); + PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult(activity, hashSet, new PermissionsResultAction() { + public final void onDenied(String param1String) {} + + public final void onGranted() { + Uri uri; + Intent intent = new Intent(); + intent.setAction("android.media.action.VIDEO_CAPTURE"); + intent.addCategory("android.intent.category.DEFAULT"); + File file = activity.getExternalCacheDir(); + StringBuilder stringBuilder = new StringBuilder("video/"); + stringBuilder.append(System.currentTimeMillis()); + stringBuilder.append(".3pg"); + file = new File(file, stringBuilder.toString()); + if (!file.getParentFile().exists()) + file.getParentFile().mkdirs(); + PickerConfig.currentCameraVideoPath = file.getAbsolutePath(); + if (Build.VERSION.SDK_INT >= 24) { + String str = AppbrandContext.getInst().getInitParams().getHostStr(1007, "com.ss.android.uri.fileprovider"); + uri = FileProvider.getUriForFile((Context)activity, str, file); + } else { + uri = Uri.fromFile((File)uri); + } + intent.putExtra("output", (Parcelable)uri); + activity.startActivityForResult(intent, requestCode); + } + }); + } + + public int getItemCount() { + int i = this.mCamerType; + return (i == 1 || i == 2) ? (this.medias.size() + 1) : this.medias.size(); + } + + public int getItemViewType(int paramInt) { + int i = this.mCamerType; + return (i == 2 || i == 1) ? ((paramInt == 0) ? 0 : 1) : 1; + } + + int getItemWidth() { + return UIUtils.getScreenWidth(this.context) / PickerConfig.GridSpanCount - PickerConfig.GridSpanCount; + } + + public ArrayList getSelectMedias() { + return this.selectMedias; + } + + public int isSelect(MediaEntity paramMediaEntity) { + if (this.selectMedias.size() <= 0) + return -1; + for (int i = 0; i < this.selectMedias.size(); i++) { + if (((MediaEntity)this.selectMedias.get(i)).path.equals(paramMediaEntity.path)) + return i; + } + return -1; + } + + public void onBindViewHolder(RecyclerView.v paramv, int paramInt) { + // Byte code: + // 0: aload_1 + // 1: instanceof com/tt/miniapp/chooser/adapter/MediaGridAdapter$CamerHolder + // 4: ifeq -> 61 + // 7: aload_1 + // 8: checkcast com/tt/miniapp/chooser/adapter/MediaGridAdapter$CamerHolder + // 11: astore_1 + // 12: aload_0 + // 13: getfield mCamerType : I + // 16: istore_2 + // 17: iload_2 + // 18: iconst_1 + // 19: if_icmpne -> 39 + // 22: aload_1 + // 23: getfield came_plan : Landroid/widget/TextView; + // 26: aload_0 + // 27: getfield context : Landroid/content/Context; + // 30: ldc 2097742039 + // 32: invokevirtual getString : (I)Ljava/lang/String; + // 35: invokevirtual setText : (Ljava/lang/CharSequence;)V + // 38: return + // 39: iload_2 + // 40: iconst_2 + // 41: if_icmpne -> 60 + // 44: aload_1 + // 45: getfield came_plan : Landroid/widget/TextView; + // 48: aload_0 + // 49: getfield context : Landroid/content/Context; + // 52: ldc 2097742040 + // 54: invokevirtual getString : (I)Ljava/lang/String; + // 57: invokevirtual setText : (Ljava/lang/CharSequence;)V + // 60: return + // 61: aload_0 + // 62: getfield mCamerType : I + // 65: istore #4 + // 67: iload #4 + // 69: iconst_1 + // 70: if_icmpeq -> 81 + // 73: iload_2 + // 74: istore_3 + // 75: iload #4 + // 77: iconst_2 + // 78: if_icmpne -> 85 + // 81: iload_2 + // 82: iconst_1 + // 83: isub + // 84: istore_3 + // 85: aload_1 + // 86: instanceof com/tt/miniapp/chooser/adapter/MediaGridAdapter$MyViewHolder + // 89: ifeq -> 414 + // 92: aload_1 + // 93: checkcast com/tt/miniapp/chooser/adapter/MediaGridAdapter$MyViewHolder + // 96: astore #5 + // 98: aload_0 + // 99: getfield medias : Ljava/util/ArrayList; + // 102: iload_3 + // 103: invokevirtual get : (I)Ljava/lang/Object; + // 106: checkcast com/tt/miniapphost/entity/MediaEntity + // 109: astore #6 + // 111: aload #6 + // 113: getfield mediaType : I + // 116: iconst_3 + // 117: if_icmpne -> 223 + // 120: aload_0 + // 121: getfield context : Landroid/content/Context; + // 124: aload #6 + // 126: getfield id : I + // 129: invokestatic getVideoThumbPath : (Landroid/content/Context;I)Ljava/lang/String; + // 132: astore_1 + // 133: aload_1 + // 134: ifnull -> 203 + // 137: new java/io/File + // 140: dup + // 141: aload_1 + // 142: invokespecial : (Ljava/lang/String;)V + // 145: invokevirtual exists : ()Z + // 148: ifeq -> 203 + // 151: new com/tt/b/c + // 154: dup + // 155: new java/io/File + // 158: dup + // 159: aload_1 + // 160: invokespecial : (Ljava/lang/String;)V + // 163: invokespecial : (Ljava/io/File;)V + // 166: invokevirtual a : ()Lcom/tt/b/c; + // 169: aload_0 + // 170: invokevirtual getItemWidth : ()I + // 173: aload_0 + // 174: invokevirtual getItemWidth : ()I + // 177: invokevirtual a : (II)Lcom/tt/b/c; + // 180: aload #5 + // 182: getfield media_image : Landroid/widget/ImageView; + // 185: invokevirtual a : (Landroid/view/View;)Lcom/tt/b/c; + // 188: astore_1 + // 189: invokestatic getInst : ()Lcom/tt/miniapphost/host/HostDependManager; + // 192: aload_0 + // 193: getfield context : Landroid/content/Context; + // 196: aload_1 + // 197: invokevirtual loadImage : (Landroid/content/Context;Lcom/tt/b/c;)V + // 200: goto -> 276 + // 203: aload_0 + // 204: getfield thumbLoader : Lcom/tt/miniapp/chooser/adapter/VideoThumbLoader; + // 207: aload #6 + // 209: getfield path : Ljava/lang/String; + // 212: aload #5 + // 214: getfield media_image : Landroid/widget/ImageView; + // 217: invokevirtual showThumb : (Ljava/lang/String;Landroid/widget/ImageView;)V + // 220: goto -> 276 + // 223: new com/tt/b/c + // 226: dup + // 227: new java/io/File + // 230: dup + // 231: aload #6 + // 233: getfield path : Ljava/lang/String; + // 236: invokespecial : (Ljava/lang/String;)V + // 239: invokespecial : (Ljava/io/File;)V + // 242: invokevirtual a : ()Lcom/tt/b/c; + // 245: aload_0 + // 246: invokevirtual getItemWidth : ()I + // 249: aload_0 + // 250: invokevirtual getItemWidth : ()I + // 253: invokevirtual a : (II)Lcom/tt/b/c; + // 256: aload #5 + // 258: getfield media_image : Landroid/widget/ImageView; + // 261: invokevirtual a : (Landroid/view/View;)Lcom/tt/b/c; + // 264: astore_1 + // 265: invokestatic getInst : ()Lcom/tt/miniapphost/host/HostDependManager; + // 268: aload_0 + // 269: getfield context : Landroid/content/Context; + // 272: aload_1 + // 273: invokevirtual loadImage : (Landroid/content/Context;Lcom/tt/b/c;)V + // 276: aload #6 + // 278: getfield mediaType : I + // 281: istore_3 + // 282: iconst_0 + // 283: istore_2 + // 284: iload_3 + // 285: iconst_3 + // 286: if_icmpne -> 318 + // 289: aload #5 + // 291: getfield video_info : Landroid/widget/RelativeLayout; + // 294: iconst_0 + // 295: invokevirtual setVisibility : (I)V + // 298: aload #5 + // 300: getfield textView_size : Landroid/widget/TextView; + // 303: aload #6 + // 305: getfield size : J + // 308: l2d + // 309: invokestatic getSizeByUnit : (D)Ljava/lang/String; + // 312: invokevirtual setText : (Ljava/lang/CharSequence;)V + // 315: goto -> 327 + // 318: aload #5 + // 320: getfield video_info : Landroid/widget/RelativeLayout; + // 323: iconst_4 + // 324: invokevirtual setVisibility : (I)V + // 327: aload_0 + // 328: aload #6 + // 330: invokevirtual isSelect : (Lcom/tt/miniapphost/entity/MediaEntity;)I + // 333: istore_3 + // 334: aload #5 + // 336: getfield mask_view : Landroid/view/View; + // 339: astore_1 + // 340: iload_3 + // 341: iflt -> 347 + // 344: goto -> 349 + // 347: iconst_4 + // 348: istore_2 + // 349: aload_1 + // 350: iload_2 + // 351: invokevirtual setVisibility : (I)V + // 354: aload #5 + // 356: getfield check_image : Landroid/widget/ImageView; + // 359: astore #7 + // 361: iload_3 + // 362: iflt -> 376 + // 365: aload_0 + // 366: getfield context : Landroid/content/Context; + // 369: astore_1 + // 370: ldc 2097479695 + // 372: istore_2 + // 373: goto -> 384 + // 376: aload_0 + // 377: getfield context : Landroid/content/Context; + // 380: astore_1 + // 381: ldc 2097479696 + // 383: istore_2 + // 384: aload #7 + // 386: aload_1 + // 387: iload_2 + // 388: invokestatic a : (Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; + // 391: invokevirtual setImageDrawable : (Landroid/graphics/drawable/Drawable;)V + // 394: aload #5 + // 396: getfield media_image : Landroid/widget/ImageView; + // 399: new com/tt/miniapp/chooser/adapter/MediaGridAdapter$3 + // 402: dup + // 403: aload_0 + // 404: aload #6 + // 406: aload #5 + // 408: invokespecial : (Lcom/tt/miniapp/chooser/adapter/MediaGridAdapter;Lcom/tt/miniapphost/entity/MediaEntity;Lcom/tt/miniapp/chooser/adapter/MediaGridAdapter$MyViewHolder;)V + // 411: invokevirtual setOnClickListener : (Landroid/view/View$OnClickListener;)V + // 414: return + } + + public RecyclerView.v onCreateViewHolder(ViewGroup paramViewGroup, int paramInt) { + return (RecyclerView.v)((paramInt == 0) ? new CamerHolder(LayoutInflater.from(paramViewGroup.getContext()).inflate(2097676299, paramViewGroup, false)) : ((paramInt == 1) ? new MyViewHolder(LayoutInflater.from(paramViewGroup.getContext()).inflate(2097676330, paramViewGroup, false)) : null)); + } + + public void setOnItemClickListener(OnRecyclerViewItemClickListener paramOnRecyclerViewItemClickListener) { + this.mOnItemClickListener = paramOnRecyclerViewItemClickListener; + } + + public void setSelectMedias(MediaEntity paramMediaEntity) { + int i = isSelect(paramMediaEntity); + if (i == -1) { + this.selectMedias.add(paramMediaEntity); + return; + } + this.selectMedias.remove(i); + } + + public void updateAdapter(ArrayList paramArrayList) { + this.medias = paramArrayList; + notifyDataSetChanged(); + } + + public void updateSelectAdapter(ArrayList paramArrayList) { + if (paramArrayList != null) + this.selectMedias = paramArrayList; + notifyDataSetChanged(); + } + + public class CamerHolder extends RecyclerView.v { + public TextView came_plan; + + public CamerHolder(View param1View) { + super(param1View); + this.came_plan = (TextView)param1View.findViewById(2097545347); + this.itemView.setLayoutParams((ViewGroup.LayoutParams)new AbsListView.LayoutParams(-1, MediaGridAdapter.this.getItemWidth())); + param1View.setOnClickListener(new View.OnClickListener() { + public void onClick(View param2View) { + if (MediaGridAdapter.this.mCamerType == 1) { + MediaGridAdapter.openCamera((Activity)MediaGridAdapter.this.context, 10); + return; + } + if (MediaGridAdapter.this.mCamerType == 2) + MediaGridAdapter.openVideoCap((Activity)MediaGridAdapter.this.context, 9); + } + }); + } + } + + class null implements View.OnClickListener { + public void onClick(View param1View) { + if (MediaGridAdapter.this.mCamerType == 1) { + MediaGridAdapter.openCamera((Activity)MediaGridAdapter.this.context, 10); + return; + } + if (MediaGridAdapter.this.mCamerType == 2) + MediaGridAdapter.openVideoCap((Activity)MediaGridAdapter.this.context, 9); + } + } + + public class MyViewHolder extends RecyclerView.v { + public ImageView check_image; + + public View mask_view; + + public ImageView media_image; + + public TextView textView_size; + + public RelativeLayout video_info; + + public MyViewHolder(View param1View) { + super(param1View); + this.media_image = (ImageView)param1View.findViewById(2097545348); + this.check_image = (ImageView)param1View.findViewById(2097545257); + this.mask_view = param1View.findViewById(2097545346); + this.video_info = (RelativeLayout)param1View.findViewById(2097545438); + this.textView_size = (TextView)param1View.findViewById(2097545398); + this.itemView.setLayoutParams((ViewGroup.LayoutParams)new AbsListView.LayoutParams(-1, MediaGridAdapter.this.getItemWidth())); + } + } + + public static interface OnRecyclerViewItemClickListener { + void onItemClick(View param1View, MediaEntity param1MediaEntity, ArrayList param1ArrayList); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\adapter\MediaGridAdapter.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/adapter/SpacingDecoration.java b/df_miniapp/classes/com/tt/miniapp/chooser/adapter/SpacingDecoration.java new file mode 100644 index 0000000..f4d91fb --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/adapter/SpacingDecoration.java @@ -0,0 +1,30 @@ +package com.tt.miniapp.chooser.adapter; + +import android.graphics.Rect; +import android.support.v7.widget.RecyclerView; +import android.view.View; + +public class SpacingDecoration extends RecyclerView.h { + private int space; + + private int spanCount; + + public SpacingDecoration(int paramInt1, int paramInt2) { + this.spanCount = paramInt1; + this.space = paramInt2; + } + + public void getItemOffsets(Rect paramRect, View paramView, RecyclerView paramRecyclerView, RecyclerView.s params) { + int i = this.space; + paramRect.left = i; + paramRect.bottom = i; + if (RecyclerView.g(paramView) % this.spanCount == 0) + paramRect.left = 0; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\adapter\SpacingDecoration.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/adapter/VideoThumbLoader.java b/df_miniapp/classes/com/tt/miniapp/chooser/adapter/VideoThumbLoader.java new file mode 100644 index 0000000..70046bf --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/adapter/VideoThumbLoader.java @@ -0,0 +1,93 @@ +package com.tt.miniapp.chooser.adapter; + +import android.graphics.Bitmap; +import android.media.ThumbnailUtils; +import android.os.AsyncTask; +import android.util.LruCache; +import android.widget.ImageView; +import com.tt.miniapphost.AppBrandLogger; +import java.lang.ref.WeakReference; + +public class VideoThumbLoader { + private static LruCache lruCache; + + public VideoThumbLoader() { + int i = (int)Runtime.getRuntime().maxMemory() / 4; + if (lruCache == null) + lruCache = new LruCache(i) { + protected int sizeOf(String param1String, Bitmap param1Bitmap) { + return param1Bitmap.getByteCount(); + } + }; + } + + public static void addVideoThumbToCache(String paramString, Bitmap paramBitmap) { + if (getVideoThumbToCache(paramString) == null) + lruCache.put(paramString, paramBitmap); + } + + public static Bitmap getVideoThumbToCache(String paramString) { + return (Bitmap)lruCache.get(paramString); + } + + public void showThumb(String paramString, ImageView paramImageView) { + if (getVideoThumbToCache(paramString) == null) { + paramImageView.setTag(2097545452, paramString); + (new BobAsyncTask(paramImageView, paramString)).execute((Object[])new String[] { paramString }); + return; + } + paramImageView.setImageBitmap(getVideoThumbToCache(paramString)); + } + + static class BobAsyncTask extends AsyncTask { + private WeakReference imgViewRef; + + private String path; + + public BobAsyncTask(ImageView param1ImageView, String param1String) { + this.imgViewRef = new WeakReference(param1ImageView); + this.path = param1String; + } + + protected Bitmap doInBackground(String... param1VarArgs) { + try { + Bitmap bitmap1 = ThumbnailUtils.createVideoThumbnail(param1VarArgs[0], 3); + if (bitmap1 == null) + return null; + Bitmap bitmap2 = bitmap1; + try { + if (VideoThumbLoader.getVideoThumbToCache(param1VarArgs[0]) == null) { + VideoThumbLoader.addVideoThumbToCache(this.path, bitmap1); + return bitmap1; + } + } catch (Exception exception1) { + Bitmap bitmap = bitmap1; + exception = exception1; + } + } catch (Exception exception) { + param1VarArgs = null; + } + AppBrandLogger.stacktrace(6, "VideoThumbLoader", exception.getStackTrace()); + String[] arrayOfString = param1VarArgs; + } + + protected void onPostExecute(Bitmap param1Bitmap) { + ImageView imageView = this.imgViewRef.get(); + if (imageView != null && this.path.equals(imageView.getTag(2097545452))) + imageView.setImageBitmap(param1Bitmap); + } + + protected void onPreExecute() { + super.onPreExecute(); + ImageView imageView = this.imgViewRef.get(); + if (imageView != null) + imageView.setImageBitmap(null); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\adapter\VideoThumbLoader.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/data/DataCallback.java b/df_miniapp/classes/com/tt/miniapp/chooser/data/DataCallback.java new file mode 100644 index 0000000..3b9c925 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/data/DataCallback.java @@ -0,0 +1,14 @@ +package com.tt.miniapp.chooser.data; + +import com.tt.miniapp.entity.Folder; +import java.util.ArrayList; + +public interface DataCallback { + void onData(ArrayList paramArrayList); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\data\DataCallback.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/data/ImageLoader.java b/df_miniapp/classes/com/tt/miniapp/chooser/data/ImageLoader.java new file mode 100644 index 0000000..9ca67d6 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/data/ImageLoader.java @@ -0,0 +1,71 @@ +package com.tt.miniapp.chooser.data; + +import android.app.LoaderManager; +import android.content.Context; +import android.content.CursorLoader; +import android.content.Loader; +import android.net.Uri; +import android.os.Bundle; +import android.provider.MediaStore; +import com.tt.miniapp.entity.Folder; +import com.tt.miniapphost.entity.MediaEntity; +import java.io.File; +import java.util.ArrayList; + +public class ImageLoader extends LoaderM implements LoaderManager.LoaderCallbacks { + String[] IMAGE_PROJECTION = new String[] { "_data", "_display_name", "date_added", "mime_type", "_size", "_id" }; + + Context mContext; + + DataCallback mLoader; + + public ImageLoader(Context paramContext, DataCallback paramDataCallback) { + this.mContext = paramContext; + this.mLoader = paramDataCallback; + } + + public Loader onCreateLoader(int paramInt, Bundle paramBundle) { + Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; + return (Loader)new CursorLoader(this.mContext, uri, this.IMAGE_PROJECTION, null, null, "date_added DESC"); + } + + public void onLoadFinished(Loader paramLoader, Object paramObject) { + ArrayList arrayList = new ArrayList(); + Folder folder = new Folder(this.mContext.getResources().getString(2097741858)); + arrayList.add(folder); + paramObject = paramObject; + if (paramObject != null) { + while (paramObject.moveToNext()) { + String str1 = paramObject.getString(paramObject.getColumnIndexOrThrow("_data")); + String str2 = paramObject.getString(paramObject.getColumnIndexOrThrow("_display_name")); + long l1 = paramObject.getLong(paramObject.getColumnIndexOrThrow("date_added")); + int i = paramObject.getInt(paramObject.getColumnIndexOrThrow("mime_type")); + long l2 = paramObject.getLong(paramObject.getColumnIndexOrThrow("_size")); + int j = paramObject.getInt(paramObject.getColumnIndexOrThrow("_id")); + if (l2 >= 1L && (new File(str1)).exists()) { + String str = getParent(str1); + MediaEntity mediaEntity = new MediaEntity(str1, str2, l1, i, l2, j, str); + folder.addMedias(mediaEntity); + i = hasDir(arrayList, str); + if (i != -1) { + ((Folder)arrayList.get(i)).addMedias(mediaEntity); + continue; + } + Folder folder1 = new Folder(str); + folder1.addMedias(mediaEntity); + arrayList.add(folder1); + } + } + paramObject.close(); + } + this.mLoader.onData(arrayList); + } + + public void onLoaderReset(Loader paramLoader) {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\data\ImageLoader.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/data/LoaderM.java b/df_miniapp/classes/com/tt/miniapp/chooser/data/LoaderM.java new file mode 100644 index 0000000..e264699 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/data/LoaderM.java @@ -0,0 +1,25 @@ +package com.tt.miniapp.chooser.data; + +import com.tt.miniapp.entity.Folder; +import java.util.ArrayList; + +public class LoaderM { + public String getParent(String paramString) { + String[] arrayOfString = paramString.split("/"); + return arrayOfString[arrayOfString.length - 2]; + } + + public int hasDir(ArrayList paramArrayList, String paramString) { + for (int i = 0; i < paramArrayList.size(); i++) { + if (((Folder)paramArrayList.get(i)).name.equals(paramString)) + return i; + } + return -1; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\data\LoaderM.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/data/MediaLoader.java b/df_miniapp/classes/com/tt/miniapp/chooser/data/MediaLoader.java new file mode 100644 index 0000000..b4ad3f1 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/data/MediaLoader.java @@ -0,0 +1,76 @@ +package com.tt.miniapp.chooser.data; + +import android.app.LoaderManager; +import android.content.Context; +import android.content.CursorLoader; +import android.content.Loader; +import android.database.Cursor; +import android.net.Uri; +import android.os.Bundle; +import android.provider.MediaStore; +import com.tt.miniapp.entity.Folder; +import com.tt.miniapphost.entity.MediaEntity; +import java.io.File; +import java.util.ArrayList; + +public class MediaLoader extends LoaderM implements LoaderManager.LoaderCallbacks { + String[] MEDIA_PROJECTION = new String[] { "_data", "_display_name", "date_added", "media_type", "_size", "_id", "parent" }; + + Context mContext; + + DataCallback mLoader; + + public MediaLoader(Context paramContext, DataCallback paramDataCallback) { + this.mContext = paramContext; + this.mLoader = paramDataCallback; + } + + public Loader onCreateLoader(int paramInt, Bundle paramBundle) { + Uri uri = MediaStore.Files.getContentUri("external"); + return (Loader)new CursorLoader(this.mContext, uri, this.MEDIA_PROJECTION, "media_type=1 OR media_type=3", null, "date_added DESC"); + } + + public void onLoadFinished(Loader paramLoader, Object paramObject) { + ArrayList arrayList = new ArrayList(); + Folder folder1 = new Folder(this.mContext.getResources().getString(2097741857)); + arrayList.add(folder1); + Folder folder2 = new Folder(this.mContext.getResources().getString(2097742052)); + arrayList.add(folder2); + Cursor cursor = (Cursor)paramObject; + if (cursor != null) { + while (cursor.moveToNext()) { + String str1 = cursor.getString(cursor.getColumnIndexOrThrow("_data")); + String str2 = cursor.getString(cursor.getColumnIndexOrThrow("_display_name")); + long l1 = cursor.getLong(cursor.getColumnIndexOrThrow("date_added")); + int i = cursor.getInt(cursor.getColumnIndexOrThrow("media_type")); + long l2 = cursor.getLong(cursor.getColumnIndexOrThrow("_size")); + int j = cursor.getInt(cursor.getColumnIndexOrThrow("_id")); + if (l2 >= 1L && (new File(str1)).exists()) { + paramObject = getParent(str1); + MediaEntity mediaEntity = new MediaEntity(str1, str2, l1, i, l2, j, (String)paramObject); + folder1.addMedias(mediaEntity); + if (i == 3) + folder2.addMedias(mediaEntity); + i = hasDir(arrayList, (String)paramObject); + if (i != -1) { + ((Folder)arrayList.get(i)).addMedias(mediaEntity); + continue; + } + paramObject = new Folder((String)paramObject); + paramObject.addMedias(mediaEntity); + arrayList.add(paramObject); + } + } + cursor.close(); + } + this.mLoader.onData(arrayList); + } + + public void onLoaderReset(Loader paramLoader) {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\data\MediaLoader.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/data/VideoLoader.java b/df_miniapp/classes/com/tt/miniapp/chooser/data/VideoLoader.java new file mode 100644 index 0000000..d35493a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/data/VideoLoader.java @@ -0,0 +1,71 @@ +package com.tt.miniapp.chooser.data; + +import android.app.LoaderManager; +import android.content.Context; +import android.content.CursorLoader; +import android.content.Loader; +import android.net.Uri; +import android.os.Bundle; +import android.provider.MediaStore; +import com.tt.miniapp.entity.Folder; +import com.tt.miniapphost.entity.MediaEntity; +import java.io.File; +import java.util.ArrayList; + +public class VideoLoader extends LoaderM implements LoaderManager.LoaderCallbacks { + String[] MEDIA_PROJECTION = new String[] { "_data", "_display_name", "date_added", "media_type", "_size", "_id", "parent" }; + + Context mContext; + + DataCallback mLoader; + + public VideoLoader(Context paramContext, DataCallback paramDataCallback) { + this.mContext = paramContext; + this.mLoader = paramDataCallback; + } + + public Loader onCreateLoader(int paramInt, Bundle paramBundle) { + Uri uri = MediaStore.Files.getContentUri("external"); + return (Loader)new CursorLoader(this.mContext, uri, this.MEDIA_PROJECTION, "media_type=3", null, "date_added DESC"); + } + + public void onLoadFinished(Loader paramLoader, Object paramObject) { + ArrayList arrayList = new ArrayList(); + Folder folder = new Folder(this.mContext.getResources().getString(2097741859)); + arrayList.add(folder); + paramObject = paramObject; + if (paramObject != null) { + while (paramObject.moveToNext()) { + String str1 = paramObject.getString(paramObject.getColumnIndexOrThrow("_data")); + String str2 = paramObject.getString(paramObject.getColumnIndexOrThrow("_display_name")); + long l1 = paramObject.getLong(paramObject.getColumnIndexOrThrow("date_added")); + int i = paramObject.getInt(paramObject.getColumnIndexOrThrow("media_type")); + long l2 = paramObject.getLong(paramObject.getColumnIndexOrThrow("_size")); + int j = paramObject.getInt(paramObject.getColumnIndexOrThrow("_id")); + if (l2 >= 1L && (new File(str1)).exists()) { + String str = getParent(str1); + MediaEntity mediaEntity = new MediaEntity(str1, str2, l1, i, l2, j, str); + folder.addMedias(mediaEntity); + i = hasDir(arrayList, str); + if (i != -1) { + ((Folder)arrayList.get(i)).addMedias(mediaEntity); + continue; + } + Folder folder1 = new Folder(str); + folder1.addMedias(mediaEntity); + arrayList.add(folder1); + } + } + paramObject.close(); + } + this.mLoader.onData(arrayList); + } + + public void onLoaderReset(Loader paramLoader) {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\data\VideoLoader.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/view/HackyViewPager.java b/df_miniapp/classes/com/tt/miniapp/chooser/view/HackyViewPager.java new file mode 100644 index 0000000..041b27f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/view/HackyViewPager.java @@ -0,0 +1,30 @@ +package com.tt.miniapp.chooser.view; + +import android.content.Context; +import android.support.v4.view.ViewPager; +import android.util.AttributeSet; +import android.view.MotionEvent; + +public class HackyViewPager extends ViewPager { + public HackyViewPager(Context paramContext) { + super(paramContext); + } + + public HackyViewPager(Context paramContext, AttributeSet paramAttributeSet) { + super(paramContext, paramAttributeSet); + } + + public boolean onInterceptTouchEvent(MotionEvent paramMotionEvent) { + try { + return super.onInterceptTouchEvent(paramMotionEvent); + } catch (IllegalArgumentException illegalArgumentException) { + return false; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\view\HackyViewPager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/view/PreviewFragment.java b/df_miniapp/classes/com/tt/miniapp/chooser/view/PreviewFragment.java new file mode 100644 index 0000000..07f85a4 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/view/PreviewFragment.java @@ -0,0 +1,87 @@ +package com.tt.miniapp.chooser.view; + +import android.content.Context; +import android.os.Bundle; +import android.os.Parcelable; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import com.tt.b.c; +import com.tt.miniapp.chooser.adapter.VideoThumbLoader; +import com.tt.miniapp.util.DevicesUtil; +import com.tt.miniapp.util.ImageUtil; +import com.tt.miniapp.util.UriUtil; +import com.tt.miniapphost.entity.MediaEntity; +import com.tt.miniapphost.host.HostDependManager; +import java.io.File; + +public class PreviewFragment extends Fragment { + private ImageView mPhotoView; + + ImageView play_view; + + public static PreviewFragment newInstance(MediaEntity paramMediaEntity, String paramString) { + PreviewFragment previewFragment = new PreviewFragment(); + Bundle bundle = new Bundle(); + bundle.putParcelable("media", (Parcelable)paramMediaEntity); + previewFragment.setArguments(bundle); + return previewFragment; + } + + public void onCreate(Bundle paramBundle) { + setRetainInstance(true); + super.onCreate(paramBundle); + } + + public View onCreateView(LayoutInflater paramLayoutInflater, ViewGroup paramViewGroup, Bundle paramBundle) { + return paramLayoutInflater.inflate(2097676343, paramViewGroup, false); + } + + public void onDestroyView() { + super.onDestroyView(); + } + + public void onViewCreated(View paramView, Bundle paramBundle) { + super.onViewCreated(paramView, paramBundle); + MediaEntity mediaEntity = (MediaEntity)getArguments().getParcelable("media"); + this.play_view = (ImageView)paramView.findViewById(2097545368); + this.mPhotoView = (ImageView)paramView.findViewById(2097545367); + setPlayView(mediaEntity); + } + + void setPlayView(final MediaEntity media) { + if (media.mediaType == 3) { + String str = ImageUtil.getVideoThumbPath(getContext(), media.id); + if (str != null && (new File(str)).exists() && getActivity() != null) { + c c = (new c(new File(str))).a().a(DevicesUtil.getScreenWidth((Context)getActivity()), DevicesUtil.getScreenHight((Context)getActivity())).a((View)this.mPhotoView); + HostDependManager.getInst().loadImage((Context)getActivity(), c); + } else { + (new VideoThumbLoader()).showThumb(media.path, this.mPhotoView); + } + this.play_view.setVisibility(0); + this.play_view.setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + try { + PreviewFragment.this.startActivity(UriUtil.generateCommonIntent((Context)PreviewFragment.this.getActivity(), media.path, "video/*")); + return; + } catch (Exception exception) { + return; + } + } + }); + return; + } + if (getActivity() != null) { + c c = (new c(new File(media.path))).a().a(DevicesUtil.getScreenWidth((Context)getActivity()), DevicesUtil.getScreenHight((Context)getActivity())).a((View)this.mPhotoView); + HostDependManager.getInst().loadImage((Context)getActivity(), c); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\view\PreviewFragment.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/chooser/view/SquareFrameLayout.java b/df_miniapp/classes/com/tt/miniapp/chooser/view/SquareFrameLayout.java new file mode 100644 index 0000000..26bcdb8 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/chooser/view/SquareFrameLayout.java @@ -0,0 +1,34 @@ +package com.tt.miniapp.chooser.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.FrameLayout; + +public class SquareFrameLayout extends FrameLayout { + public SquareFrameLayout(Context paramContext) { + super(paramContext); + } + + public SquareFrameLayout(Context paramContext, AttributeSet paramAttributeSet) { + super(paramContext, paramAttributeSet); + } + + public SquareFrameLayout(Context paramContext, AttributeSet paramAttributeSet, int paramInt) { + super(paramContext, paramAttributeSet, paramInt); + } + + public SquareFrameLayout(Context paramContext, AttributeSet paramAttributeSet, int paramInt1, int paramInt2) { + super(paramContext, paramAttributeSet, paramInt1, paramInt2); + } + + protected void onMeasure(int paramInt1, int paramInt2) { + super.onMeasure(paramInt1, paramInt2); + setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\chooser\view\SquareFrameLayout.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/AdContainerView.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/AdContainerView.java new file mode 100644 index 0000000..27cd29f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/AdContainerView.java @@ -0,0 +1,337 @@ +package com.tt.miniapp.component.nativeview; + +import android.content.Context; +import android.os.Handler; +import android.os.Looper; +import android.text.TextUtils; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewParent; +import android.widget.FrameLayout; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.view.ScreenVisibilityDetector; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.util.JsonBuilder; +import com.tt.miniapphost.util.NativeDimenUtil; +import com.tt.option.ad.b; +import com.tt.option.ad.e; +import com.tt.option.ad.f; +import com.tt.option.e.k; +import org.json.JSONException; +import org.json.JSONObject; + +public class AdContainerView extends FrameLayout implements NativeComponent, ScreenVisibilityDetector.OnScreenVisibilityChangedListener, e.a { + private boolean isRequestAdSuccess = false; + + private e mAdViewManager; + + private f mAdViewModel; + + public Handler mHandler; + + private volatile long mLastRequestTime = 0L; + + private AbsoluteLayout mParentView; + + private WebViewManager.IRender mRender; + + private int mViewId; + + public AdContainerView(int paramInt, AbsoluteLayout paramAbsoluteLayout, WebViewManager.IRender paramIRender) { + super((Context)AppbrandContext.getInst().getCurrentActivity()); + this.mViewId = paramInt; + this.mParentView = paramAbsoluteLayout; + this.mRender = paramIRender; + this.mAdViewManager = HostDependManager.getInst().createAdViewManager(this); + } + + private boolean canRefreshAd() { + e e1 = this.mAdViewManager; + return (e1 != null && e1.a()); + } + + private void handleTimer() { + if (!canRefreshAd()) + return; + if (this.isRequestAdSuccess) { + f f1 = this.mAdViewModel; + if (f1 != null && !f1.g) { + startTimerIfNecessary(this.mAdViewModel.l); + return; + } + } + stopTimerIfNecessary(); + } + + private void setAdContainerVisible(boolean paramBoolean) { + byte b; + if (paramBoolean) { + b = 0; + } else { + b = 4; + } + setVisibility(b); + } + + private void setAdViewVisible(boolean paramBoolean) {} + + private void startTimerIfNecessary(int paramInt) { + if (!canRefreshAd()) + return; + stopTimerIfNecessary(); + if (paramInt <= 0) + return; + int i = paramInt; + if (paramInt < 30) + i = 30; + final long delayMillis = i * 1000L; + this.mHandler = new Handler(Looper.getMainLooper()); + this.mHandler.postDelayed(new Runnable() { + public void run() { + AdContainerView.this.requestAd((k)null); + if (AdContainerView.this.mHandler != null) + AdContainerView.this.mHandler.postDelayed(this, delayMillis); + } + }l); + } + + private void stopTimerIfNecessary() { + if (!canRefreshAd()) + return; + Handler handler = this.mHandler; + if (handler != null) { + handler.removeCallbacksAndMessages(null); + this.mHandler = null; + } + } + + private void updateAdViewVisible(boolean paramBoolean) {} + + public void addView(String paramString, k paramk) { + int i = 1; + AppBrandLogger.d("AdView", new Object[] { "addView ", paramString }); + if (TextUtils.isEmpty(paramString)) { + b.a("", "", 1001, "参数错误,view为空"); + notifyErrorState(1001, "参数错误,view为空", paramk); + return; + } + f f1 = new f(paramString); + if (!f1.a()) { + b.a(f1.b(), f1.a, 1001, "参数错误,adUnitId为空"); + notifyErrorState(1001, "参数错误,adUnitId为空", paramk); + return; + } + this.mAdViewModel = f1; + e e1 = this.mAdViewManager; + if (e1 != null) { + View view = e1.a(getContext()); + if (view == null) { + i = 0; + } else { + ViewParent viewParent = view.getParent(); + if (viewParent instanceof ViewGroup) + ((ViewGroup)viewParent).removeView(view); + addView(view, -1, -1); + } + if (i) { + this.mParentView.addView((View)this); + AbsoluteLayout.LayoutParams layoutParams = (AbsoluteLayout.LayoutParams)getLayoutParams(); + if (this.mAdViewModel.b) { + layoutParams.width = this.mAdViewModel.e; + layoutParams.height = this.mAdViewModel.f; + int n = this.mAdViewModel.c; + int m = this.mAdViewModel.d; + int j = n; + i = m; + if (!this.mAdViewModel.m) { + j = n; + i = m; + if (!this.mAdViewModel.j) { + j = n - this.mParentView.getCurScrollX(); + i = m - this.mParentView.getCurScrollY(); + } + } + layoutParams.x = j; + layoutParams.y = i; + } + if (f1.i) + layoutParams.zIndex = f1.h; + if (f1.k) + layoutParams.isFixed = f1.j; + setAdContainerVisible(false); + setAdViewVisible(false); + requestLayout(); + requestAd(paramk); + return; + } + } + b.a(f1.b(), f1.a, 1003, "feature is not supported in app"); + notifyErrorState(1003, "feature is not supported in app", paramk); + } + + public boolean dispatchTouchEvent(MotionEvent paramMotionEvent) { + return (paramMotionEvent.getAction() == 2) ? false : super.dispatchTouchEvent(paramMotionEvent); + } + + public f getAdViewModel() { + return this.mAdViewModel; + } + + public void notifyErrorState(int paramInt, String paramString, k paramk) { + AppBrandLogger.e("AdView", new Object[] { "errMsg", paramString, "errCode", Integer.valueOf(paramInt) }); + if (paramk != null) + paramk.invokeHandler((new JsonBuilder(paramk.buildErrorMsg("fail"))).put("data", (new JsonBuilder()).put("errCode", Integer.valueOf(paramInt)).put("errMsg", paramString).build()).build().toString()); + } + + protected void notifyStateChanged(JSONObject paramJSONObject, k paramk) { + if (paramk != null) + paramk.invokeHandler(paramJSONObject.toString()); + } + + public boolean onBackPressed() { + return false; + } + + public void onCloseAdContainer() { + setAdContainerVisible(false); + if (this.mAdViewModel != null && this.mRender != null) { + JSONObject jSONObject = (new JsonBuilder()).put("adUnitId", this.mAdViewModel.a).put("state", "close").put("data", (new JsonBuilder()).put("viewId", Integer.valueOf(this.mViewId)).build()).build(); + AppbrandApplicationImpl.getInst().getWebViewManager().publishDirectly(this.mRender.getWebViewId(), "onBannerAdStateChange", jSONObject.toString()); + this.mRender.getNativeViewManager().removeView(this.mViewId, null); + } + } + + public void onDestroy() {} + + public void onScreenVisibilityChanged(View paramView, boolean paramBoolean) {} + + public void onUpdateAdContainer(int paramInt1, int paramInt2, k paramk) { + f f1 = this.mAdViewModel; + f1.e = paramInt1; + f1.f = paramInt2; + AbsoluteLayout.LayoutParams layoutParams = (AbsoluteLayout.LayoutParams)getLayoutParams(); + layoutParams.width = this.mAdViewModel.e; + layoutParams.height = this.mAdViewModel.f; + setAdContainerVisible(this.mAdViewModel.g ^ true); + requestLayout(); + if (paramk == null) + return; + notifyStateChanged((new JsonBuilder(paramk.buildErrorMsg("ok"))).put("data", (new JsonBuilder()).put("viewId", Integer.valueOf(this.mViewId)).put("width", Integer.valueOf(NativeDimenUtil.convertPxToRx(this.mAdViewModel.e))).put("height", Integer.valueOf(NativeDimenUtil.convertPxToRx(this.mAdViewModel.f))).build()).build(), paramk); + this.isRequestAdSuccess = true; + handleTimer(); + } + + public void onViewPause() { + stopTimerIfNecessary(); + } + + public void onViewResume() { + if (this.mAdViewModel == null) + return; + StringBuilder stringBuilder = new StringBuilder("onRecoverForeground="); + stringBuilder.append(hashCode()); + AppBrandLogger.d("AdView", new Object[] { stringBuilder.toString() }); + if (canRefreshAd() && Math.abs(System.currentTimeMillis() - this.mLastRequestTime) > 30000L) + requestAd((k)null); + handleTimer(); + } + + public void removeView(int paramInt, k paramk) { + stopTimerIfNecessary(); + } + + public void requestAd(k paramk) { + this.mLastRequestTime = System.currentTimeMillis(); + } + + public void updateView(String paramString, k paramk) { + AppBrandLogger.d("AdView", new Object[] { "updateView ", paramString }); + if (TextUtils.isEmpty(paramString)) { + notifyErrorState(1001, "参数错误,view为空", paramk); + return; + } + f f1 = this.mAdViewModel; + if (f1 == null) { + notifyErrorState(1003, "内部错误,mAdModel为null", paramk); + return; + } + boolean bool = f1.g; + f1 = this.mAdViewModel; + try { + JSONObject jSONObject = new JSONObject(paramString); + if (TextUtils.equals(jSONObject.optString("unitId"), f1.a)) { + JSONObject jSONObject1 = jSONObject.optJSONObject("position"); + if (jSONObject1 != null) { + if (jSONObject1.has("left")) + f1.c = NativeDimenUtil.convertRxToPx(jSONObject1.optInt("left")); + if (jSONObject1.has("top")) + f1.d = NativeDimenUtil.convertRxToPx(jSONObject1.optInt("top")); + } else { + f1.b = false; + } + f1.g = jSONObject.optBoolean("hide", f1.g); + if (jSONObject.has("zIndex")) { + f1.i = true; + f1.h = jSONObject.optInt("zIndex"); + } else { + f1.i = false; + } + if (jSONObject.has("fixed")) { + f1.k = true; + f1.j = jSONObject.optBoolean("fixed"); + } else { + f1.k = false; + } + if (jSONObject.has("isInScrollView")) + f1.m = jSONObject.optBoolean("isInScrollView"); + } + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(6, "AdViewModel", jSONException.getStackTrace()); + } + if (!this.mAdViewModel.a()) { + notifyErrorState(1001, "参数错误,adUnitId为空", paramk); + return; + } + AbsoluteLayout.LayoutParams layoutParams = (AbsoluteLayout.LayoutParams)getLayoutParams(); + if (this.mAdViewModel.b) { + int n = this.mAdViewModel.c; + int m = this.mAdViewModel.d; + int j = n; + int i = m; + if (!this.mAdViewModel.m) { + j = n - this.mParentView.getCurScrollX(); + i = m - this.mParentView.getCurScrollY(); + this.mParentView.updateCurScrollXY(this.mViewId); + } + layoutParams.x = j; + layoutParams.y = i; + } + if (this.mAdViewModel.i) + layoutParams.zIndex = this.mAdViewModel.h; + if (this.mAdViewModel.k) + layoutParams.isFixed = this.mAdViewModel.j; + setAdContainerVisible(this.mAdViewModel.g ^ true); + updateAdViewVisible(this.mAdViewModel.g ^ true); + requestLayout(); + notifyStateChanged((new JsonBuilder(paramk.buildErrorMsg("ok"))).put("data", (new JsonBuilder()).put("width", Integer.valueOf(NativeDimenUtil.convertPxToRx(this.mAdViewModel.e))).put("height", Integer.valueOf(NativeDimenUtil.convertPxToRx(this.mAdViewModel.f))).build()).build(), paramk); + if (!this.mAdViewModel.g) { + if (bool) { + handleTimer(); + return; + } + } else { + stopTimerIfNecessary(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\AdContainerView.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/IProgressBar.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/IProgressBar.java new file mode 100644 index 0000000..b25d41a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/IProgressBar.java @@ -0,0 +1,17 @@ +package com.tt.miniapp.component.nativeview; + +public interface IProgressBar { + void hide(); + + boolean isShown(); + + void setInternalProgress(int paramInt); + + void show(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\IProgressBar.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/Input.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/Input.java new file mode 100644 index 0000000..53ab850 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/Input.java @@ -0,0 +1,1002 @@ +package com.tt.miniapp.component.nativeview; + +import android.content.Context; +import android.graphics.Rect; +import android.os.Build; +import android.text.Editable; +import android.text.TextPaint; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.view.KeyEvent; +import android.view.MotionEvent; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.IKeyBoardStateChange; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.keyboarddetect.KeyboardHeightProvider; +import com.tt.miniapp.util.InputMethodUtil; +import com.tt.miniapp.view.TextChangedAdapter; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapp.view.webcore.NativeNestWebView; +import com.tt.miniapp.view.webcore.scroller.WebViewScroller; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.util.JsonBuilder; +import com.tt.miniapphost.util.NativeDimenUtil; +import com.tt.option.e.k; +import org.json.JSONException; +import org.json.JSONObject; + +public class Input extends EditText implements View.OnFocusChangeListener, InputComponent, NativeComponent { + private static Input sLastCreatedInput; + + private boolean isAdjustPosition = true; + + private boolean isFixed = false; + + private boolean mAutoBlur = true; + + private String mDataObject; + + public boolean mHasFocus = false; + + private boolean mHasSentKeyboardShow = false; + + public boolean mHintUseBoldText = false; + + public boolean mInputUseBoldText = false; + + private IKeyBoardStateChange mKeyBoardStateChange; + + public NativeNestWebView mNativeNestWebView; + + private AbsoluteLayout mParent; + + private WebViewManager.IRender mRender; + + private String mType; + + private int mViewId; + + private int mWebViewId; + + public int marginBottom; + + public boolean syncNextTextChangeToJs = true; + + private Input(int paramInt1, AbsoluteLayout paramAbsoluteLayout, WebViewManager.IRender paramIRender, int paramInt2, String paramString, NativeNestWebView paramNativeNestWebView) { + super(paramAbsoluteLayout.getContext()); + this.mViewId = paramInt1; + this.mParent = paramAbsoluteLayout; + this.mRender = paramIRender; + this.mWebViewId = paramInt2; + this.mType = paramString; + this.mNativeNestWebView = paramNativeNestWebView; + init(); + } + + private void adjustOffsetIfNeed() { + if (!this.mHasFocus) + return; + post(new Runnable() { + public void run() { + WebViewScroller webViewScroller = Input.this.mNativeNestWebView.getScroller(); + if (webViewScroller != null) { + Rect rect = new Rect(); + Input.this.mNativeNestWebView.getGlobalVisibleRect(rect); + int i = webViewScroller.computeOffsetWhenKeyboardShow((View)Input.this, rect, 1); + if (i != 0) + Input.this.mNativeNestWebView.smoothOffsetTopAndBottom(i, (View)Input.this); + } + } + }); + } + + public static Input getInputView(int paramInt1, AbsoluteLayout paramAbsoluteLayout, WebViewManager.IRender paramIRender, int paramInt2, String paramString, NativeNestWebView paramNativeNestWebView) { + Input input2 = sLastCreatedInput; + if (input2 != null) { + WebViewManager.IRender iRender = input2.mRender; + if (iRender != null && iRender.getNativeViewManager().hasView(sLastCreatedInput.mViewId)) + sLastCreatedInput.mRender.getNativeViewManager().removeView(sLastCreatedInput.mViewId, null); + } + Input input1 = new Input(paramInt1, paramAbsoluteLayout, paramIRender, paramInt2, paramString, paramNativeNestWebView); + sLastCreatedInput = input1; + return input1; + } + + private int getPxDimension(double paramDouble) { + return (int)Math.round(NativeDimenUtil.convertRxToPx(paramDouble)); + } + + private void init() { + setSingleLine(true); + setImeOptions(6); + setBackgroundColor(0); + setPadding(0, 0, 0, 0); + setOnEditorActionListener(new TextView.OnEditorActionListener() { + public boolean onEditorAction(TextView param1TextView, int param1Int, KeyEvent param1KeyEvent) { + if (param1Int != 2 && param1Int != 3 && param1Int != 4 && param1Int != 5 && param1Int != 6) + return false; + Input.this.publishKeyboardConfirmEvent(); + InputMethodUtil.hideSoftKeyboard(Input.this, param1TextView.getContext().getApplicationContext()); + return true; + } + }); + setOnFocusChangeListener(this); + addTextChangedListener((TextWatcher)new TextChangedAdapter() { + public void afterTextChanged(Editable param1Editable) { + boolean bool; + if (Input.this.syncNextTextChangeToJs) { + Input.this.syncChangeToJs(); + } else { + Input.this.syncNextTextChangeToJs = true; + } + TextPaint textPaint = Input.this.getPaint(); + if (TextUtils.isEmpty((CharSequence)param1Editable)) { + bool = Input.this.mHintUseBoldText; + } else { + bool = Input.this.mInputUseBoldText; + } + textPaint.setFakeBoldText(bool); + } + }); + this.mKeyBoardStateChange = new IKeyBoardStateChange() { + public void onKeyboardHide() {} + + public void onKeyboardShow(int param1Int1, int param1Int2) { + if (Input.this.mHasFocus) + Input.this.publishOnKeyboardShowEvent(); + } + }; + this.mNativeNestWebView.registerKeyBoardStateChange(this.mKeyBoardStateChange); + } + + private void publishKeyboardCompleteEvent() { + JSONObject jSONObject = (new JsonBuilder()).put("value", getValue()).put("inputId", Integer.valueOf(this.mViewId)).put("cursor", Integer.valueOf(getCursor())).build(); + AppbrandApplicationImpl.getInst().getWebViewManager().publish(this.mWebViewId, "onKeyboardComplete", jSONObject.toString()); + } + + public void addView(String paramString, k paramk) { + updateView(paramString, false); + this.mParent.addView((View)this, getLayoutParams()); + requestFocus(); + postDelayed(new Runnable() { + public void run() { + InputMethodUtil.showSoftKeyboard((View)Input.this, (Context)AppbrandContext.getInst().getApplicationContext()); + } + }0L); + } + + public boolean getConfirm() { + return false; + } + + public int getCursor() { + return getSelectionStart(); + } + + public int getInputHeight() { + return (this.marginBottom > 0) ? (getMeasuredHeight() + this.marginBottom) : getMeasuredHeight(); + } + + public String getType() { + return "input"; + } + + public String getValue() { + return getText().toString(); + } + + public boolean hasFocus() { + return super.hasFocus(); + } + + public boolean isAdjustPosition() { + return this.isAdjustPosition; + } + + public boolean isAutoBlur() { + return this.mAutoBlur; + } + + public boolean isFixed() { + return this.isFixed; + } + + public boolean onBackPressed() { + return false; + } + + public void onDestroy() {} + + public void onFocusChange(View paramView, boolean paramBoolean) { + this.mHasFocus = paramBoolean; + if (!paramBoolean) { + if (KeyboardHeightProvider.getKeyboardHeight() != 0) + InputMethodUtil.hideSoftKeyboard(this, (Context)AppbrandContext.getInst().getApplicationContext()); + WebViewManager.IRender iRender = this.mRender; + if (iRender != null && iRender.getNativeViewManager().hasView(this.mViewId)) + this.mRender.getNativeViewManager().removeView(this.mViewId, null); + } + } + + public boolean onTouchEvent(MotionEvent paramMotionEvent) { + boolean bool = super.onTouchEvent(paramMotionEvent); + if (paramMotionEvent.getAction() == 3) + clearFocus(); + return bool; + } + + public void onViewPause() {} + + public void onViewResume() {} + + public void publishKeyboardConfirmEvent() { + JSONObject jSONObject = (new JsonBuilder()).put("value", getValue()).put("inputId", Integer.valueOf(this.mViewId)).put("cursor", Integer.valueOf(getCursor())).build(); + AppbrandApplicationImpl.getInst().getWebViewManager().publish(this.mWebViewId, "onKeyboardConfirm", jSONObject.toString()); + } + + public void publishOnKeyboardShowEvent() { + JSONObject jSONObject = (new JsonBuilder()).put("inputId", Integer.valueOf(this.mViewId)).put("height", Integer.valueOf(NativeDimenUtil.convertPxToRx(KeyboardHeightProvider.getKeyboardHeight()))).build(); + AppbrandApplicationImpl.getInst().getWebViewManager().publish(this.mWebViewId, "onKeyboardShow", jSONObject.toString()); + this.mHasSentKeyboardShow = true; + } + + public void removeView(int paramInt, k paramk) { + IKeyBoardStateChange iKeyBoardStateChange = this.mKeyBoardStateChange; + if (iKeyBoardStateChange != null) + this.mNativeNestWebView.unregisterKeyBoardStateChange(iKeyBoardStateChange); + if (!this.mHasSentKeyboardShow) + publishOnKeyboardShowEvent(); + publishKeyboardCompleteEvent(); + if (sLastCreatedInput == this) + sLastCreatedInput = null; + } + + public boolean requestRectangleOnScreen(Rect paramRect, boolean paramBoolean) { + if (Build.VERSION.SDK_INT >= 17 && Build.VERSION.SDK_INT <= 23) + paramRect.offset(-getScrollX(), -getScrollY()); + return super.requestRectangleOnScreen(paramRect, paramBoolean); + } + + public void setSelection(int paramInt) { + if (paramInt <= getText().length()) + super.setSelection(paramInt); + } + + public void setSelection(int paramInt1, int paramInt2) { + int i = getText().length(); + if (paramInt2 <= i && paramInt1 < i) { + super.setSelection(paramInt1, paramInt2); + return; + } + if (i < paramInt2 && i > paramInt1) + super.setSelection(paramInt1, i); + } + + public void setText(String paramString, boolean paramBoolean) { + this.syncNextTextChangeToJs = paramBoolean; + setText(paramString); + } + + public void setValue(String paramString) { + setText(paramString, false); + } + + public void syncChangeToJs() { + try { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("value", getValue()); + jSONObject.put("inputId", this.mViewId); + jSONObject.put("cursor", getCursor()); + jSONObject.put("data", this.mDataObject); + AppbrandApplication.getInst().getJsBridge().sendMsgToJsCore("onKeyboardValueChange", jSONObject.toString(), this.mWebViewId); + return; + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(6, "tma_Input", jSONException.getStackTrace()); + return; + } + } + + public void updateSelectionOrCursor(String paramString) { + try { + JSONObject jSONObject = new JSONObject(paramString); + int j = jSONObject.optInt("cursor", -1); + int n = jSONObject.optInt("selectionStart", -1); + int m = jSONObject.optInt("selectionEnd", -1); + int k = m; + if (n != -1) + if (m == -1) { + setSelection(n, getText().length()); + k = m; + } else { + int i1 = m; + if (m > getText().length()) + i1 = getText().length(); + setSelection(n, i1); + k = i1; + } + int i = j; + if (j != -1) { + i = j; + if (j > getText().length()) + i = getText().length(); + setSelection(i); + } + if (i == -1 && n == -1 && k == -1) + setSelection(getText().length()); + return; + } catch (JSONException jSONException) { + AppBrandLogger.e("tma_Input", new Object[] { "update selection or cursor", jSONException }); + return; + } + } + + public void updateView(String paramString, k paramk) { + updateView(paramString, false); + } + + public void updateView(String paramString, boolean paramBoolean) { + // Byte code: + // 0: new org/json/JSONObject + // 3: dup + // 4: aload_1 + // 5: invokespecial : (Ljava/lang/String;)V + // 8: astore #12 + // 10: aload #12 + // 12: ldc_w 'fixed' + // 15: invokevirtual has : (Ljava/lang/String;)Z + // 18: ifeq -> 37 + // 21: aload_0 + // 22: aload #12 + // 24: ldc_w 'fixed' + // 27: aload_0 + // 28: getfield isFixed : Z + // 31: invokevirtual optBoolean : (Ljava/lang/String;Z)Z + // 34: putfield isFixed : Z + // 37: aload #12 + // 39: ldc_w 'style' + // 42: invokevirtual optJSONObject : (Ljava/lang/String;)Lorg/json/JSONObject; + // 45: astore #13 + // 47: bipush #8 + // 49: istore #5 + // 51: aload #13 + // 53: ifnull -> 1294 + // 56: aload_0 + // 57: aload_0 + // 58: aload #13 + // 60: ldc_w 'marginBottom' + // 63: invokevirtual optInt : (Ljava/lang/String;)I + // 66: i2d + // 67: invokespecial getPxDimension : (D)I + // 70: putfield marginBottom : I + // 73: aload_0 + // 74: aload #13 + // 76: ldc_w 'width' + // 79: invokevirtual optDouble : (Ljava/lang/String;)D + // 82: invokespecial getPxDimension : (D)I + // 85: istore #8 + // 87: aload_0 + // 88: aload #13 + // 90: ldc_w 'height' + // 93: invokevirtual optDouble : (Ljava/lang/String;)D + // 96: invokespecial getPxDimension : (D)I + // 99: istore #9 + // 101: aload_0 + // 102: aload #13 + // 104: ldc_w 'left' + // 107: invokevirtual optDouble : (Ljava/lang/String;)D + // 110: invokespecial getPxDimension : (D)I + // 113: istore #7 + // 115: aload_0 + // 116: aload #13 + // 118: ldc_w 'top' + // 121: invokevirtual optDouble : (Ljava/lang/String;)D + // 124: invokespecial getPxDimension : (D)I + // 127: istore #6 + // 129: iload #7 + // 131: istore #4 + // 133: iload #6 + // 135: istore_3 + // 136: aload_0 + // 137: getfield isFixed : Z + // 140: ifne -> 166 + // 143: iload #7 + // 145: aload_0 + // 146: getfield mParent : Lcom/tt/miniapp/view/webcore/AbsoluteLayout; + // 149: invokevirtual getCurScrollX : ()I + // 152: isub + // 153: istore #4 + // 155: iload #6 + // 157: aload_0 + // 158: getfield mParent : Lcom/tt/miniapp/view/webcore/AbsoluteLayout; + // 161: invokevirtual getCurScrollY : ()I + // 164: isub + // 165: istore_3 + // 166: ldc_w 'tma_Input' + // 169: bipush #8 + // 171: anewarray java/lang/Object + // 174: dup + // 175: iconst_0 + // 176: ldc_w 'width ' + // 179: aastore + // 180: dup + // 181: iconst_1 + // 182: iload #8 + // 184: invokestatic valueOf : (I)Ljava/lang/Integer; + // 187: aastore + // 188: dup + // 189: iconst_2 + // 190: ldc_w ' height ' + // 193: aastore + // 194: dup + // 195: iconst_3 + // 196: iload #9 + // 198: invokestatic valueOf : (I)Ljava/lang/Integer; + // 201: aastore + // 202: dup + // 203: iconst_4 + // 204: ldc_w ' x ' + // 207: aastore + // 208: dup + // 209: iconst_5 + // 210: iload #4 + // 212: invokestatic valueOf : (I)Ljava/lang/Integer; + // 215: aastore + // 216: dup + // 217: bipush #6 + // 219: ldc_w ' y ' + // 222: aastore + // 223: dup + // 224: bipush #7 + // 226: iload_3 + // 227: invokestatic valueOf : (I)Ljava/lang/Integer; + // 230: aastore + // 231: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 234: aload_0 + // 235: invokevirtual getLayoutParams : ()Landroid/view/ViewGroup$LayoutParams; + // 238: checkcast com/tt/miniapp/view/webcore/AbsoluteLayout$LayoutParams + // 241: astore #11 + // 243: aload #11 + // 245: ifnonnull -> 273 + // 248: new com/tt/miniapp/view/webcore/AbsoluteLayout$LayoutParams + // 251: dup + // 252: iload #8 + // 254: iconst_1 + // 255: iadd + // 256: iload #9 + // 258: iconst_1 + // 259: iadd + // 260: iload #4 + // 262: iconst_1 + // 263: isub + // 264: iload_3 + // 265: invokespecial : (IIII)V + // 268: astore #11 + // 270: goto -> 306 + // 273: aload #11 + // 275: iload #8 + // 277: iconst_1 + // 278: iadd + // 279: putfield width : I + // 282: aload #11 + // 284: iload #9 + // 286: iconst_1 + // 287: iadd + // 288: putfield height : I + // 291: aload #11 + // 293: iload #4 + // 295: iconst_1 + // 296: isub + // 297: putfield x : I + // 300: aload #11 + // 302: iload_3 + // 303: putfield y : I + // 306: aload_0 + // 307: aload #11 + // 309: invokevirtual setLayoutParams : (Landroid/view/ViewGroup$LayoutParams;)V + // 312: aload #13 + // 314: ldc_w 'backgroundColor' + // 317: invokevirtual has : (Ljava/lang/String;)Z + // 320: ifeq -> 376 + // 323: aload #13 + // 325: ldc_w 'backgroundColor' + // 328: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 331: ldc_w '#00000000' + // 334: invokestatic rgbaToFullARGBStr : (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + // 337: astore #11 + // 339: aload #11 + // 341: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 344: istore #10 + // 346: iload #10 + // 348: ifne -> 376 + // 351: aload_0 + // 352: aload #11 + // 354: invokestatic parseColor : (Ljava/lang/String;)I + // 357: invokevirtual setBackgroundColor : (I)V + // 360: goto -> 376 + // 363: astore #11 + // 365: ldc_w 'tma_Input' + // 368: ldc_w 'input backgroundColor error' + // 371: aload #11 + // 373: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 376: aload #13 + // 378: ldc_w 'color' + // 381: invokevirtual has : (Ljava/lang/String;)Z + // 384: ifeq -> 440 + // 387: aload #13 + // 389: ldc_w 'color' + // 392: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 395: ldc_w '#000000' + // 398: invokestatic rgbaToFullARGBStr : (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + // 401: astore #11 + // 403: aload #11 + // 405: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 408: istore #10 + // 410: iload #10 + // 412: ifne -> 440 + // 415: aload_0 + // 416: aload #11 + // 418: invokestatic parseColor : (Ljava/lang/String;)I + // 421: invokevirtual setTextColor : (I)V + // 424: goto -> 440 + // 427: astore #11 + // 429: ldc_w 'tma_Input' + // 432: ldc_w 'input textColor color' + // 435: aload #11 + // 437: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 440: aload #13 + // 442: ldc_w 'fontSize' + // 445: invokevirtual optInt : (Ljava/lang/String;)I + // 448: istore_3 + // 449: iload_3 + // 450: ifle -> 459 + // 453: aload_0 + // 454: iload_3 + // 455: i2f + // 456: invokevirtual setTextSize : (F)V + // 459: aload #13 + // 461: ldc_w 'fontWeight' + // 464: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 467: astore #11 + // 469: aload #11 + // 471: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 474: ifne -> 489 + // 477: aload_0 + // 478: aload #11 + // 480: ldc_w 'bold' + // 483: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 486: putfield mInputUseBoldText : Z + // 489: aload #13 + // 491: ldc_w 'fontFamily' + // 494: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 497: pop + // 498: aload #13 + // 500: ldc_w 'textAlign' + // 503: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 506: astore #11 + // 508: aload #11 + // 510: ldc_w 'center' + // 513: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 516: ifeq -> 528 + // 519: aload_0 + // 520: bipush #17 + // 522: invokevirtual setGravity : (I)V + // 525: goto -> 596 + // 528: aload #11 + // 530: ldc_w 'left' + // 533: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 536: ifne -> 587 + // 539: aload #11 + // 541: ldc_w 'right' + // 544: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 547: ifeq -> 559 + // 550: aload_0 + // 551: bipush #21 + // 553: invokevirtual setGravity : (I)V + // 556: goto -> 596 + // 559: invokestatic getInst : ()Lcom/tt/miniapphost/language/LocaleManager; + // 562: invokevirtual isRTL : ()Z + // 565: ifeq -> 587 + // 568: aload_0 + // 569: iconst_4 + // 570: invokevirtual setTextDirection : (I)V + // 573: aload_0 + // 574: iconst_1 + // 575: invokevirtual setLayoutDirection : (I)V + // 578: aload_0 + // 579: bipush #21 + // 581: invokevirtual setGravity : (I)V + // 584: goto -> 596 + // 587: aload_0 + // 588: bipush #19 + // 590: invokevirtual setGravity : (I)V + // 593: goto -> 596 + // 596: aload #12 + // 598: ldc_w 'placeholderStyle' + // 601: invokevirtual optJSONObject : (Ljava/lang/String;)Lorg/json/JSONObject; + // 604: astore #11 + // 606: aload #11 + // 608: ifnull -> 724 + // 611: aload #11 + // 613: ldc_w 'color' + // 616: invokevirtual has : (Ljava/lang/String;)Z + // 619: ifeq -> 675 + // 622: aload #11 + // 624: ldc_w 'color' + // 627: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 630: ldc_w '#888888' + // 633: invokestatic rgbaToFullARGBStr : (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + // 636: astore #13 + // 638: aload #13 + // 640: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 643: istore #10 + // 645: iload #10 + // 647: ifne -> 675 + // 650: aload_0 + // 651: aload #13 + // 653: invokestatic parseColor : (Ljava/lang/String;)I + // 656: invokevirtual setHintTextColor : (I)V + // 659: goto -> 675 + // 662: astore #13 + // 664: ldc_w 'tma_Input' + // 667: ldc_w 'input placeHolderColor error' + // 670: aload #13 + // 672: invokestatic eWithThrowable : (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V + // 675: aload #11 + // 677: ldc_w 'fontSize' + // 680: invokevirtual optInt : (Ljava/lang/String;)I + // 683: istore_3 + // 684: iload_3 + // 685: ifle -> 694 + // 688: aload_0 + // 689: iload_3 + // 690: i2f + // 691: invokevirtual setTextSize : (F)V + // 694: aload #11 + // 696: ldc_w 'fontWeight' + // 699: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 702: astore #11 + // 704: aload #11 + // 706: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 709: ifne -> 724 + // 712: aload_0 + // 713: aload #11 + // 715: ldc_w 'bold' + // 718: invokestatic equals : (Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z + // 721: putfield mHintUseBoldText : Z + // 724: aload_0 + // 725: invokevirtual getLayoutParams : ()Landroid/view/ViewGroup$LayoutParams; + // 728: checkcast com/tt/miniapp/view/webcore/AbsoluteLayout$LayoutParams + // 731: astore #11 + // 733: aload #12 + // 735: ldc_w 'zIndex' + // 738: invokevirtual has : (Ljava/lang/String;)Z + // 741: ifeq -> 762 + // 744: aload #11 + // 746: aload #12 + // 748: ldc_w 'zIndex' + // 751: aload #11 + // 753: getfield zIndex : I + // 756: invokevirtual optInt : (Ljava/lang/String;I)I + // 759: putfield zIndex : I + // 762: aload #11 + // 764: aload_0 + // 765: getfield isFixed : Z + // 768: putfield isFixed : Z + // 771: aload_0 + // 772: aload #11 + // 774: invokevirtual setLayoutParams : (Landroid/view/ViewGroup$LayoutParams;)V + // 777: aload_0 + // 778: getfield mParent : Lcom/tt/miniapp/view/webcore/AbsoluteLayout; + // 781: aload_0 + // 782: getfield mViewId : I + // 785: invokevirtual updateCurScrollXY : (I)V + // 788: aload_0 + // 789: aload #12 + // 791: ldc_w 'adjustPosition' + // 794: aload_0 + // 795: getfield isAdjustPosition : Z + // 798: invokevirtual optBoolean : (Ljava/lang/String;Z)Z + // 801: putfield isAdjustPosition : Z + // 804: aload_0 + // 805: aload #12 + // 807: ldc_w 'data' + // 810: aload_0 + // 811: getfield mDataObject : Ljava/lang/String; + // 814: invokevirtual optString : (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + // 817: putfield mDataObject : Ljava/lang/String; + // 820: aload_0 + // 821: aload #12 + // 823: ldc_w 'autoBlur' + // 826: aload_0 + // 827: getfield mAutoBlur : Z + // 830: invokevirtual optBoolean : (Ljava/lang/String;Z)Z + // 833: putfield mAutoBlur : Z + // 836: aload #12 + // 838: ldc_w 'maxLength' + // 841: invokevirtual optInt : (Ljava/lang/String;)I + // 844: istore_3 + // 845: iload_3 + // 846: ifle -> 868 + // 849: aload_0 + // 850: iconst_1 + // 851: anewarray android/text/InputFilter + // 854: dup + // 855: iconst_0 + // 856: new android/text/InputFilter$LengthFilter + // 859: dup + // 860: iload_3 + // 861: invokespecial : (I)V + // 864: aastore + // 865: invokevirtual setFilters : ([Landroid/text/InputFilter;)V + // 868: aload #12 + // 870: ldc_w 'placeholder' + // 873: invokevirtual has : (Ljava/lang/String;)Z + // 876: ifeq -> 891 + // 879: aload_0 + // 880: aload #12 + // 882: ldc_w 'placeholder' + // 885: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 888: invokevirtual setHint : (Ljava/lang/CharSequence;)V + // 891: aload #12 + // 893: ldc 'value' + // 895: invokevirtual has : (Ljava/lang/String;)Z + // 898: ifeq -> 913 + // 901: aload_0 + // 902: aload #12 + // 904: ldc 'value' + // 906: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 909: iload_2 + // 910: invokevirtual setText : (Ljava/lang/String;Z)V + // 913: aload #12 + // 915: ldc_w 'password' + // 918: invokevirtual has : (Ljava/lang/String;)Z + // 921: ifeq -> 954 + // 924: aload #12 + // 926: ldc_w 'password' + // 929: invokevirtual optBoolean : (Ljava/lang/String;)Z + // 932: ifeq -> 943 + // 935: invokestatic getInstance : ()Landroid/text/method/PasswordTransformationMethod; + // 938: astore #11 + // 940: goto -> 948 + // 943: invokestatic getInstance : ()Landroid/text/method/SingleLineTransformationMethod; + // 946: astore #11 + // 948: aload_0 + // 949: aload #11 + // 951: invokevirtual setTransformationMethod : (Landroid/text/method/TransformationMethod;)V + // 954: aload #12 + // 956: ldc_w 'hidden' + // 959: invokevirtual has : (Ljava/lang/String;)Z + // 962: ifeq -> 988 + // 965: aload #12 + // 967: ldc_w 'hidden' + // 970: iconst_1 + // 971: invokevirtual optBoolean : (Ljava/lang/String;Z)Z + // 974: ifeq -> 1297 + // 977: iload #5 + // 979: istore_3 + // 980: goto -> 983 + // 983: aload_0 + // 984: iload_3 + // 985: invokevirtual setVisibility : (I)V + // 988: aload #12 + // 990: ldc_w 'disabled' + // 993: invokevirtual has : (Ljava/lang/String;)Z + // 996: ifeq -> 1021 + // 999: aload #12 + // 1001: ldc_w 'disabled' + // 1004: iconst_0 + // 1005: invokevirtual optBoolean : (Ljava/lang/String;Z)Z + // 1008: ifne -> 1302 + // 1011: iconst_1 + // 1012: istore_2 + // 1013: goto -> 1016 + // 1016: aload_0 + // 1017: iload_2 + // 1018: invokevirtual setEnabled : (Z)V + // 1021: aload #12 + // 1023: ldc_w 'type' + // 1026: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 1029: invokestatic isEmpty : (Ljava/lang/CharSequence;)Z + // 1032: ifne -> 1048 + // 1035: aload #12 + // 1037: ldc_w 'type' + // 1040: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 1043: astore #11 + // 1045: goto -> 1054 + // 1048: aload_0 + // 1049: getfield mType : Ljava/lang/String; + // 1052: astore #11 + // 1054: aload_0 + // 1055: aload #11 + // 1057: putfield mType : Ljava/lang/String; + // 1060: ldc_w 'text' + // 1063: aload_0 + // 1064: getfield mType : Ljava/lang/String; + // 1067: invokevirtual equals : (Ljava/lang/Object;)Z + // 1070: ifeq -> 1081 + // 1073: aload_0 + // 1074: iconst_1 + // 1075: invokevirtual setInputType : (I)V + // 1078: goto -> 1134 + // 1081: ldc_w 'digit' + // 1084: aload_0 + // 1085: getfield mType : Ljava/lang/String; + // 1088: invokevirtual equals : (Ljava/lang/Object;)Z + // 1091: istore_2 + // 1092: iload_2 + // 1093: ifeq -> 1114 + // 1096: aload_0 + // 1097: iconst_2 + // 1098: invokevirtual setInputType : (I)V + // 1101: aload_0 + // 1102: ldc_w '0123456789.' + // 1105: invokestatic getInstance : (Ljava/lang/String;)Landroid/text/method/DigitsKeyListener; + // 1108: invokevirtual setKeyListener : (Landroid/text/method/KeyListener;)V + // 1111: goto -> 1134 + // 1114: ldc_w 'number' + // 1117: aload_0 + // 1118: getfield mType : Ljava/lang/String; + // 1121: invokevirtual equals : (Ljava/lang/Object;)Z + // 1124: istore_2 + // 1125: iload_2 + // 1126: ifeq -> 1134 + // 1129: aload_0 + // 1130: iconst_2 + // 1131: invokevirtual setInputType : (I)V + // 1134: aload #12 + // 1136: ldc_w 'confirmType' + // 1139: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 1142: astore #11 + // 1144: ldc_w 'done' + // 1147: aload #11 + // 1149: invokevirtual equals : (Ljava/lang/Object;)Z + // 1152: ifeq -> 1164 + // 1155: aload_0 + // 1156: bipush #6 + // 1158: invokevirtual setImeOptions : (I)V + // 1161: goto -> 1239 + // 1164: ldc_w 'go' + // 1167: aload #11 + // 1169: invokevirtual equals : (Ljava/lang/Object;)Z + // 1172: istore_2 + // 1173: iload_2 + // 1174: ifeq -> 1185 + // 1177: aload_0 + // 1178: iconst_2 + // 1179: invokevirtual setImeOptions : (I)V + // 1182: goto -> 1239 + // 1185: ldc_w 'next' + // 1188: aload #11 + // 1190: invokevirtual equals : (Ljava/lang/Object;)Z + // 1193: ifeq -> 1204 + // 1196: aload_0 + // 1197: iconst_5 + // 1198: invokevirtual setImeOptions : (I)V + // 1201: goto -> 1239 + // 1204: ldc_w 'search' + // 1207: aload #11 + // 1209: invokevirtual equals : (Ljava/lang/Object;)Z + // 1212: ifeq -> 1223 + // 1215: aload_0 + // 1216: iconst_3 + // 1217: invokevirtual setImeOptions : (I)V + // 1220: goto -> 1239 + // 1223: ldc_w 'send' + // 1226: aload #11 + // 1228: invokevirtual equals : (Ljava/lang/Object;)Z + // 1231: ifeq -> 1239 + // 1234: aload_0 + // 1235: iconst_4 + // 1236: invokevirtual setImeOptions : (I)V + // 1239: aload_0 + // 1240: aload_1 + // 1241: invokevirtual updateSelectionOrCursor : (Ljava/lang/String;)V + // 1244: aload_0 + // 1245: invokespecial adjustOffsetIfNeed : ()V + // 1248: goto -> 1272 + // 1251: astore_1 + // 1252: ldc_w 'tma_Input' + // 1255: iconst_2 + // 1256: anewarray java/lang/Object + // 1259: dup + // 1260: iconst_0 + // 1261: ldc_w 'updateView' + // 1264: aastore + // 1265: dup + // 1266: iconst_1 + // 1267: aload_1 + // 1268: aastore + // 1269: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 1272: aload_0 + // 1273: getfield mNativeNestWebView : Lcom/tt/miniapp/view/webcore/NativeNestWebView; + // 1276: astore_1 + // 1277: aload_1 + // 1278: ifnull -> 1289 + // 1281: aload_1 + // 1282: iconst_0 + // 1283: invokestatic valueOf : (Z)Ljava/lang/Boolean; + // 1286: invokevirtual setShowConfirmBar : (Ljava/lang/Boolean;)V + // 1289: return + // 1290: astore_1 + // 1291: goto -> 1252 + // 1294: goto -> 596 + // 1297: iconst_0 + // 1298: istore_3 + // 1299: goto -> 983 + // 1302: iconst_0 + // 1303: istore_2 + // 1304: goto -> 1016 + // 1307: astore_1 + // 1308: goto -> 1252 + // Exception table: + // from to target type + // 0 37 1251 org/json/JSONException + // 37 47 1251 org/json/JSONException + // 56 129 1251 org/json/JSONException + // 136 166 1251 org/json/JSONException + // 166 243 1251 org/json/JSONException + // 248 270 1251 org/json/JSONException + // 273 306 1251 org/json/JSONException + // 306 346 1251 org/json/JSONException + // 351 360 363 com/tt/miniapphost/util/IllegalColorException + // 351 360 1251 org/json/JSONException + // 365 376 1251 org/json/JSONException + // 376 410 1251 org/json/JSONException + // 415 424 427 com/tt/miniapphost/util/IllegalColorException + // 415 424 1251 org/json/JSONException + // 429 440 1251 org/json/JSONException + // 440 449 1251 org/json/JSONException + // 453 459 1251 org/json/JSONException + // 459 489 1251 org/json/JSONException + // 489 525 1251 org/json/JSONException + // 528 556 1251 org/json/JSONException + // 559 584 1251 org/json/JSONException + // 587 593 1251 org/json/JSONException + // 596 606 1251 org/json/JSONException + // 611 645 1251 org/json/JSONException + // 650 659 662 com/tt/miniapphost/util/IllegalColorException + // 650 659 1251 org/json/JSONException + // 664 675 1251 org/json/JSONException + // 675 684 1251 org/json/JSONException + // 688 694 1251 org/json/JSONException + // 694 724 1251 org/json/JSONException + // 724 762 1251 org/json/JSONException + // 762 845 1251 org/json/JSONException + // 849 868 1251 org/json/JSONException + // 868 891 1251 org/json/JSONException + // 891 913 1251 org/json/JSONException + // 913 940 1251 org/json/JSONException + // 943 948 1251 org/json/JSONException + // 948 954 1251 org/json/JSONException + // 954 977 1251 org/json/JSONException + // 983 988 1251 org/json/JSONException + // 988 1011 1251 org/json/JSONException + // 1016 1021 1251 org/json/JSONException + // 1021 1045 1251 org/json/JSONException + // 1048 1054 1251 org/json/JSONException + // 1054 1078 1251 org/json/JSONException + // 1081 1092 1251 org/json/JSONException + // 1096 1101 1307 org/json/JSONException + // 1101 1111 1251 org/json/JSONException + // 1114 1125 1251 org/json/JSONException + // 1129 1134 1307 org/json/JSONException + // 1134 1161 1251 org/json/JSONException + // 1164 1173 1251 org/json/JSONException + // 1177 1182 1307 org/json/JSONException + // 1185 1201 1251 org/json/JSONException + // 1204 1220 1251 org/json/JSONException + // 1223 1239 1251 org/json/JSONException + // 1239 1248 1251 org/json/JSONException + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\Input.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/InputBean.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/InputBean.java new file mode 100644 index 0000000..67e313a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/InputBean.java @@ -0,0 +1,19 @@ +package com.tt.miniapp.component.nativeview; + +public class InputBean { + public int cursor; + + public int height; + + public int inputId; + + public String type; + + public String value; +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\InputBean.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/InputComponent.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/InputComponent.java new file mode 100644 index 0000000..4ed540f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/InputComponent.java @@ -0,0 +1,29 @@ +package com.tt.miniapp.component.nativeview; + +public interface InputComponent { + boolean getConfirm(); + + int getCursor(); + + int getInputHeight(); + + String getType(); + + String getValue(); + + boolean hasFocus(); + + boolean isAdjustPosition(); + + boolean isAutoBlur(); + + boolean isFixed(); + + void setValue(String paramString); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\InputComponent.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeAdWebView.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeAdWebView.java new file mode 100644 index 0000000..8d5cc66 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeAdWebView.java @@ -0,0 +1,166 @@ +package com.tt.miniapp.component.nativeview; + +import android.content.Context; +import android.graphics.Bitmap; +import android.net.Uri; +import android.os.SystemClock; +import android.text.TextUtils; +import android.webkit.WebResourceRequest; +import android.webkit.WebResourceResponse; +import android.webkit.WebView; +import com.storage.async.Action; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.component.nativeview.bridge.AdWebBridge; +import com.tt.miniapp.event.InnerEventHelper; +import com.tt.miniapp.msg.ApiGetAdSiteBaseInfoCtrl; +import com.tt.miniapp.storage.filestorge.FileManager; +import com.tt.miniapp.streamloader.StreamLoader; +import com.tt.miniapp.thread.ThreadPools; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.util.MimeTypeUtil; +import com.tt.miniapp.webbridge.ComponentIDCreator; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.util.CharacterUtils; +import com.tt.miniapphost.util.TimeMeter; +import java.io.File; +import java.io.InputStream; + +public class NativeAdWebView extends NativeWebView { + public NativeAdWebView(Context paramContext) { + this(paramContext, ComponentIDCreator.create()); + } + + public NativeAdWebView(Context paramContext, int paramInt) { + super(paramContext, paramInt); + this.mWebViewClient.setWebResourceResponseInterceptor(new NativeWebView.WebResourceResponseInterceptor() { + public WebResourceResponse interceptRequest(WebView param1WebView, WebResourceRequest param1WebResourceRequest) { + Uri uri = param1WebResourceRequest.getUrl(); + if (uri == null) + return null; + String str1 = uri.toString(); + String str2 = uri.getLastPathSegment(); + AppBrandLogger.d("NativeAdWebView", new Object[] { "urlString:", str1, "lastPath:", str2 }); + if (TextUtils.equals(str2, "toutiao.js")) + return new WebResourceResponse(MimeTypeUtil.getMimeType(str1), "UTF-8", null); + NativeAdWebView.AdLoadResource adLoadResource = new NativeAdWebView.AdLoadResource(uri); + if (adLoadResource.mIsPkgFile) { + String str = adLoadResource.mPath; + AppBrandLogger.i("NativeAdWebView", new Object[] { "path", str }); + long l = SystemClock.elapsedRealtime(); + InputStream inputStream = StreamLoader.getStream(str); + AppBrandLogger.d("AdTimer", new Object[] { Long.valueOf(SystemClock.elapsedRealtime() - l), str1 }); + if (inputStream != null) + try { + return new WebResourceResponse(MimeTypeUtil.getMimeType(str1), "UTF-8", inputStream); + } catch (Exception exception) { + AppBrandLogger.e("NativeAdWebView", new Object[] { "shouldInterceptRequest", exception }); + } + } + return null; + } + }); + ApiGetAdSiteBaseInfoCtrl.sPageType = 5; + } + + protected void addBridge() { + this.mWebView.addJavascriptInterface(new AdWebBridge((NativeWebView)this), "ttJSCore"); + this.mWebView.getSettings().setDomStorageEnabled(false); + } + + public void bind(WebViewManager.IRender paramIRender) { + super.bind(paramIRender); + this.mWebViewClient.setWebViewCallback(new NativeWebView.WebViewCallback() { + private TimeMeter mPageLoadStartTime; + + public void onPageError(WebView param1WebView, int param1Int, String param1String1, String param1String2) { + TimeMeter timeMeter = this.mPageLoadStartTime; + if (timeMeter != null) { + long l = TimeMeter.stop(timeMeter); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(param1Int); + stringBuilder.append("#"); + stringBuilder.append(param1String1); + InnerEventHelper.mpPageLoadResult(param1String2, "fail", l, stringBuilder.toString()); + this.mPageLoadStartTime = null; + } + } + + public void onPageFinished(WebView param1WebView, String param1String) { + TimeMeter timeMeter = this.mPageLoadStartTime; + if (timeMeter != null) { + InnerEventHelper.mpPageLoadResult(param1String, "success", TimeMeter.stop(timeMeter), CharacterUtils.empty()); + this.mPageLoadStartTime = null; + } + } + + public void onPageStart(WebView param1WebView, String param1String, Bitmap param1Bitmap) { + this.mPageLoadStartTime = TimeMeter.newAndStart(); + InnerEventHelper.mpPageLoadStart(param1String); + } + }); + } + + protected boolean interceptLoadSpecialUrl(final String url) { + final AdLoadResource adLoadResource = new AdLoadResource(url); + if (adLoadResource.mIsPkgFile) { + AppBrandLogger.d("NativeAdWebView", new Object[] { "interceptLoadSpecialUrl url:", url }); + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + String str1; + String str2 = adLoadResource.mPath; + if (!TextUtils.isEmpty(str2) && str2.startsWith(File.separator)) { + str1 = str2.substring(1); + } else { + str1 = str2; + } + File file = new File(FileManager.inst().getRealFilePath(str1)); + final String localFileUrl = Uri.parse(url).buildUpon().scheme("file").authority("").path(file.getPath()).build().toString(); + StreamLoader.extractToFile(str2, file.getParent(), file.getName()); + AppBrandLogger.d("NativeAdWebView", new Object[] { "interceptLoadSpecialUrl localFileUrl:", str3 }); + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(NativeAdWebView.this.mWebView, localFileUrl); + } + + class null {} + }); + } + }ThreadPools.defaults()); + return true; + } + return super.interceptLoadSpecialUrl(url); + } + + protected boolean isAllowInterceptUrl() { + return false; + } + + class AdLoadResource { + public boolean mIsPkgFile; + + public String mPath; + + AdLoadResource(Uri param1Uri) { + if (param1Uri == null) + return; + this.mIsPkgFile = TextUtils.equals(param1Uri.getScheme(), "ttadcache"); + this.mPath = param1Uri.getPath(); + } + + AdLoadResource(String param1String) { + if (TextUtils.isEmpty(param1String)) + return; + Uri uri = Uri.parse(param1String); + if (uri == null) + return; + this.mIsPkgFile = TextUtils.equals(uri.getScheme(), "ttadcache"); + this.mPath = uri.getPath(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\NativeAdWebView.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeComponent.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeComponent.java new file mode 100644 index 0000000..766c8c6 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeComponent.java @@ -0,0 +1,25 @@ +package com.tt.miniapp.component.nativeview; + +import com.tt.option.e.k; + +public interface NativeComponent { + void addView(String paramString, k paramk); + + boolean onBackPressed(); + + void onDestroy(); + + void onViewPause(); + + void onViewResume(); + + void removeView(int paramInt, k paramk); + + void updateView(String paramString, k paramk); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\NativeComponent.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeOffset.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeOffset.java new file mode 100644 index 0000000..3d6e10c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeOffset.java @@ -0,0 +1,45 @@ +package com.tt.miniapp.component.nativeview; + +import com.tt.miniapp.view.webcore.AbsoluteLayout; + +public class NativeOffset { + private int mCurX; + + private int mCurY; + + public NativeOffset(int paramInt1, int paramInt2) { + this.mCurX = paramInt1; + this.mCurY = paramInt2; + } + + public NativeOffset(AbsoluteLayout.LayoutParams paramLayoutParams) { + this.mCurX = paramLayoutParams.x; + this.mCurY = paramLayoutParams.y; + } + + private int getOffsetX(int paramInt) { + return paramInt - this.mCurX; + } + + private int getOffsetY(int paramInt) { + return paramInt - this.mCurY; + } + + public int getCurX(int paramInt1, int paramInt2) { + paramInt1 = getOffsetX(paramInt1); + this.mCurX = paramInt2; + return paramInt1 + paramInt2; + } + + public int getCurY(int paramInt1, int paramInt2) { + paramInt1 = getOffsetY(paramInt1); + this.mCurY = paramInt2; + return paramInt1 + paramInt2; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\NativeOffset.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeViewManager.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeViewManager.java new file mode 100644 index 0000000..c84ad50 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeViewManager.java @@ -0,0 +1,300 @@ +package com.tt.miniapp.component.nativeview; + +import android.text.TextUtils; +import android.util.SparseArray; +import android.view.View; +import com.tt.frontendapiinterface.i; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.component.nativeview.liveplayer.LivePlayer; +import com.tt.miniapp.component.nativeview.map.Map; +import com.tt.miniapp.component.nativeview.video.VideoView; +import com.tt.miniapp.keyboarddetect.KeyboardHeightProvider; +import com.tt.miniapp.util.InputMethodUtil; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapp.view.webcore.NativeNestWebView; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.option.e.k; + +public class NativeViewManager { + private NativeNestWebView mNativeWebView; + + private WebViewManager.IRender mRender; + + private String mViewType; + + private SparseArray mViews = new SparseArray(); + + private int mWebViewId; + + public NativeViewManager(WebViewManager.IRender paramIRender, NativeNestWebView paramNativeNestWebView, int paramInt) { + this.mNativeWebView = paramNativeNestWebView; + this.mWebViewId = paramInt; + this.mRender = paramIRender; + } + + private AbsoluteLayout getAttatchedLayout(View paramView) { + AbsoluteLayout absoluteLayout = this.mNativeWebView.getAvailableLayout(); + null = absoluteLayout; + if (paramView != null) { + if (!(paramView instanceof Input) && !(paramView instanceof NativeWebView)) { + null = absoluteLayout; + return !HostDependManager.getInst().enableTTRender(paramView) ? this.mNativeWebView.getAbsoluteLayout() : null; + } + } else { + return null; + } + return this.mNativeWebView.getAbsoluteLayout(); + } + + private AbsoluteLayout getUsableLayout(String paramString) { + AbsoluteLayout absoluteLayout = this.mNativeWebView.getAvailableLayout(); + if (TextUtils.equals(paramString, "webHtml") || TextUtils.equals(paramString, "adWebHtml") || isInputComp(paramString) || !HostDependManager.getInst().enableTTRender(paramString)) + absoluteLayout = this.mNativeWebView.getAbsoluteLayout(); + return absoluteLayout; + } + + private boolean isInputComp(String paramString) { + return (TextUtils.equals(paramString, "text") || TextUtils.equals(paramString, "digit") || TextUtils.equals(paramString, "number") || TextUtils.equals(paramString, "idcard")); + } + + public void addView(int paramInt, String paramString1, String paramString2, k paramk) { + LivePlayer livePlayer; + AppBrandLogger.d("tma_NativeViewManager", new Object[] { "viewType ", paramString1 }); + AbsoluteLayout absoluteLayout = getUsableLayout(paramString1); + NativeComponent nativeComponent2 = HostDependManager.getInst().getNativeComponentView(paramString1, paramInt, this.mWebViewId, absoluteLayout, this.mNativeWebView, (i)this.mRender); + NativeComponent nativeComponent1 = nativeComponent2; + if (nativeComponent2 == null) + if (TextUtils.equals(paramString1, "textarea")) { + nativeComponent1 = new TextArea(paramInt, absoluteLayout, this.mRender, this.mWebViewId, this.mNativeWebView); + } else if (isInputComp(paramString1)) { + nativeComponent1 = Input.getInputView(paramInt, absoluteLayout, this.mRender, this.mWebViewId, paramString1, this.mNativeWebView); + } else if (TextUtils.equals(paramString1, "webHtml")) { + nativeComponent1 = new NativeWebView(absoluteLayout.getContext(), paramInt); + nativeComponent1.bind(absoluteLayout, this.mRender); + } else if (TextUtils.equals(paramString1, "adWebHtml")) { + nativeComponent1 = new NativeAdWebView(absoluteLayout.getContext(), paramInt); + nativeComponent1.bind(absoluteLayout, this.mRender); + } else { + VideoView.VideoModel videoModel; + if (TextUtils.equals(paramString1, "video")) { + videoModel = VideoView.VideoModel.parseVideoMode(paramString2); + videoModel.videoPlayerId = paramInt; + VideoView videoView = new VideoView(absoluteLayout, this.mRender, videoModel); + } else if (TextUtils.equals((CharSequence)videoModel, "ad")) { + nativeComponent1 = new AdContainerView(paramInt, absoluteLayout, this.mRender); + } else if (TextUtils.equals((CharSequence)videoModel, "map")) { + Map map = new Map(paramInt, absoluteLayout, this.mRender, this.mNativeWebView); + } else { + nativeComponent1 = nativeComponent2; + if (TextUtils.equals((CharSequence)videoModel, "livePlayer")) + livePlayer = new LivePlayer(absoluteLayout.getContext(), paramInt, absoluteLayout, this.mRender); + } + } + if (livePlayer instanceof View) { + View view = (View)livePlayer; + view.setId(paramInt); + livePlayer.addView(paramString2, paramk); + this.mViews.put(paramInt, view); + absoluteLayout.addAndRegisterPlatformView(view); + } + } + + void destroyOtherVideo() { + // Byte code: + // 0: aload_0 + // 1: getfield mViews : Landroid/util/SparseArray; + // 4: invokevirtual size : ()I + // 7: istore_2 + // 8: iconst_0 + // 9: istore_1 + // 10: iload_1 + // 11: iload_2 + // 12: if_icmpge -> 42 + // 15: aload_0 + // 16: getfield mViews : Landroid/util/SparseArray; + // 19: iload_1 + // 20: invokevirtual get : (I)Ljava/lang/Object; + // 23: checkcast android/view/View + // 26: instanceof com/tt/miniapp/component/nativeview/video/VideoView + // 29: ifeq -> 35 + // 32: goto -> 44 + // 35: iload_1 + // 36: iconst_1 + // 37: iadd + // 38: istore_1 + // 39: goto -> 10 + // 42: iconst_m1 + // 43: istore_1 + // 44: iload_1 + // 45: iflt -> 70 + // 48: aload_0 + // 49: getfield mViews : Landroid/util/SparseArray; + // 52: iload_1 + // 53: invokevirtual get : (I)Ljava/lang/Object; + // 56: checkcast com/tt/miniapp/component/nativeview/video/VideoView + // 59: invokevirtual releaseMedia : ()V + // 62: aload_0 + // 63: getfield mViews : Landroid/util/SparseArray; + // 66: iload_1 + // 67: invokevirtual remove : (I)V + // 70: return + } + + public void destroyVideoView(VideoView paramVideoView) { + AppBrandLogger.d("tma_NativeViewManager", new Object[] { "destroyVideoView" }); + if (paramVideoView != null) { + paramVideoView.releaseMedia(); + int i = this.mViews.indexOfValue(paramVideoView); + if (i >= 0) + this.mViews.delete(i); + } + } + + public SparseArray getAllNativeViews() { + return this.mViews; + } + + public InputBean getCurrentInputValue() { + InputBean inputBean = new InputBean(); + inputBean.inputId = -1; + int j = this.mViews.size(); + for (int i = 0; i < j; i++) { + int k = this.mViews.keyAt(i); + View view = (View)this.mViews.get(k); + if (view instanceof InputComponent) { + InputComponent inputComponent = (InputComponent)view; + String str = inputComponent.getType(); + setViewType(str); + boolean bool = inputComponent.getConfirm(); + this.mNativeWebView.setShowConfirmBar(Boolean.valueOf(bool)); + if (inputComponent.hasFocus()) { + inputBean.inputId = k; + inputBean.value = inputComponent.getValue(); + inputBean.cursor = inputComponent.getCursor(); + inputBean.height = KeyboardHeightProvider.getKeyboardHeight(); + inputBean.type = str; + return inputBean; + } + } + } + return inputBean; + } + + public NativeWebView getCurrentNativeWebView() { + int j = this.mViews.size(); + for (int i = 0; i < j; i++) { + View view = (View)this.mViews.valueAt(i); + if (view instanceof NativeWebView) + return (NativeWebView)view; + } + return null; + } + + public View getFocusedInput() { + SparseArray sparseArray = this.mViews; + if (sparseArray == null) + return null; + int j = sparseArray.size(); + for (int i = 0; i < j; i++) { + int k = this.mViews.keyAt(i); + View view = (View)this.mViews.get(k); + if (view instanceof InputComponent && view.isFocused()) + return view; + } + return null; + } + + public NativeNestWebView getNativeWebView() { + return this.mNativeWebView; + } + + public View getView(int paramInt) { + return (View)this.mViews.get(paramInt); + } + + public String getViewType() { + return this.mViewType; + } + + public boolean hasView(int paramInt) { + return (getView(paramInt) != null); + } + + public boolean onBackPressed() { + int i = this.mViews.size() - 1; + boolean bool; + for (bool = false; i >= 0; bool = bool1) { + View view = (View)this.mViews.valueAt(i); + boolean bool1 = bool; + if (view instanceof NativeComponent) { + bool1 = bool; + if (((NativeComponent)view).onBackPressed()) + bool1 = true; + } + i--; + } + return bool; + } + + public void onDestroy() { + for (int i = this.mViews.size() - 1; i >= 0; i--) { + int j = this.mViews.keyAt(i); + View view = (View)this.mViews.valueAt(i); + removeView(j, null); + if (view instanceof NativeComponent) + ((NativeComponent)view).onDestroy(); + } + } + + public void onViewPause() { + int j = this.mViews.size(); + for (int i = 0; i < j; i++) { + View view = (View)this.mViews.valueAt(i); + if (view instanceof NativeComponent) + ((NativeComponent)view).onViewPause(); + } + } + + public void onViewResume() { + int j = this.mViews.size(); + for (int i = 0; i < j; i++) { + View view = (View)this.mViews.valueAt(i); + if (view instanceof NativeComponent) + ((NativeComponent)view).onViewResume(); + } + } + + public void removeView(int paramInt, k paramk) { + AppBrandLogger.d("tma_NativeViewManager", new Object[] { "removeView viewId ", Integer.valueOf(paramInt) }); + View view = (View)this.mViews.get(paramInt); + if (view != null) { + if (view instanceof NativeComponent) + ((NativeComponent)view).removeView(paramInt, paramk); + this.mViews.delete(paramInt); + getAttatchedLayout(view).removeView(view); + } + } + + public void setViewType(String paramString) { + this.mViewType = paramString; + } + + public void showKeyboard(int paramInt) { + View view = (View)this.mViews.get(paramInt); + if (view != null && view instanceof android.widget.EditText) + InputMethodUtil.showSoftKeyboard(view, view.getContext().getApplicationContext()); + } + + public void updateView(int paramInt, String paramString, k paramk) { + View view = (View)this.mViews.get(paramInt); + if (view instanceof NativeComponent) + ((NativeComponent)view).updateView(paramString, paramk); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\NativeViewManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeWebView.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeWebView.java new file mode 100644 index 0000000..2cd188e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/NativeWebView.java @@ -0,0 +1,744 @@ +package com.tt.miniapp.component.nativeview; + +import android.app.Activity; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.ClipDrawable; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.os.Build; +import android.text.TextUtils; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewParent; +import android.webkit.CookieManager; +import android.webkit.DownloadListener; +import android.webkit.GeolocationPermissions; +import android.webkit.RenderProcessGoneDetail; +import android.webkit.ValueCallback; +import android.webkit.WebChromeClient; +import android.webkit.WebResourceRequest; +import android.webkit.WebResourceResponse; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.FrameLayout; +import com.bytedance.v.a.a.a.b; +import com.example.a.c; +import com.tt.frontendapiinterface.e; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.AppbrandConstant; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.debug.DebugManager; +import com.tt.miniapp.event.Event; +import com.tt.miniapp.permission.PermissionsManager; +import com.tt.miniapp.permission.PermissionsResultAction; +import com.tt.miniapp.util.DevicesUtil; +import com.tt.miniapp.util.NetUtil; +import com.tt.miniapp.util.Trick4MoneyUtil; +import com.tt.miniapp.util.VideoFullScreenHelper; +import com.tt.miniapp.util.WebviewSchemaUtil; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapp.view.webcore.NativeNestWebView; +import com.tt.miniapp.view.webcore.TTWebViewSupportWebView; +import com.tt.miniapp.web.TTWebSetting; +import com.tt.miniapp.webbridge.WebComponentBridge; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.InitParamsEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.language.LanguageUtils; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import com.tt.miniapphost.util.IllegalColorException; +import com.tt.miniapphost.util.JsonBuilder; +import com.tt.miniapphost.util.UIUtils; +import com.tt.option.e.k; +import com.tt.option.n.c; +import java.util.HashSet; +import org.json.JSONException; +import org.json.JSONObject; + +public class NativeWebView extends FrameLayout implements DownloadListener, NativeComponent { + protected VideoFullScreenHelper mHelper; + + private View.OnLayoutChangeListener mOnLayoutChangeListener = new View.OnLayoutChangeListener() { + public void onLayoutChange(View param1View, int param1Int1, int param1Int2, int param1Int3, int param1Int4, int param1Int5, int param1Int6, int param1Int7, int param1Int8) { + if (NativeWebView.this.mRender != null) { + if (NativeWebView.this.mParentView == null) + return; + ViewGroup.LayoutParams layoutParams = NativeWebView.this.getLayoutParams(); + if (layoutParams instanceof AbsoluteLayout.LayoutParams) { + AbsoluteLayout.LayoutParams layoutParams1 = (AbsoluteLayout.LayoutParams)layoutParams; + if (layoutParams1.width != NativeWebView.this.mRender.getRenderWidth() || layoutParams1.height != NativeWebView.this.mRender.getRenderHeight()) { + AppBrandLogger.d("tma_NativeWebView", new Object[] { "onLayoutChange", "width", Integer.valueOf(layoutParams1.width), "height", Integer.valueOf(layoutParams1.height), "windowWidth", Integer.valueOf(this.this$0.mRender.getRenderWidth()), "windowHeight", Integer.valueOf(this.this$0.mRender.getRenderHeight()) }); + layoutParams1.width = NativeWebView.this.mRender.getRenderWidth(); + layoutParams1.height = NativeWebView.this.mRender.getRenderHeight(); + NativeWebView.this.setLayoutParams((ViewGroup.LayoutParams)layoutParams1); + } + } + } + } + }; + + protected AbsoluteLayout mParentView; + + protected ProgressBarView mProgressBarView; + + protected WebViewManager.IRender mRender; + + protected WebView mWebView; + + protected final ComponentWebViewClient mWebViewClient; + + protected int mWebViewId; + + public NativeWebView(Context paramContext, int paramInt) { + super(paramContext); + this.mWebViewId = paramInt; + this.mWebView = new WebView(paramContext); + this.mWebView.setDownloadListener((DownloadListener)this); + CookieManager.getInstance().setAcceptThirdPartyCookies(this.mWebView, true); + this.mProgressBarView = new ProgressBarView(paramContext); + this.mWebViewClient = new ComponentWebViewClient(); + initWebView(); + } + + private void cleanWebView() { + this.mWebView.setWebChromeClient(null); + this.mWebView.setWebViewClient(c.a(null)); + ViewParent viewParent = getParent(); + if (viewParent instanceof ViewGroup) { + ((ViewGroup)viewParent).removeView((View)this); + try { + return; + } finally { + viewParent = null; + } + } + } + + public static String getUnsafePageUrl() { + InitParamsEntity initParamsEntity = AppbrandContext.getInst().getInitParams(); + return (initParamsEntity != null) ? initParamsEntity.getHostStr(1004, AppbrandConstant.OpenApi.getInst().getNOT_SUPPORT_URL()) : AppbrandConstant.OpenApi.getInst().getNOT_SUPPORT_URL(); + } + + public static boolean isHttpUrl(String paramString) { + return (!TextUtils.isEmpty(paramString) && (paramString.startsWith("http://") || paramString.startsWith("https://"))); + } + + private static void loadUnsafeTipPage(WebView paramWebView, String paramString1, String paramString2) { + byte b; + StringBuffer stringBuffer; + Uri uri; + String str = getUnsafePageUrl(); + try { + if (!TextUtils.isEmpty(str)) { + stringBuffer = new StringBuffer(str); + stringBuffer.append("?"); + stringBuffer.append(LanguageUtils.appendLanguageQueryParam()); + uri = Uri.parse(paramString1); + b = -1; + int i = paramString2.hashCode(); + if (i != 290602151) { + if (i == 1224424441 && paramString2.equals("webview")) + b = 0; + } else if (paramString2.equals("webview_schema")) { + b = 1; + } + } else { + return; + } + } catch (Exception exception) { + AppBrandLogger.d("tma_NativeWebView", new Object[] { exception }); + if (paramWebView != null) { + StringBuffer stringBuffer1 = new StringBuffer(str); + stringBuffer1.append("?"); + stringBuffer1.append(LanguageUtils.appendLanguageQueryParam()); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(paramWebView, stringBuffer1.toString()); + } + return; + } + if (b != 0) { + if (b == 1) { + paramString1 = uri.getScheme(); + stringBuffer.append("&unconfig_schema="); + stringBuffer.append(Uri.encode(paramString1)); + } + } else { + paramString2 = uri.getHost(); + paramString1 = paramString1.substring(0, paramString1.indexOf(paramString2) + paramString2.length()); + stringBuffer.append("&unconfig_domain="); + stringBuffer.append(Uri.encode(paramString1)); + } + if (paramWebView != null) + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(paramWebView, stringBuffer.toString()); + } + + private void monitorRenderSize() { + WebViewManager.IRender iRender = this.mRender; + if (iRender != null) { + NativeNestWebView nativeNestWebView = iRender.getNativeNestWebView(); + if (nativeNestWebView != null) + nativeNestWebView.addOnLayoutChangeListener(this.mOnLayoutChangeListener); + } + } + + private void startWebBrowser(Context paramContext, String paramString, boolean paramBoolean) { + HostDependManager.getInst().openWebBrowser(paramContext, paramString, paramBoolean); + } + + private void unMonitorRenderSize() { + WebViewManager.IRender iRender = this.mRender; + if (iRender != null) { + NativeNestWebView nativeNestWebView = iRender.getNativeNestWebView(); + if (nativeNestWebView != null) + nativeNestWebView.removeOnLayoutChangeListener(this.mOnLayoutChangeListener); + } + } + + protected void addBridge() { + this.mWebView.addJavascriptInterface(new WebComponentBridge(this), "ttJSCore"); + } + + public void addView(String paramString, k paramk) { + if (this.mParentView != null) { + if (this.mRender == null) + return; + try { + JSONObject jSONObject = new JSONObject(paramString); + int i = this.mRender.getRenderWidth(); + int j = this.mRender.getRenderHeight(); + AppBrandLogger.d("tma_NativeWebView", new Object[] { "addView", "left", Integer.valueOf(0), "top", Integer.valueOf(0), "width", Integer.valueOf(i), "height", Integer.valueOf(j) }); + AbsoluteLayout.LayoutParams layoutParams = new AbsoluteLayout.LayoutParams(i, j, 0 - this.mParentView.getCurScrollX(), 0 - this.mParentView.getCurScrollY()); + if (jSONObject.has("zIndex")) + layoutParams.zIndex = jSONObject.optInt("zIndex"); + if (jSONObject.has("fixed")) + layoutParams.isFixed = jSONObject.optBoolean("fixed"); + this.mParentView.addView((View)this, (ViewGroup.LayoutParams)layoutParams); + setProgressBarColor(jSONObject.optString("progressBarColor")); + monitorRenderSize(); + return; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "tma_NativeWebView", exception.getStackTrace()); + } + } + } + + public void bind(WebViewManager.IRender paramIRender) { + this.mRender = paramIRender; + } + + public void bind(AbsoluteLayout paramAbsoluteLayout, WebViewManager.IRender paramIRender) { + this.mParentView = paramAbsoluteLayout; + this.mRender = paramIRender; + this.mWebViewClient.setWebViewCallback(new WebViewCallback() { + private void callbackWebViewEvent(String param1String1, String param1String2) { + if (NativeWebView.this.mRender == null) + return; + JSONObject jSONObject = (new JsonBuilder()).put("htmlId", Integer.valueOf(NativeWebView.this.getWebViewId())).put("src", param1String1).build(); + AppbrandApplicationImpl.getInst().getWebViewManager().publish(NativeWebView.this.mRender.getWebViewId(), param1String2, jSONObject.toString()); + } + + public void onPageError(WebView param1WebView, int param1Int, String param1String1, String param1String2) { + callbackWebViewEvent(param1String2, "onWebviewError"); + } + + public void onPageFinished(WebView param1WebView, String param1String) { + callbackWebViewEvent(param1String, "onWebviewFinishLoad"); + CookieManager.getInstance().flush(); + } + + public void onPageStart(WebView param1WebView, String param1String, Bitmap param1Bitmap) { + callbackWebViewEvent(param1String, "onWebviewStartLoad"); + } + }); + } + + public boolean canGoBack() { + WebView webView = this.mWebView; + return (webView != null) ? webView.canGoBack() : false; + } + + public boolean dispatchTouchEvent(MotionEvent paramMotionEvent) { + boolean bool = super.dispatchTouchEvent(paramMotionEvent); + AppBrandLogger.d("tma_NativeWebView", new Object[] { "dispatchTouchEvent ", Boolean.valueOf(bool) }); + return bool; + } + + public c getFileChooseHandler() { + WebViewManager.IRender iRender = this.mRender; + return (iRender != null) ? iRender.getFileChooseHandler() : null; + } + + public WebView getWebView() { + return this.mWebView; + } + + public int getWebViewId() { + return this.mWebViewId; + } + + public void initWebView() { + int i = (int)UIUtils.dip2Px(getContext(), 2.0F); + addView((View)this.mWebView, (ViewGroup.LayoutParams)new FrameLayout.LayoutParams(-1, -1)); + addView((View)this.mProgressBarView, (ViewGroup.LayoutParams)new FrameLayout.LayoutParams(-1, i)); + this.mProgressBarView.hide(); + setProgressBarColor(""); + this.mWebView.setOnTouchListener(new View.OnTouchListener() { + public boolean onTouch(View param1View, MotionEvent param1MotionEvent) { + param1View.getParent().requestDisallowInterceptTouchEvent(true); + if ((param1MotionEvent.getAction() & 0xFF) != 1) + return false; + param1View.getParent().requestDisallowInterceptTouchEvent(false); + return false; + } + }); + TTWebSetting tTWebSetting = new TTWebSetting(this.mWebView.getSettings()); + tTWebSetting.setDefaultSetting(); + tTWebSetting.enableZoomSupport(); + tTWebSetting.setDomStorageEnabled(); + if ((DebugManager.getInst()).mIsDebugOpen) + WebView.setWebContentsDebuggingEnabled(true); + this.mWebView.setWebChromeClient(new WebChromeClient() { + private boolean isDefaultUrl(String param1String) { + return (param1String == null) ? false : ((param1String.startsWith(NativeWebView.getUnsafePageUrl()) || param1String.startsWith("file:///android_asset/error-page.html"))); + } + + private boolean isUrlTitle(String param1String1, String param1String2) { + if (param1String1 == null) + return false; + if (param1String1.equals(param1String2)) + return true; + Uri uri = Uri.parse(param1String1); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(uri.getScheme()); + stringBuilder.append("://"); + stringBuilder.append(param1String2); + if (param1String1.equals(stringBuilder.toString())) { + StringBuilder stringBuilder1 = new StringBuilder("title is url:"); + stringBuilder1.append(param1String1); + AppBrandLogger.d("tma_NativeWebView", new Object[] { stringBuilder1.toString() }); + return true; + } + return false; + } + + public void NativeWebView$4__onGeolocationPermissionsShowPrompt$___twin___(final String origin, final GeolocationPermissions.Callback callback) { + b.a(this, new Object[] { origin, callback }, 100003, "com.tt.miniapp.component.nativeview.NativeWebView$4.onGeolocationPermissionsShowPrompt(java.lang.String,android.webkit.GeolocationPermissions$Callback)"); + AppBrandLogger.d("tma_NativeWebView", new Object[] { "location permission ", origin }); + HashSet hashSet = new HashSet(); + hashSet.add("android.permission.ACCESS_COARSE_LOCATION"); + hashSet.add("android.permission.ACCESS_FINE_LOCATION"); + PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult((Activity)AppbrandContext.getInst().getCurrentActivity(), hashSet, new PermissionsResultAction() { + public void onDenied(String param2String) { + AppBrandLogger.d("tma_NativeWebView", new Object[] { "denied location" }); + callback.invoke(origin, false, false); + } + + public void onGranted() { + AppBrandLogger.d("tma_NativeWebView", new Object[] { "granted location" }); + callback.invoke(origin, true, false); + } + }); + } + + public void onGeolocationPermissionsShowPrompt(String param1String, GeolocationPermissions.Callback param1Callback) { + _lancet.com_ss_android_ugc_aweme_lancet_WebLancet_onGeolocationPermissionsShowPrompt(this, param1String, param1Callback); + } + + public void onHideCustomView() { + AppBrandLogger.d("tma_NativeWebView", new Object[] { "onHideCustomView " }); + super.onHideCustomView(); + if (NativeWebView.this.mHelper == null) + return; + if (NativeWebView.this.mRender != null) + NativeWebView.this.mHelper.exitFullScreen(NativeWebView.this.mRender.getCurrentActivity()); + } + + public void onProgressChanged(WebView param1WebView, int param1Int) { + AppBrandLogger.d("tma_NativeWebView", new Object[] { "onProgressChanged ", Integer.valueOf(param1Int) }); + if (param1Int >= 99) { + NativeWebView.this.mProgressBarView.hide(); + if (NativeWebView.this.mRender != null) + NativeWebView.this.mRender.onNativeWebViewPageFinished(param1WebView.canGoBack()); + } else { + if (!NativeWebView.this.mProgressBarView.isShown()) + NativeWebView.this.mProgressBarView.show(); + NativeWebView.this.mProgressBarView.setProgress(param1Int); + } + super.onProgressChanged(param1WebView, param1Int); + } + + public void onReceivedTitle(WebView param1WebView, String param1String) { + super.onReceivedTitle(param1WebView, param1String); + if (!isUrlTitle(param1WebView.getUrl(), param1String) && NativeWebView.this.mRender != null) + NativeWebView.this.mRender.updateWebTitle(param1String, isDefaultUrl(param1WebView.getUrl())); + } + + public void onShowCustomView(View param1View, WebChromeClient.CustomViewCallback param1CustomViewCallback) { + AppBrandLogger.d("tma_NativeWebView", new Object[] { "onShowCustomView " }); + super.onShowCustomView(param1View, param1CustomViewCallback); + if (NativeWebView.this.mHelper == null) + NativeWebView.this.mHelper = new VideoFullScreenHelper(); + NativeWebView.this.mHelper.setDirection(VideoFullScreenHelper.ScreenDirection.LANDSCAPE); + if (NativeWebView.this.mRender != null) + NativeWebView.this.mHelper.enterFullScreen(NativeWebView.this.mRender.getCurrentActivity(), param1View, param1CustomViewCallback); + } + + public boolean onShowFileChooser(WebView param1WebView, ValueCallback param1ValueCallback, WebChromeClient.FileChooserParams param1FileChooserParams) { + c c = NativeWebView.this.getFileChooseHandler(); + if (c != null) { + c.openFileChooser(param1ValueCallback, param1FileChooserParams); + return true; + } + return false; + } + + class null {} + }); + this.mWebView.setWebViewClient(c.a((WebViewClient)this.mWebViewClient)); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(this.mWebView, "javascript: window.__ttjsenv__='microapp';console.log(__ttjsenv__);"); + addBridge(); + AppbrandApplicationImpl.getInst().getWebViewManager().addWebComponent(this); + } + + protected boolean interceptLoadSpecialUrl(String paramString) { + return false; + } + + public boolean interceptUrl(WebView paramWebView, String paramString) { + if (!isAllowInterceptUrl()) + return false; + String str = WebviewSchemaUtil.getSchema(paramString); + if (WebviewSchemaUtil.isWhiteList("webview_schema", str)) { + if (!WebviewSchemaUtil.openSchema(str, paramString)) + loadUnsafeTipPage(paramWebView, paramString, "webview_schema"); + return true; + } + if (!WebviewSchemaUtil.isDefaultSchema(str)) { + if (Trick4MoneyUtil.ignoreWebViewScheme(str, AppbrandApplicationImpl.getInst().getAppInfo())) + return true; + loadUnsafeTipPage(paramWebView, paramString, "webview_schema"); + return true; + } + if (!NetUtil.isSafeDomain("webview", paramString)) { + loadUnsafeTipPage(paramWebView, paramString, "webview"); + Event.builder("mp_webview_invalid_domain").kv("host", paramString).flush(); + return true; + } + return false; + } + + public boolean interceptUrlByHost(Context paramContext, String paramString) { + return !isAllowInterceptUrl() ? false : HostDependManager.getInst().interceptOpenWebUrl(paramContext, paramString); + } + + protected boolean isAllowInterceptUrl() { + return true; + } + + public void loadUrl(String paramString, boolean paramBoolean) { + this.mWebViewClient.setClearHistory(paramBoolean); + if (interceptUrlByHost(getContext(), paramString)) { + AppbrandContext.mainHandler.post(new Runnable() { + public void run() { + e e = AppbrandApplication.getInst().getActivityLife(); + if (e != null) + e.goback(); + } + }); + return; + } + if (!interceptLoadSpecialUrl(paramString)) { + if (interceptUrl(this.mWebView, paramString)) + return; + HostDependManager.getInst().syncWebViewLoginCookie(paramString); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(this.mWebView, paramString); + } + } + + public boolean onBackPressed() { + VideoFullScreenHelper videoFullScreenHelper = this.mHelper; + if (videoFullScreenHelper != null && videoFullScreenHelper.exitFullScreenManual()) + return true; + ComponentWebViewClient componentWebViewClient = this.mWebViewClient; + if (componentWebViewClient != null) + componentWebViewClient.setLoadUrlByBack(true); + if (this.mWebView.canGoBack()) { + this.mWebView.goBack(); + return true; + } + return false; + } + + public void onDestroy() { + cleanWebView(); + unMonitorRenderSize(); + } + + public void onDownloadStart(String paramString1, String paramString2, String paramString3, String paramString4, long paramLong) { + startWebBrowser(getContext(), paramString1, true); + } + + public void onPause() { + try { + this.mWebView.onPause(); + return; + } catch (Exception exception) { + AppBrandLogger.e("tma_NativeWebView", new Object[] { "onPause", exception }); + return; + } + } + + public void onResume() { + try { + this.mWebView.onResume(); + return; + } catch (Exception exception) { + AppBrandLogger.e("tma_NativeWebView", new Object[] { "onResume", exception }); + return; + } + } + + public boolean onTouchEvent(MotionEvent paramMotionEvent) { + boolean bool = super.onTouchEvent(paramMotionEvent); + AppBrandLogger.d("tma_NativeWebView", new Object[] { "onTouchEvent ", Boolean.valueOf(bool) }); + return bool; + } + + public void onViewPause() { + onPause(); + } + + public void onViewResume() { + onResume(); + } + + public void reloadErrorUrl() { + post(new Runnable() { + public void run() { + WebView webView = NativeWebView.this.mWebView; + StringBuilder stringBuilder = new StringBuilder("document.location.replace('"); + stringBuilder.append(NativeWebView.this.mWebViewClient.getErrorUrl()); + stringBuilder.append("')"); + webView.evaluateJavascript(stringBuilder.toString(), null); + } + }); + } + + public void removeView(int paramInt, k paramk) { + WebView webView = this.mWebView; + if (webView != null) { + webView.setWebChromeClient(null); + this.mWebView.setWebViewClient(c.a(null)); + HostDependManager.getInst().onWebViewComponentDestroyed(this.mWebView); + } + unMonitorRenderSize(); + } + + public void setProgressBarColor(String paramString) { + try { + paramString = UIUtils.rgbaToFullARGBStr(paramString, "#51a0d8"); + if (!TextUtils.isEmpty(paramString)) + this.mProgressBarView.setProgressDrawable((Drawable)new ClipDrawable((Drawable)new ColorDrawable(UIUtils.parseColor(paramString)), 3, 1)); + return; + } catch (IllegalColorException illegalColorException) { + AppBrandLogger.e("tma_NativeWebView", new Object[] { illegalColorException }); + return; + } + } + + public void updateView(String paramString, k paramk) { + try { + JSONObject jSONObject = new JSONObject(paramString); + String str = jSONObject.optString("src"); + AppBrandLogger.d("tma_NativeWebView", new Object[] { "updateView ", paramString }); + if (!TextUtils.isEmpty(str)) + loadUrl(str, false); + AbsoluteLayout.LayoutParams layoutParams = (AbsoluteLayout.LayoutParams)getLayoutParams(); + if (jSONObject.has("fixed")) + layoutParams.isFixed = jSONObject.optBoolean("fixed"); + if (jSONObject.has("zIndex")) { + layoutParams.zIndex = jSONObject.optInt("zIndex"); + requestLayout(); + } + return; + } catch (Exception exception) { + AppBrandLogger.e("tma_NativeWebView", new Object[] { "updateView error ", exception }); + return; + } + } + + protected class ComponentWebViewClient extends WebViewClient { + private boolean isLoadUrlByBack; + + private NativeWebView.WebViewCallback mCallback; + + private final String mDefaultErrorPage = "file:///android_asset/error-page.html"; + + private String mErrorUrl; + + private NativeWebView.WebResourceResponseInterceptor mWebResourceResponseInterceptor; + + boolean shouldClearHistory; + + private boolean shouldInterceptUrlLoading(WebView param1WebView, String param1String) { + if (NativeWebView.this.interceptUrl(param1WebView, param1String)) + return true; + if (NativeWebView.this.interceptUrlByHost(param1WebView.getContext(), param1String)) + return true; + if (NativeWebView.isHttpUrl(param1String)) { + HostDependManager.getInst().syncWebViewLoginCookie(param1String); + return false; + } + if (TextUtils.isEmpty(param1String) || "about".equals(WebviewSchemaUtil.getSchema(param1String)) || "about:blank".equals(param1String)); + return false; + } + + public void doUpdateVisitedHistory(WebView param1WebView, String param1String, boolean param1Boolean) { + AppBrandLogger.d("tma_NativeWebView", new Object[] { "doUpdateVisitedHistory ", param1String }); + super.doUpdateVisitedHistory(param1WebView, param1String, param1Boolean); + if (this.shouldClearHistory) { + param1WebView.clearHistory(); + this.shouldClearHistory = false; + } + } + + String getErrorUrl() { + return this.mErrorUrl; + } + + public void onPageFinished(WebView param1WebView, String param1String) { + super.onPageFinished(param1WebView, param1String); + if (param1String != null && !param1String.startsWith("file:///android_asset/error-page.html")) { + NativeWebView.WebViewCallback webViewCallback = this.mCallback; + if (webViewCallback != null) + webViewCallback.onPageFinished(param1WebView, param1String); + } + this.isLoadUrlByBack = false; + StringBuilder stringBuilder = new StringBuilder("window.isRenderInBrowser="); + stringBuilder.append(TTWebViewSupportWebView.isRenderInBrowserEnabled()); + stringBuilder.append(";"); + param1WebView.evaluateJavascript(stringBuilder.toString(), null); + AppBrandLogger.d("tma_NativeWebView", new Object[] { "onPageFinished url ", param1String }); + } + + public void onPageStarted(WebView param1WebView, String param1String, Bitmap param1Bitmap) { + super.onPageStarted(param1WebView, param1String, param1Bitmap); + AppBrandLogger.d("tma_NativeWebView", new Object[] { "onPageStarted url ", param1String }); + if (param1String != null && !param1String.startsWith("file:///android_asset/error-page.html")) { + NativeWebView.WebViewCallback webViewCallback = this.mCallback; + if (webViewCallback != null) + webViewCallback.onPageStart(param1WebView, param1String, param1Bitmap); + } + } + + public void onReceivedError(WebView param1WebView, int param1Int, String param1String1, String param1String2) { + if (param1String2 != null && !param1String2.startsWith("file:///android_asset/error-page.html")) { + NativeWebView.WebViewCallback webViewCallback = this.mCallback; + if (webViewCallback != null) + webViewCallback.onPageError(param1WebView, param1Int, param1String1, param1String2); + } + if (!this.isLoadUrlByBack) { + this.mErrorUrl = param1String2; + param1WebView.stopLoading(); + StringBuilder stringBuilder = new StringBuilder("file:///android_asset/error-page.html?language="); + stringBuilder.append(DevicesUtil.getLanguage()); + _lancet.com_ss_android_ugc_aweme_lancet_H5UrlCheckLancet_loadUrl(param1WebView, stringBuilder.toString()); + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("url", param1String2); + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(6, "tma_NativeWebView", jSONException.getStackTrace()); + } + if (Build.VERSION.SDK_INT >= 23) { + try { + jSONObject.put("code", param1Int); + jSONObject.put("errMsg", param1String1); + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(6, "tma_NativeWebView", jSONException.getStackTrace()); + } + AppBrandLogger.d("tma_NativeWebView", new Object[] { "onReceivedError WebResourceRequest ", param1String2, " ", param1String1, " ", Integer.valueOf(param1Int) }); + } + AppBrandMonitor.statusRate("mp_start_error", 3000, jSONObject); + } + } + + public void onReceivedHttpError(WebView param1WebView, WebResourceRequest param1WebResourceRequest, WebResourceResponse param1WebResourceResponse) { + AppBrandLogger.d("tma_NativeWebView", new Object[] { "onReceivedHttpError WebResourceRequest ", param1WebResourceRequest.getUrl().toString(), " ", Integer.valueOf(param1WebResourceResponse.getStatusCode()), " ", Boolean.valueOf(param1WebResourceRequest.isForMainFrame()) }); + super.onReceivedHttpError(param1WebView, param1WebResourceRequest, param1WebResourceResponse); + if (param1WebResourceRequest.isForMainFrame()) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("url", param1WebResourceRequest.getUrl().toString()); + jSONObject.put("code", param1WebResourceResponse.getStatusCode()); + jSONObject.put("errMsg", param1WebResourceResponse.getEncoding()); + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(6, "tma_NativeWebView", jSONException.getStackTrace()); + } + AppBrandMonitor.statusRate("mp_start_error", 3000, jSONObject); + } + } + + public boolean onRenderProcessGone(WebView param1WebView, RenderProcessGoneDetail param1RenderProcessGoneDetail) { + return c.a(param1WebView, param1RenderProcessGoneDetail); + } + + void setClearHistory(boolean param1Boolean) { + this.shouldClearHistory = param1Boolean; + } + + void setLoadUrlByBack(boolean param1Boolean) { + this.isLoadUrlByBack = param1Boolean; + } + + public void setWebResourceResponseInterceptor(NativeWebView.WebResourceResponseInterceptor param1WebResourceResponseInterceptor) { + this.mWebResourceResponseInterceptor = param1WebResourceResponseInterceptor; + } + + public void setWebViewCallback(NativeWebView.WebViewCallback param1WebViewCallback) { + this.mCallback = param1WebViewCallback; + } + + public WebResourceResponse shouldInterceptRequest(WebView param1WebView, WebResourceRequest param1WebResourceRequest) { + NativeWebView.WebResourceResponseInterceptor webResourceResponseInterceptor = this.mWebResourceResponseInterceptor; + if (webResourceResponseInterceptor != null) { + WebResourceResponse webResourceResponse = webResourceResponseInterceptor.interceptRequest(param1WebView, param1WebResourceRequest); + if (webResourceResponse != null) + return webResourceResponse; + } + return _lancet.com_ss_android_ugc_aweme_lancet_WebLancet_shouldInterceptRequest((WebViewClient)this, param1WebView, param1WebResourceRequest); + } + + public boolean shouldOverrideUrlLoading(WebView param1WebView, String param1String) { + AppBrandLogger.d("tma_NativeWebView", new Object[] { "shouldOverrideUrlLoading ", param1String }); + return shouldInterceptUrlLoading(param1WebView, param1String); + } + + class ComponentWebViewClient {} + } + + class NativeWebView {} + + public static interface WebResourceResponseInterceptor { + WebResourceResponse interceptRequest(WebView param1WebView, WebResourceRequest param1WebResourceRequest); + } + + public static interface WebViewCallback { + void onPageError(WebView param1WebView, int param1Int, String param1String1, String param1String2); + + void onPageFinished(WebView param1WebView, String param1String); + + void onPageStart(WebView param1WebView, String param1String, Bitmap param1Bitmap); + } + + class NativeWebView {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\NativeWebView.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/Position.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/Position.java new file mode 100644 index 0000000..47c78c6 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/Position.java @@ -0,0 +1,28 @@ +package com.tt.miniapp.component.nativeview; + +public class Position { + public int height; + + public boolean isFixed; + + public int width; + + public int x; + + public int y; + + public Position() {} + + public Position(int paramInt1, int paramInt2, int paramInt3, int paramInt4) { + this.x = paramInt1; + this.y = paramInt2; + this.width = paramInt3; + this.height = paramInt4; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\Position.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/ProgressBarView.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/ProgressBarView.java new file mode 100644 index 0000000..f71bf91 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/ProgressBarView.java @@ -0,0 +1,37 @@ +package com.tt.miniapp.component.nativeview; + +import android.content.Context; +import android.graphics.Canvas; +import android.widget.ProgressBar; + +public class ProgressBarView extends ProgressBar implements IProgressBar { + public ProgressBarView(Context paramContext) { + super(paramContext, null, 16842872); + } + + public void hide() { + setVisibility(8); + } + + public boolean isShown() { + return (super.isShown() && getVisibility() == 0); + } + + protected void onDraw(Canvas paramCanvas) { + super.onDraw(paramCanvas); + } + + public void setInternalProgress(int paramInt) { + setProgress(paramInt); + } + + public void show() { + setVisibility(0); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\ProgressBarView.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/TextArea.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/TextArea.java new file mode 100644 index 0000000..2c1715b --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/TextArea.java @@ -0,0 +1,1148 @@ +package com.tt.miniapp.component.nativeview; + +import android.graphics.Color; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.os.Build; +import android.text.Editable; +import android.text.InputFilter; +import android.text.Layout; +import android.text.Selection; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.widget.EditText; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.IKeyBoardStateChange; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.keyboarddetect.KeyboardHeightProvider; +import com.tt.miniapp.util.ConcaveScreenUtils; +import com.tt.miniapp.util.DevicesUtil; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapp.view.webcore.NativeNestWebView; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.language.LocaleManager; +import com.tt.miniapphost.util.CharacterUtils; +import com.tt.miniapphost.util.IllegalColorException; +import com.tt.miniapphost.util.JsonBuilder; +import com.tt.miniapphost.util.NativeDimenUtil; +import com.tt.miniapphost.util.UIUtils; +import com.tt.option.e.k; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.util.Stack; +import org.json.JSONException; +import org.json.JSONObject; + +public class TextArea extends EditText implements InputComponent, NativeComponent { + int cursor = -1; + + public boolean edFlag; + + private boolean isAdjustPosition = true; + + private boolean isFixed; + + private boolean mAutoBlur = true; + + public boolean mConfirm; + + private String mDataObject; + + boolean mHasFocus = false; + + public boolean mHasUpdated; + + public boolean mKeyBoardShow = false; + + private IKeyBoardStateChange mKeyBoardStateChange; + + public int mLineCount = 1; + + public TextAreaMode mModel; + + private NativeOffset mNaOffset; + + public NativeNestWebView mNativeNestWebView; + + public ViewTreeObserver.OnGlobalLayoutListener mOnGlobalLayoutListener; + + private AbsoluteLayout mParent; + + public WebViewManager.IRender mRender; + + int mSrceenH = UIUtils.getDeviceHeight(getContext()); + + int mTextAreaHeight = 0; + + public int mViewId; + + public int mWebViewId; + + private int marginBottom; + + int maxLength = -1; + + int selectionEnd = -1; + + int selectionStart = -1; + + public Stack stack = new Stack(); + + public TextArea(int paramInt1, AbsoluteLayout paramAbsoluteLayout, WebViewManager.IRender paramIRender, int paramInt2, NativeNestWebView paramNativeNestWebView) { + super(paramAbsoluteLayout.getContext()); + this.mViewId = paramInt1; + this.mParent = paramAbsoluteLayout; + this.mRender = paramIRender; + this.mWebViewId = paramInt2; + this.mNativeNestWebView = paramNativeNestWebView; + } + + private int getCurrentCursorLine() { + int i = Selection.getSelectionStart((CharSequence)getText()); + Layout layout = getLayout(); + return (i != -1) ? (layout.getLineForOffset(i) + 1) : -1; + } + + private float[] getCursorCoordinate() { + boolean bool2; + Class clazz = EditText.class.getSuperclass(); + try { + Field field1 = clazz.getDeclaredField("mEditor"); + field1.setAccessible(true); + Object object = field1.get(this); + Field field2 = Class.forName("android.widget.Editor").getDeclaredField("mCursorDrawable"); + field2.setAccessible(true); + Drawable[] arrayOfDrawable = (Drawable[])field2.get(object); + object = clazz.getDeclaredMethod("getVerticalOffset", new Class[] { boolean.class }); + Method method2 = clazz.getDeclaredMethod("getCompoundPaddingLeft", new Class[0]); + Method method1 = clazz.getDeclaredMethod("getExtendedPaddingTop", new Class[0]); + object.setAccessible(true); + method2.setAccessible(true); + method1.setAccessible(true); + if (arrayOfDrawable != null) { + Rect rect = arrayOfDrawable[0].getBounds(); + AppBrandLogger.e("tma_Textarea", new Object[] { rect.toString() }); + int i = ((Integer)method2.invoke(this, new Object[0])).intValue(); + bool2 = rect.left; + bool2 = i + bool2; + try { + i = ((Integer)method1.invoke(this, new Object[0])).intValue(); + int j = ((Integer)object.invoke(this, new Object[] { Boolean.valueOf(false) })).intValue(); + int k = rect.bottom; + i = i + j + k; + return new float[] { getX() + bool2, getY() + i }; + } catch (NoSuchMethodException|java.lang.reflect.InvocationTargetException|IllegalAccessException|NoSuchFieldException|ClassNotFoundException noSuchMethodException) {} + } else { + boolean bool = false; + bool2 = false; + return new float[] { getX() + bool2, getY() + bool }; + } + } catch (NoSuchMethodException|java.lang.reflect.InvocationTargetException|IllegalAccessException|NoSuchFieldException|ClassNotFoundException noSuchMethodException) { + bool2 = false; + } + boolean bool1 = false; + return new float[] { getX() + bool2, getY() + bool1 }; + } + + private void synHeightChangeWhenAddView() { + post(new Runnable() { + public void run() { + TextArea.this.syncHeightChangeToJs(); + } + }); + } + + private String transformColor(String paramString) { + if (TextUtils.isEmpty(paramString)) + return paramString; + String str = paramString; + if (paramString.charAt(0) == '#') { + str = paramString; + if (paramString.length() == 9) { + StringBuilder stringBuilder = new StringBuilder("#"); + stringBuilder.append(paramString.substring(7)); + stringBuilder.append(paramString.substring(1, 7)); + str = stringBuilder.toString(); + } + } + return str; + } + + private boolean updateCursor(String paramString) { + try { + JSONObject jSONObject = new JSONObject(paramString); + boolean bool = jSONObject.has("cursor"); + if (bool || jSONObject.has("selectionStart") || jSONObject.has("selectionEnd")) { + if (jSONObject.has("selectionStart")) { + this.selectionStart = jSONObject.optInt("selectionStart", -1); + if (jSONObject.has("selectionEnd")) { + this.selectionEnd = jSONObject.optInt("selectionEnd", -1); + if (this.selectionEnd <= this.selectionStart) { + this.cursor = this.selectionEnd; + this.selectionStart = -1; + this.selectionEnd = -1; + } + if (this.maxLength != -1) { + int i; + if (this.selectionEnd >= this.maxLength) { + i = this.selectionEnd - 1; + } else { + i = this.selectionEnd; + } + this.selectionEnd = i; + return true; + } + } + } else if (jSONObject.has("cursor")) { + this.cursor = jSONObject.optInt("cursor", -1); + if (this.maxLength != -1) { + int i; + if (this.cursor >= this.maxLength) { + i = this.maxLength - 1; + } else { + i = this.cursor; + } + this.cursor = i; + } + } + return true; + } + } catch (Exception exception) { + AppBrandLogger.e("tma_Textarea", new Object[] { "", exception }); + } + return false; + } + + public void addView(String paramString, k paramk) { + AppBrandLogger.i("tma_Textarea", new Object[] { "addView : ", paramString }); + TextAreaMode textAreaMode = TextAreaMode.parasTextAreaMode(paramString); + this.isFixed = textAreaMode.fixed; + this.isAdjustPosition = textAreaMode.adjustPosition; + this.mModel = textAreaMode; + this.mDataObject = textAreaMode.dataObject; + this.mConfirm = textAreaMode.confirm; + int n = textAreaMode.top; + int m = textAreaMode.left; + AppBrandLogger.i("tma_Textarea", new Object[] { "origin position:Left=", Integer.valueOf(m), ", Top=", Integer.valueOf(n), ", isFixed=", Boolean.valueOf(this.isFixed), ", curScroll: scrollX=", Integer.valueOf(this.mParent.getCurScrollX()), ", scrollY=", Integer.valueOf(this.mParent.getCurScrollY()) }); + int j = n; + int i = m; + if (!this.isFixed) { + j = n - this.mParent.getCurScrollY(); + i = m - this.mParent.getCurScrollX(); + AppBrandLogger.i("tma_Textarea", new Object[] { "not fixed:scrollX=", Integer.valueOf(this.mParent.getCurScrollX()), ", scrollY=", Integer.valueOf(this.mParent.getCurScrollY()), "; TextArea-position: Left=", Integer.valueOf(i), ", Top=", Integer.valueOf(j) }); + } + int i1 = textAreaMode.width; + String str = textAreaMode.placeHolder; + this.mAutoBlur = textAreaMode.autoBlur; + n = textAreaMode.minHeight; + m = n; + if (isAutoSize()) { + m = n; + if (n < textAreaMode.height) + m = textAreaMode.height; + } + if (m >= 0) + setMinHeight(m); + m = textAreaMode.maxHeight; + if (m > 0) + setMaxHeight(m); + this.marginBottom = textAreaMode.marginBottom; + setPadding(0, 0, 0, 0); + try { + setBackgroundColor(Color.parseColor(transformColor(textAreaMode.backgroundColor))); + } catch (IllegalArgumentException illegalArgumentException) { + setBackgroundColor(Color.parseColor("#ffffff")); + } + setOnFocusChangeListener(new View.OnFocusChangeListener() { + public void onFocusChange(View param1View, boolean param1Boolean) { + TextArea textArea = TextArea.this; + textArea.mHasFocus = param1Boolean; + if (textArea.mHasFocus) { + if ((TextArea.this.isVisibleInScreen() & TextArea.this.mHasFocus) != 0 && !TextArea.this.mKeyBoardShow) + TextArea.this.postDelayed(new Runnable() { + public void run() { + if (TextArea.this.mRender != null) + TextArea.this.mRender.showKeyboard(TextArea.this.mViewId); + } + }, 100L); + if (TextArea.this.mKeyBoardShow) { + TextArea.this.sendOnKeyboardShowEvent(); + return; + } + } else { + JSONObject jSONObject = (new JsonBuilder()).put("value", TextArea.this.getValue()).put("inputId", Integer.valueOf(TextArea.this.mViewId)).put("cursor", Integer.valueOf(TextArea.this.getCursor())).build(); + AppbrandApplicationImpl.getInst().getWebViewManager().publish(TextArea.this.mWebViewId, "onKeyboardComplete", jSONObject.toString()); + } + } + }); + this.maxLength = textAreaMode.maxLength; + if (this.maxLength > 0) + setFilters(new InputFilter[] { (InputFilter)new InputFilter.LengthFilter(textAreaMode.maxLength) }); + if (LocaleManager.getInst().isRTL()) { + setTextDirection(4); + setLayoutDirection(1); + setGravity(5); + } else { + AppBrandLogger.d("tma_Textarea", new Object[] { "NOT RTL!" }); + setGravity(3); + } + setHint(str); + setText(textAreaMode.value); + if (textAreaMode.lineSpace > 0) + setLineSpacing(textAreaMode.lineSpace, 1.0F); + setTextSize(textAreaMode.fontSize); + if (TextUtils.equals(textAreaMode.fontWeight, "bold")) { + getPaint().setFakeBoldText(true); + } else { + getPaint().setFakeBoldText(false); + } + if (textAreaMode.hasPlaceHolderStyle) { + if (!TextUtils.isEmpty(textAreaMode.placeHolderColor)) + try { + setHintTextColor(UIUtils.parseColor(textAreaMode.placeHolderColor)); + } catch (IllegalColorException illegalColorException) { + AppBrandLogger.eWithThrowable("tma_Textarea", "textArea placeHolderColor error", (Throwable)illegalColorException); + } + if (textAreaMode.placeHolderFontSize > 0) + setTextSize(textAreaMode.placeHolderFontSize); + if (TextUtils.equals(textAreaMode.placeHolderFontWeight, "bold")) { + getPaint().setFakeBoldText(true); + } else { + getPaint().setFakeBoldText(false); + } + } + try { + setTextColor(UIUtils.parseColor(textAreaMode.color)); + } catch (IllegalColorException illegalColorException) { + AppBrandLogger.eWithThrowable("tma_Textarea", "textArea color error", (Throwable)illegalColorException); + } + if (textAreaMode.height > 0 && !textAreaMode.autoSize) { + m = textAreaMode.height; + } else { + m = -2; + } + AbsoluteLayout.LayoutParams layoutParams = new AbsoluteLayout.LayoutParams(i1 + 1, m, i - 1, j); + if (textAreaMode.hasZIndex) + layoutParams.zIndex = textAreaMode.zIndex; + layoutParams.isFixed = this.isFixed; + this.mParent.addView((View)this, (ViewGroup.LayoutParams)layoutParams); + setPadding(1, 0, 0, 0); + setOnTouchListener(new View.OnTouchListener() { + public boolean onTouch(View param1View, MotionEvent param1MotionEvent) { + TextArea textArea = TextArea.this; + if (textArea.canVerticalScroll(textArea)) { + param1View.getParent().requestDisallowInterceptTouchEvent(true); + int i = param1MotionEvent.getAction() & 0xFF; + if (i != 0) { + if (i != 1) + return false; + param1View.getParent().requestDisallowInterceptTouchEvent(false); + } + } + return false; + } + }); + setEnabled(textAreaMode.disabled ^ true); + this.mKeyBoardStateChange = new IKeyBoardStateChange() { + public void onKeyboardHide() { + TextArea.this.mKeyBoardShow = false; + if (ConcaveScreenUtils.isVivoConcaveScreen()) { + if (TextArea.this.mConfirm) + TextArea.this.mNativeNestWebView.hideConfirmBar(); + TextArea.this.clearFocus(); + AppBrandLogger.e("tma_Textarea", new Object[] { "onKeyboardShow onKeyboardHide ", (new JsonBuilder()).put("inputId", Integer.valueOf(this.this$0.mViewId)).put("cursor", Integer.valueOf(this.this$0.getCursor())).put("value", this.this$0.getValue()).build().toString() }); + } + while (!TextArea.this.stack.empty()) + TextArea.this.stack.pop(); + if (TextArea.this.mConfirm) + TextArea.this.mNativeNestWebView.hideConfirmBar(); + TextArea.this.clearFocus(); + } + + public void onKeyboardShow(int param1Int1, int param1Int2) { + TextArea textArea = TextArea.this; + textArea.mKeyBoardShow = true; + if (textArea.mConfirm) + TextArea.this.mNativeNestWebView.showConfirmBar(); + if (TextArea.this.mHasFocus) + TextArea.this.sendOnKeyboardShowEvent(); + } + }; + if (textAreaMode.confirm) + this.mConfirm = true; + this.mNativeNestWebView.registerKeyBoardStateChange(this.mKeyBoardStateChange); + if (!TextUtils.isEmpty((CharSequence)getText())) + setSelection(getText().length()); + addTextChangedListener(new TextWatcher() { + public void afterTextChanged(Editable param1Editable) { + int i; + if (TextArea.this.mHasUpdated) { + TextArea.this.mHasUpdated = false; + } else { + TextArea.this.syncChangeToJs(); + } + if (TextArea.this.edFlag) + return; + TextArea textArea = TextArea.this; + textArea.edFlag = true; + textArea.mTextAreaHeight = (textArea.getCursorRect()).bottom; + if (!TextArea.this.isAutoSize()) { + textArea = TextArea.this; + textArea.mTextAreaHeight = textArea.getMeasuredHeight(); + } + StringBuilder stringBuilder = new StringBuilder("mTextAreaHeight = "); + stringBuilder.append(TextArea.this.mTextAreaHeight); + AppBrandLogger.e("tma_Textarea", new Object[] { stringBuilder.toString() }); + if (TextArea.this.getText().length() == 0) { + i = 0; + } else { + i = TextArea.this.getLineCount(); + } + if (i != TextArea.this.mLineCount) { + if (TextArea.this.isAutoSize() || (TextArea.this.getLayoutParams()).height == -2) { + TextArea.this.smoothOffsetTopAndBottom(); + TextArea.this.edFlag = false; + return; + } + TextArea.this.syncHeightChangeToJs(); + int k = (TextArea.this.getCursorRect()).bottom; + int j = k; + if (k > TextArea.this.mTextAreaHeight) { + j = k; + if (!TextArea.this.isAutoSize()) + j = TextArea.this.mTextAreaHeight; + } + k = KeyboardHeightProvider.getKeyboardHeight(); + int[] arrayOfInt = new int[2]; + TextArea.this.getLocationOnScreen(arrayOfInt); + int m = arrayOfInt[1]; + if (TextArea.this.needToSmoothOffset() && i > TextArea.this.mLineCount && j + m > TextArea.this.mSrceenH - k) { + i = TextArea.this.mSrceenH - k - j - m; + TextArea.this.stack.push(Integer.valueOf(i)); + TextArea.this.mNativeNestWebView.smoothOffsetTopAndBottom(i, true, (View)TextArea.this); + } else if (!TextArea.this.stack.empty() && i < TextArea.this.mLineCount && j + m < TextArea.this.mSrceenH - k) { + i = -((Integer)TextArea.this.stack.pop()).intValue(); + TextArea.this.mNativeNestWebView.smoothOffsetTopAndBottom(i, true, (View)TextArea.this); + } + } + TextArea.this.edFlag = false; + } + + public void beforeTextChanged(CharSequence param1CharSequence, int param1Int1, int param1Int2, int param1Int3) { + TextArea textArea = TextArea.this; + if (textArea.getText().length() == 0) { + param1Int1 = 0; + } else { + param1Int1 = TextArea.this.getLineCount(); + } + textArea.mLineCount = param1Int1; + } + + public void onTextChanged(CharSequence param1CharSequence, int param1Int1, int param1Int2, int param1Int3) {} + }); + synHeightChangeWhenAddView(); + } + + public boolean canVerticalScroll(EditText paramEditText) { + try { + int i = paramEditText.getScrollY(); + int j = paramEditText.getLayout().getHeight(); + int k = paramEditText.getHeight(); + int m = paramEditText.getCompoundPaddingTop(); + int n = paramEditText.getCompoundPaddingBottom(); + j -= k - m - n; + return (j == 0) ? false : ((i <= 0) ? ((i < j - 1)) : true); + } catch (Exception exception) { + AppBrandLogger.e("tma_Textarea", new Object[] { exception }); + return false; + } + } + + public boolean getConfirm() { + return this.mConfirm; + } + + public int getCursor() { + return getSelectionStart(); + } + + public Rect getCursorRect() { + Rect rect = new Rect(); + int i = getSelectionStart(); + Layout layout = getLayout(); + layout.getLineBounds(layout.getLineForOffset(i), rect); + return rect; + } + + public int getInputHeight() { + int i; + if (getCurrentCursorLine() * getLineHeight() > getMeasuredHeight()) { + i = getMeasuredHeight(); + } else { + i = getCurrentCursorLine() * getLineHeight(); + } + int k = this.marginBottom; + int j = i; + if (k > 0) { + if (k >= getBottom() - getTop() - i) { + j = getBottom() - getTop() - i; + } else { + j = this.marginBottom; + } + this.marginBottom = j; + j = i + this.marginBottom; + } + return j; + } + + public String getType() { + return "textarea"; + } + + public String getValue() { + return getText().toString(); + } + + public boolean hasFocus() { + return this.mHasFocus; + } + + public boolean isAdjustPosition() { + return this.isAdjustPosition; + } + + public boolean isAutoBlur() { + return this.mAutoBlur; + } + + public boolean isAutoSize() { + TextAreaMode textAreaMode = this.mModel; + return (textAreaMode != null && textAreaMode.autoSize); + } + + public boolean isFixed() { + return this.isFixed; + } + + public boolean isVisibleInScreen() { + return getLocalVisibleRect(new Rect(0, 0, DevicesUtil.getScreenWidth(getContext()), DevicesUtil.getScreenHight(getContext()))); + } + + public boolean needToSmoothOffset() { + int i; + int k = KeyboardHeightProvider.getKeyboardHeight(); + int j = (getCursorRect()).bottom; + if (isAutoSize()) { + if (j < this.mModel.minHeight) { + i = (getCursorRect()).bottom; + } else { + i = j; + if (j > this.mModel.maxHeight) { + i = j; + if (this.mModel.maxHeight > 0) + i = this.mModel.maxHeight; + } + } + } else { + i = j; + if (j > getMeasuredHeight()) + i = getMeasuredHeight(); + } + j = this.mTextAreaHeight; + int[] arrayOfInt = new int[2]; + getLocationOnScreen(arrayOfInt); + int m = arrayOfInt[1]; + int n = this.mSrceenH; + return (m + j > n - k && i + arrayOfInt[1] > n - k); + } + + public boolean onBackPressed() { + return false; + } + + public void onDestroy() {} + + public void onViewPause() {} + + public void onViewResume() {} + + public void removeView(int paramInt, k paramk) { + if (this.mOnGlobalLayoutListener != null) { + getViewTreeObserver().removeOnGlobalLayoutListener(this.mOnGlobalLayoutListener); + this.mOnGlobalLayoutListener = null; + } + IKeyBoardStateChange iKeyBoardStateChange = this.mKeyBoardStateChange; + if (iKeyBoardStateChange != null) + this.mNativeNestWebView.unregisterKeyBoardStateChange(iKeyBoardStateChange); + } + + public boolean requestRectangleOnScreen(Rect paramRect, boolean paramBoolean) { + if (Build.VERSION.SDK_INT >= 17 && Build.VERSION.SDK_INT <= 23) + paramRect.offset(-getScrollX(), -getScrollY()); + return super.requestRectangleOnScreen(paramRect, paramBoolean); + } + + public void sendOnKeyboardShowEvent() { + JSONObject jSONObject = (new JsonBuilder()).put("inputId", Integer.valueOf(this.mViewId)).put("height", Integer.valueOf(NativeDimenUtil.convertPxToRx(KeyboardHeightProvider.getKeyboardHeight()))).build(); + AppbrandApplicationImpl.getInst().getWebViewManager().publish(this.mWebViewId, "onKeyboardShow", jSONObject.toString()); + } + + public void setSelection(int paramInt) { + if (paramInt <= getText().length()) + super.setSelection(paramInt); + } + + public void setSelection(int paramInt1, int paramInt2) { + int i = getText().length(); + if (paramInt2 <= i && paramInt1 < i) { + super.setSelection(paramInt1, paramInt2); + return; + } + if (i < paramInt2 && i > paramInt1) + super.setSelection(paramInt1, i); + } + + public void setValue(String paramString) { + setText(paramString); + } + + public void smoothOffsetTopAndBottom() { + final int lines; + if (getText().length() == 0) { + i = 0; + } else { + i = getLineCount(); + } + if (i != this.mLineCount) { + syncHeightChangeToJs(); + postDelayed(new Runnable() { + public void run() { + if ((TextArea.this.isAutoSize() || (TextArea.this.getLayoutParams()).height == -2) && TextArea.this.mTextAreaHeight > TextArea.this.mModel.maxHeight && TextArea.this.mModel.maxHeight > 0) { + TextArea textArea = TextArea.this; + textArea.mTextAreaHeight = textArea.mModel.maxHeight; + } else if (TextArea.this.isAutoSize() && TextArea.this.mTextAreaHeight < TextArea.this.mModel.minHeight) { + TextArea textArea = TextArea.this; + textArea.mTextAreaHeight = textArea.mModel.minHeight; + } + int i = (TextArea.this.getCursorRect()).bottom - TextArea.this.getScrollY(); + int j = KeyboardHeightProvider.getKeyboardHeight(); + int[] arrayOfInt = new int[2]; + TextArea.this.getLocationOnScreen(arrayOfInt); + int k = arrayOfInt[1]; + StringBuilder stringBuilder = new StringBuilder("当前TextArea底部坐标"); + int m = i + k; + stringBuilder.append(m); + AppBrandLogger.e("tma_Textarea", new Object[] { stringBuilder.toString(), "键盘顶部坐标", Integer.valueOf(this.this$0.mSrceenH - j) }); + if (TextArea.this.needToSmoothOffset() && lines > TextArea.this.mLineCount && m > TextArea.this.mSrceenH - j) { + i = TextArea.this.mSrceenH - j - i - k; + AppBrandLogger.e("tma_Textarea", new Object[] { "偏移量", Integer.valueOf(i) }); + TextArea.this.stack.push(Integer.valueOf(i)); + TextArea.this.mNativeNestWebView.smoothOffsetTopAndBottom(i, true, (View)TextArea.this); + return; + } + if (!TextArea.this.stack.empty() && lines < TextArea.this.mLineCount && m < TextArea.this.mSrceenH - j) { + i = -((Integer)TextArea.this.stack.pop()).intValue(); + TextArea.this.mNativeNestWebView.smoothOffsetTopAndBottom(i, true, (View)TextArea.this); + } + } + }60L); + } + } + + public void syncChangeToJs() { + try { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("value", getValue()); + jSONObject.put("inputId", this.mViewId); + jSONObject.put("cursor", getCursor()); + jSONObject.put("data", this.mDataObject); + AppbrandApplication.getInst().getJsBridge().sendMsgToJsCore("onKeyboardValueChange", jSONObject.toString(), this.mWebViewId); + return; + } catch (JSONException jSONException) { + AppBrandLogger.stacktrace(6, "tma_Textarea", jSONException.getStackTrace()); + return; + } + } + + public void syncHeightChangeToJs() { + try { + int i = (getCursorRect()).bottom; + if (isAutoSize()) + i = getLayout().getHeight(); + StringBuilder stringBuilder = new StringBuilder("文本内容高度: "); + stringBuilder.append(i); + String str = stringBuilder.toString(); + boolean bool = false; + AppBrandLogger.e("tma_Textarea", new Object[] { str }); + JSONObject jSONObject = new JSONObject(); + jSONObject.put("height", NativeDimenUtil.convertPxToRx(i)); + jSONObject.put("inputId", this.mViewId); + if (getText().length() == 0) { + i = bool; + } else { + i = getLineCount(); + } + jSONObject.put("lineCount", i); + AppbrandApplicationImpl.getInst().getWebViewManager().publish(this.mWebViewId, "onTextAreaHeightChange", jSONObject.toString()); + return; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "tma_Textarea", exception.getStackTrace()); + return; + } + } + + public void updateView(String paramString, k paramk) { + boolean bool; + if (updateCursor(paramString)) { + if (!hasFocus()) + requestFocus(); + if (this.mOnGlobalLayoutListener != null) { + getViewTreeObserver().removeOnGlobalLayoutListener(this.mOnGlobalLayoutListener); + this.mOnGlobalLayoutListener = null; + } + this.mOnGlobalLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() { + public void onGlobalLayout() { + if ((TextArea.this.isVisibleInScreen() & TextArea.this.mHasFocus) != 0 && !TextArea.this.mKeyBoardShow) { + TextArea.this.postDelayed(new Runnable() { + public void run() { + if (TextArea.this.mRender != null) + TextArea.this.mRender.showKeyboard(TextArea.this.mViewId); + } + }, 100L); + TextArea.this.getViewTreeObserver().removeOnGlobalLayoutListener(this); + TextArea.this.mOnGlobalLayoutListener = null; + } + } + }; + getViewTreeObserver().addOnGlobalLayoutListener(this.mOnGlobalLayoutListener); + if (this.selectionStart != -1) { + if (!hasFocus()) + requestFocus(); + int i = this.selectionEnd; + if (i == -1) { + setSelection(this.selectionStart, getText().length()); + } else { + if (i > getText().length()) + this.selectionEnd = getText().length(); + setSelection(this.selectionStart, this.selectionEnd); + } + } + bool = this.cursor; + if (bool != -1) { + if (bool > getText().length()) + this.cursor = getText().length(); + setSelection(this.cursor); + } + return; + } + TextAreaMode textAreaMode = TextAreaMode.updateTextAreaMode(this.mModel, paramString); + if (textAreaMode.hasPlaceHolder) + setHint(textAreaMode.placeHolder); + if (textAreaMode.hasBackgroundColor) + try { + setBackgroundColor(Color.parseColor(transformColor(textAreaMode.backgroundColor))); + } catch (IllegalArgumentException illegalArgumentException) { + AppBrandLogger.e("tma_Textarea", new Object[] { "TextArea parse backgroundColor failed" }); + } + if (textAreaMode.hasPlaceHolderStyle) { + if (!TextUtils.isEmpty(textAreaMode.placeHolderColor)) + try { + setHintTextColor(UIUtils.parseColor(textAreaMode.placeHolderColor)); + } catch (IllegalColorException illegalColorException) { + AppBrandLogger.eWithThrowable("tma_Textarea", "textarea placeHolderColor error", (Throwable)illegalColorException); + } + if (textAreaMode.placeHolderFontSize > 0) + setTextSize(textAreaMode.placeHolderFontSize); + } + if (textAreaMode.maxLength > 0) + setFilters(new InputFilter[] { (InputFilter)new InputFilter.LengthFilter(textAreaMode.maxLength) }); + if (textAreaMode.hasValue && !TextUtils.equals(getValue(), textAreaMode.value) && textAreaMode.mValueUpdate) { + this.mHasUpdated = true; + setText(textAreaMode.value); + setSelection(CharacterUtils.length(textAreaMode.value)); + } + AbsoluteLayout.LayoutParams layoutParams = (AbsoluteLayout.LayoutParams)getLayoutParams(); + if (textAreaMode.hasStyle) { + bool = this.mParent.getCurScrollX(); + int i = this.mParent.getCurScrollY(); + if (textAreaMode.fixed) { + bool = false; + i = 0; + } + layoutParams.x = textAreaMode.left - bool; + layoutParams.y = textAreaMode.top - i; + this.mParent.updateCurScrollXY(this.mViewId); + layoutParams.width = textAreaMode.width; + if (textAreaMode.height > 0 && !isAutoSize()) { + bool = textAreaMode.height; + } else { + bool = true; + } + layoutParams.height = bool; + try { + setTextColor(UIUtils.parseColor(textAreaMode.color)); + } catch (IllegalColorException illegalColorException) { + AppBrandLogger.eWithThrowable("tma_Textarea", "textArea color error", (Throwable)illegalColorException); + } + bool = true; + } else { + bool = false; + } + if (textAreaMode.hasZIndex) { + layoutParams.zIndex = textAreaMode.zIndex; + bool = true; + } + if (textAreaMode.hasFixed) + layoutParams.isFixed = textAreaMode.fixed; + setEnabled(textAreaMode.disabled ^ true); + if (textAreaMode.hidden) { + setVisibility(8); + } else { + setVisibility(0); + } + this.mAutoBlur = textAreaMode.autoBlur; + if (bool) + requestLayout(); + textAreaMode.mValueUpdate = false; + } + + public static class TextAreaMode { + boolean adjustPosition; + + boolean autoBlur = true; + + boolean autoSize; + + String backgroundColor; + + String color; + + boolean confirm; + + String dataObject; + + boolean disabled; + + boolean fixed; + + String fontFamily; + + int fontSize; + + String fontWeight; + + boolean hasAutoSize; + + boolean hasBackgroundColor; + + boolean hasFixed; + + boolean hasPlaceHolder; + + boolean hasPlaceHolderStyle; + + boolean hasStyle; + + boolean hasValue; + + boolean hasZIndex; + + int height; + + boolean hidden; + + int left; + + int lineSpace; + + public boolean mValueUpdate; + + int marginBottom; + + int maxHeight; + + int maxLength; + + int minHeight; + + int parentId; + + String placeHolder; + + String placeHolderColor; + + int placeHolderFontSize; + + String placeHolderFontWeight; + + String placeHolderontFaFmily; + + String textAlign; + + int top; + + String value; + + int width; + + int zIndex; + + static TextAreaMode parasTextAreaMode(String param1String) { + TextAreaMode textAreaMode = new TextAreaMode(); + try { + JSONObject jSONObject1 = new JSONObject(param1String); + if (jSONObject1.has("confirm")) + textAreaMode.confirm = jSONObject1.optBoolean("confirm"); + textAreaMode.parentId = jSONObject1.optInt("parentId"); + textAreaMode.dataObject = jSONObject1.optString("data"); + if (jSONObject1.has("fixed")) { + textAreaMode.hasFixed = true; + textAreaMode.fixed = jSONObject1.optBoolean("fixed"); + } + textAreaMode.adjustPosition = jSONObject1.optBoolean("adjustPosition", true); + JSONObject jSONObject2 = jSONObject1.optJSONObject("style"); + if (jSONObject2 != null) { + textAreaMode.hasStyle = true; + textAreaMode.width = jSONObject2.optInt("width"); + if (textAreaMode.width > 0) + textAreaMode.width = NativeDimenUtil.convertRxToPx(textAreaMode.width); + textAreaMode.left = jSONObject2.optInt("left"); + if (textAreaMode.left != 0) + textAreaMode.left = NativeDimenUtil.convertRxToPx(textAreaMode.left); + textAreaMode.minHeight = jSONObject2.optInt("minHeight"); + if (textAreaMode.minHeight > 0) + textAreaMode.minHeight = NativeDimenUtil.convertRxToPx(textAreaMode.minHeight); + textAreaMode.maxHeight = jSONObject2.optInt("maxHeight"); + if (textAreaMode.maxHeight > 0) + textAreaMode.maxHeight = NativeDimenUtil.convertRxToPx(textAreaMode.maxHeight); + textAreaMode.top = jSONObject2.optInt("top"); + if (textAreaMode.top != 0) + textAreaMode.top = NativeDimenUtil.convertRxToPx(textAreaMode.top); + textAreaMode.fontWeight = jSONObject2.optString("fontWeight"); + textAreaMode.fontFamily = jSONObject2.optString("fontFamily"); + textAreaMode.fontSize = jSONObject2.optInt("fontSize"); + textAreaMode.lineSpace = jSONObject2.optInt("lineSpace"); + if (textAreaMode.lineSpace > 0) + textAreaMode.lineSpace = NativeDimenUtil.convertRxToPx(textAreaMode.lineSpace); + textAreaMode.textAlign = jSONObject2.optString("textAlign"); + textAreaMode.color = UIUtils.rgbaToFullARGBStr(jSONObject2.optString("color"), "#000000"); + textAreaMode.backgroundColor = UIUtils.rgbaToFullARGBStr(jSONObject2.optString("backgroundColor"), "#ffffff"); + textAreaMode.marginBottom = jSONObject2.optInt("marginBottom"); + if (textAreaMode.marginBottom > 0) + textAreaMode.marginBottom = NativeDimenUtil.convertRxToPx(textAreaMode.marginBottom); + textAreaMode.height = jSONObject2.optInt("height"); + if (textAreaMode.height > 0) + textAreaMode.height = NativeDimenUtil.convertRxToPx(textAreaMode.height); + } + textAreaMode.maxLength = jSONObject1.optInt("maxLength"); + if (jSONObject1.has("placeholder") && !TextUtils.isEmpty(jSONObject1.optString("placeholder"))) { + textAreaMode.hasPlaceHolder = true; + textAreaMode.placeHolder = jSONObject1.optString("placeholder"); + } + jSONObject2 = jSONObject1.optJSONObject("placeholderStyle"); + if (jSONObject2 != null) { + textAreaMode.hasPlaceHolderStyle = true; + textAreaMode.placeHolderColor = UIUtils.rgbaToFullARGBStr(jSONObject2.optString("color"), "#888888"); + textAreaMode.placeHolderFontSize = jSONObject2.optInt("fontSize"); + textAreaMode.placeHolderFontWeight = jSONObject2.optString("fontWeight"); + textAreaMode.placeHolderontFaFmily = jSONObject2.optString("fontFamily"); + } + textAreaMode.disabled = jSONObject1.optBoolean("disabled"); + textAreaMode.hidden = jSONObject1.optBoolean("hidden"); + textAreaMode.autoSize = jSONObject1.optBoolean("autoSize"); + if (jSONObject1.has("value") && !TextUtils.isEmpty(jSONObject1.optString("value"))) { + textAreaMode.hasValue = true; + textAreaMode.value = jSONObject1.optString("value"); + } + if (jSONObject1.has("autoBlur")) + textAreaMode.autoBlur = jSONObject1.getBoolean("autoBlur"); + if (jSONObject1.has("zIndex")) { + textAreaMode.hasZIndex = true; + textAreaMode.zIndex = jSONObject1.optInt("zIndex"); + } + return textAreaMode; + } catch (JSONException jSONException) { + return textAreaMode; + } + } + + static TextAreaMode updateTextAreaMode(TextAreaMode param1TextAreaMode, String param1String) { + try { + JSONObject jSONObject1 = new JSONObject(param1String); + if (jSONObject1.has("confirm")) + param1TextAreaMode.confirm = jSONObject1.optBoolean("confirm"); + if (jSONObject1.has("parentId")) + param1TextAreaMode.parentId = jSONObject1.optInt("parentId"); + if (jSONObject1.has("data")) + param1TextAreaMode.dataObject = jSONObject1.optString("data"); + if (jSONObject1.has("fixed")) { + param1TextAreaMode.hasFixed = true; + param1TextAreaMode.fixed = jSONObject1.optBoolean("fixed"); + } else { + param1TextAreaMode.hasFixed = false; + } + JSONObject jSONObject2 = jSONObject1.optJSONObject("style"); + if (jSONObject2 != null) { + param1TextAreaMode.hasStyle = true; + param1TextAreaMode.width = jSONObject2.optInt("width"); + if (param1TextAreaMode.width > 0) + param1TextAreaMode.width = NativeDimenUtil.convertRxToPx(param1TextAreaMode.width); + if (jSONObject2.has("left")) + param1TextAreaMode.left = NativeDimenUtil.convertRxToPx(jSONObject2.optInt("left")); + param1TextAreaMode.minHeight = jSONObject2.optInt("minHeight"); + if (param1TextAreaMode.minHeight > 0) + param1TextAreaMode.minHeight = NativeDimenUtil.convertRxToPx(param1TextAreaMode.minHeight); + param1TextAreaMode.maxHeight = jSONObject2.optInt("maxHeight"); + if (param1TextAreaMode.maxHeight > 0) + param1TextAreaMode.maxHeight = NativeDimenUtil.convertRxToPx(param1TextAreaMode.maxHeight); + if (jSONObject2.has("top")) + param1TextAreaMode.top = NativeDimenUtil.convertRxToPx(jSONObject2.optInt("top")); + param1TextAreaMode.fontWeight = jSONObject2.optString("fontWeight"); + param1TextAreaMode.fontFamily = jSONObject2.optString("fontFamily"); + param1TextAreaMode.fontSize = jSONObject2.optInt("fontSize"); + param1TextAreaMode.lineSpace = jSONObject2.optInt("lineSpace"); + if (param1TextAreaMode.lineSpace > 0) + param1TextAreaMode.lineSpace = NativeDimenUtil.convertRxToPx(param1TextAreaMode.lineSpace); + param1TextAreaMode.textAlign = jSONObject2.optString("textAlign"); + param1TextAreaMode.color = jSONObject2.optString("color"); + if (jSONObject2.has("backgroundColor")) { + param1TextAreaMode.hasBackgroundColor = true; + param1TextAreaMode.backgroundColor = jSONObject2.optString("backgroundColor"); + } + param1TextAreaMode.marginBottom = jSONObject2.optInt("marginBottom"); + if (param1TextAreaMode.marginBottom > 0) + param1TextAreaMode.marginBottom = NativeDimenUtil.convertRxToPx(param1TextAreaMode.marginBottom); + param1TextAreaMode.height = jSONObject2.optInt("height"); + if (param1TextAreaMode.height > 0) + param1TextAreaMode.height = NativeDimenUtil.convertRxToPx(param1TextAreaMode.height); + } else { + param1TextAreaMode.hasStyle = false; + } + if (jSONObject1.has("maxLength")) + param1TextAreaMode.maxLength = jSONObject1.optInt("maxLength"); + if (jSONObject1.has("placeholder")) { + param1TextAreaMode.hasPlaceHolder = true; + param1TextAreaMode.placeHolder = jSONObject1.optString("placeholder"); + } + jSONObject2 = jSONObject1.optJSONObject("placeholderStyle"); + if (jSONObject2 != null) { + param1TextAreaMode.hasPlaceHolderStyle = true; + param1TextAreaMode.placeHolderColor = jSONObject2.optString("color"); + param1TextAreaMode.placeHolderFontSize = jSONObject2.optInt("fontSize"); + param1TextAreaMode.placeHolderFontWeight = jSONObject2.optString("fontWeight"); + param1TextAreaMode.placeHolderontFaFmily = jSONObject2.optString("fontFamily"); + } + if (jSONObject1.has("disabled")) + param1TextAreaMode.disabled = jSONObject1.optBoolean("disabled"); + if (jSONObject1.has("hidden")) + param1TextAreaMode.hidden = jSONObject1.optBoolean("hidden"); + if (jSONObject1.has("autoSize")) + param1TextAreaMode.autoSize = jSONObject1.optBoolean("autoSize"); + if (jSONObject1.has("value")) { + param1TextAreaMode.mValueUpdate = true; + param1TextAreaMode.hasValue = true; + param1TextAreaMode.value = jSONObject1.optString("value"); + } + if (jSONObject1.has("autoBlur")) + param1TextAreaMode.autoBlur = jSONObject1.getBoolean("autoBlur"); + if (jSONObject1.has("zIndex")) { + param1TextAreaMode.hasZIndex = true; + param1TextAreaMode.zIndex = jSONObject1.optInt("zIndex"); + return param1TextAreaMode; + } + param1TextAreaMode.hasZIndex = false; + return param1TextAreaMode; + } catch (JSONException jSONException) { + return param1TextAreaMode; + } + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("TextAreaMode{parentId="); + stringBuilder.append(this.parentId); + stringBuilder.append(", width="); + stringBuilder.append(this.width); + stringBuilder.append(", left="); + stringBuilder.append(this.left); + stringBuilder.append(", minHeight="); + stringBuilder.append(this.minHeight); + stringBuilder.append(", maxHeight="); + stringBuilder.append(this.maxHeight); + stringBuilder.append(", top="); + stringBuilder.append(this.top); + stringBuilder.append(", hasStyle="); + stringBuilder.append(this.hasStyle); + stringBuilder.append(", fontWeight='"); + stringBuilder.append(this.fontWeight); + stringBuilder.append('\''); + stringBuilder.append(", fontFamily='"); + stringBuilder.append(this.fontFamily); + stringBuilder.append('\''); + stringBuilder.append(", fontSize="); + stringBuilder.append(this.fontSize); + stringBuilder.append(", lineSpace="); + stringBuilder.append(this.lineSpace); + stringBuilder.append(", textAlign='"); + stringBuilder.append(this.textAlign); + stringBuilder.append('\''); + stringBuilder.append(", color='"); + stringBuilder.append(this.color); + stringBuilder.append('\''); + stringBuilder.append(", marginBottom="); + stringBuilder.append(this.marginBottom); + stringBuilder.append(", height="); + stringBuilder.append(this.height); + stringBuilder.append(", maxLength="); + stringBuilder.append(this.maxLength); + stringBuilder.append(", hasPlaceHolder="); + stringBuilder.append(this.hasPlaceHolder); + stringBuilder.append(", placeHolder='"); + stringBuilder.append(this.placeHolder); + stringBuilder.append('\''); + stringBuilder.append(", disabled="); + stringBuilder.append(this.disabled); + stringBuilder.append(", hidden="); + stringBuilder.append(this.hidden); + stringBuilder.append(", autoSize="); + stringBuilder.append(this.autoSize); + stringBuilder.append(", confirm="); + stringBuilder.append(this.confirm); + stringBuilder.append(", fixed="); + stringBuilder.append(this.fixed); + stringBuilder.append(", value='"); + stringBuilder.append(this.value); + stringBuilder.append('\''); + stringBuilder.append(", hasValue="); + stringBuilder.append(this.hasValue); + stringBuilder.append(", dataObject='"); + stringBuilder.append(this.dataObject); + stringBuilder.append('\''); + stringBuilder.append(", hasPlaceHolderStyle="); + stringBuilder.append(this.hasPlaceHolderStyle); + stringBuilder.append(", placeHolderFontSize="); + stringBuilder.append(this.placeHolderFontSize); + stringBuilder.append(", placeHolderFontWeight='"); + stringBuilder.append(this.placeHolderFontWeight); + stringBuilder.append('\''); + stringBuilder.append(", placeHolderontFaFmily='"); + stringBuilder.append(this.placeHolderontFaFmily); + stringBuilder.append('\''); + stringBuilder.append(", placeHolderColor='"); + stringBuilder.append(this.placeHolderColor); + stringBuilder.append('\''); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\TextArea.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/bridge/AdWebBridge.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/bridge/AdWebBridge.java new file mode 100644 index 0000000..08a51a2 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/bridge/AdWebBridge.java @@ -0,0 +1,269 @@ +package com.tt.miniapp.component.nativeview.bridge; + +import android.text.TextUtils; +import android.webkit.JavascriptInterface; +import com.bytedance.sandboxapp.b.a; +import com.bytedance.sandboxapp.protocol.service.api.a; +import com.bytedance.sandboxapp.protocol.service.api.a.a; +import com.bytedance.sandboxapp.protocol.service.api.b.a; +import com.bytedance.sandboxapp.protocol.service.api.b.b; +import com.bytedance.sandboxapp.protocol.service.api.b.c; +import com.bytedance.sandboxapp.protocol.service.api.entity.ApiCallbackData; +import com.bytedance.sandboxapp.protocol.service.api.entity.a; +import com.bytedance.sandboxapp.protocol.service.api.entity.b; +import com.storage.async.Action; +import com.tt.frontendapiinterface.ApiCallResult; +import com.tt.frontendapiinterface.a; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.component.nativeview.NativeWebView; +import com.tt.miniapp.msg.MiniAppApiInvokeParam; +import com.tt.miniapp.thread.ThreadPools; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapp.webbridge.WebComponentBridge; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import com.tt.miniapphost.util.CharacterUtils; +import com.tt.miniapphost.util.DebugUtil; +import com.tt.option.e.e; +import org.json.JSONObject; + +public class AdWebBridge extends WebComponentBridge { + private a mApiRuntime = ((a)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(a.class)).a(); + + private c mAsyncApiHandleExecutor = new c() { + public void scheduleHandle(final Runnable asyncApiHandleRunnable) { + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + asyncApiHandleRunnable.run(); + } + }, ThreadPools.defaults()); + } + }; + + private a mJSCoreApiRuntime = new a() { + public a getContext() { + return (a)AppbrandApplicationImpl.getInst().getMiniAppContext(); + } + + public b handleApiInvoke(a param1a) { + AdWebBridge.this.publishWebView(param1a.b, param1a.a().toString()); + return b.d; + } + + public boolean isDestroyed() { + return false; + } + }; + + public AdWebBridge(NativeWebView paramNativeWebView) { + super(paramNativeWebView); + } + + private void monitorInvokeApiFailed(String paramString1, String paramString2, String paramString3) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("eventName", paramString1); + jSONObject.put("invokeMethodName", paramString2); + jSONObject.put("errorMessage", paramString3); + AppBrandMonitor.statusRate("mp_invoke_api_failed", 7000, jSONObject); + return; + } catch (Exception exception) { + AppBrandLogger.e("AdWebBridge", new Object[] { exception }); + return; + } + } + + public void callbackWebView(String paramString1, int paramInt, String paramString2) { + if (!TextUtils.isEmpty(paramString2) && paramString2.contains(":fail")) { + AppBrandLogger.e("AdWebBridge", new Object[] { "******************callbackWebView callbackID ", Integer.valueOf(paramInt), "msg:", paramString2, new Throwable() }); + monitorInvokeApiFailed(paramString1, "callbackWebView", paramString2); + } else { + AppBrandLogger.d("AdWebBridge", new Object[] { "callbackWebView callbackID ", Integer.valueOf(paramInt), "msg:", paramString2 }); + } + WebViewManager webViewManager = AppbrandApplicationImpl.getInst().getWebViewManager(); + if (webViewManager != null) + webViewManager.invokeHandler(this.mWebViewId, paramInt, paramString2); + } + + @JavascriptInterface + public String invoke(final String event, String paramString2, final int callbackId) { + a a1; + b b; + final String param; + if (event == null) + return CharacterUtils.empty(); + byte b1 = 6; + AppBrandLogger.d("AdWebBridge", new Object[] { "invoke event ", event, " param ", paramString2, " callbackId ", Integer.valueOf(callbackId) }); + switch (event.hashCode()) { + default: + b1 = -1; + break; + case 2050035697: + if (event.equals("cancelDxppAd")) { + b1 = 14; + break; + } + case 1472294650: + if (event.equals("subscribeAppAd")) { + b1 = 12; + break; + } + case 1321118366: + if (event.equals("makePhoneCall")) { + b1 = 4; + break; + } + case 1140159543: + if (event.equals("_serviceGetPhoneNumber")) { + b1 = 1; + break; + } + case 213265471: + if (event.equals("getAdSiteBaseInfo")) { + b1 = 3; + break; + } + case 196312531: + if (event.equals("unsubscribeAppAd")) { + b1 = 15; + break; + } + case 103149417: + if (event.equals("login")) { + b1 = 2; + break; + } + case 94388255: + if (event.equals("openLocation")) { + b1 = 8; + break; + } + case -316023509: + if (event.equals("getLocation")) { + b1 = 7; + break; + } + case -617633438: + if (event.equals("getLocalPhoneNumber")) { + b1 = 5; + break; + } + case -650072649: + if (event.equals("getLocalPhoneNumberToken")) + break; + case -732466452: + if (event.equals("chooseLocation")) { + b1 = 11; + break; + } + case -891002358: + if (event.equals("scanCode")) { + b1 = 9; + break; + } + case -1023873614: + if (event.equals("openAdLandPageLinks")) { + b1 = 16; + break; + } + case -1317783337: + if (event.equals("dxppAd")) { + b1 = 13; + break; + } + case -1337695621: + if (event.equals("_webviewGetPhoneNumber")) { + b1 = 0; + break; + } + case -1925380643: + if (event.equals("chooseAddress")) { + b1 = 10; + break; + } + } + switch (b1) { + default: + AppBrandLogger.d("AdWebBridge", new Object[] { "unsupported API" }); + paramString2 = ApiCallResult.a.a(event, "api is not exist", 0).toString(); + callbackWebView(event, callbackId, paramString2); + AppBrandLogger.d("AdWebBridge", new Object[] { paramString2 }); + return CharacterUtils.empty(); + case 12: + case 13: + case 14: + case 15: + case 16: + a1 = a.b.a(this.mJSCoreApiRuntime, event, (a)new MiniAppApiInvokeParam(paramString2)).a(this.mAsyncApiHandleExecutor, new JSCoreAsyncApiCallbackExecutor(event, callbackId)).a(); + b = this.mApiRuntime.handleApiInvoke(a1); + if (b.a) { + ApiCallbackData apiCallbackData = b.b; + if (apiCallbackData == null) { + AppBrandLogger.d("AdWebBridge", new Object[] { "ApiService handle asyncEvent:", event }); + return CharacterUtils.empty(); + } + str = apiCallbackData.toString(); + AppBrandLogger.d("AdWebBridge", new Object[] { "ApiService handle syncEvent:", event, "result:", str }); + return str; + } + return CharacterUtils.empty(); + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + break; + } + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + try { + return; + } finally { + Exception exception = null; + AdWebBridge adWebBridge = AdWebBridge.this; + String str = event; + adWebBridge.callbackWebView(str, callbackId, ApiCallResult.a.b(str).d(a.a(exception)).toString()); + AppBrandLogger.e("AdWebBridge", new Object[] { "handleInvoke ", exception }); + } + } + }ThreadPools.defaults()); + return CharacterUtils.empty(); + } + + public void publishWebView(String paramString1, String paramString2) { + WebViewManager webViewManager = AppbrandApplicationImpl.getInst().getWebViewManager(); + if (webViewManager != null) + webViewManager.publish(this.mWebViewId, paramString1, paramString2); + } + + class JSCoreAsyncApiCallbackExecutor implements b { + private int mCallbackId; + + private String mEvent; + + public JSCoreAsyncApiCallbackExecutor(String param1String, int param1Int) { + this.mEvent = param1String; + this.mCallbackId = param1Int; + } + + public void executeCallback(ApiCallbackData param1ApiCallbackData) { + if (DebugUtil.debug()) + AppBrandLogger.d("AdWebBridge", new Object[] { "ApiService async callback:", param1ApiCallbackData.toString() }); + AdWebBridge.this.callbackWebView(this.mEvent, this.mCallbackId, param1ApiCallbackData.toString()); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\bridge\AdWebBridge.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameAbsoluteLayout.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameAbsoluteLayout.java new file mode 100644 index 0000000..6ca8831 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameAbsoluteLayout.java @@ -0,0 +1,70 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.FrameLayout; + +public class GameAbsoluteLayout extends FrameLayout { + public GameAbsoluteLayout(Context paramContext) { + super(paramContext); + } + + public GameAbsoluteLayout(Context paramContext, AttributeSet paramAttributeSet) { + super(paramContext, paramAttributeSet); + } + + public GameAbsoluteLayout(Context paramContext, AttributeSet paramAttributeSet, int paramInt) { + super(paramContext, paramAttributeSet, paramInt); + } + + public GameAbsoluteLayout(Context paramContext, AttributeSet paramAttributeSet, int paramInt1, int paramInt2) { + super(paramContext, paramAttributeSet, paramInt1, paramInt2); + } + + public static class LayoutParams extends FrameLayout.LayoutParams { + public LayoutParams(int param1Int1, int param1Int2, int param1Int3, int param1Int4) { + super(param1Int1, param1Int2); + setXY(param1Int3, param1Int4); + } + + public void setGravity(int param1Int1, int param1Int2) { + this.gravity &= 0xFF7FFFF8; + this.gravity &= 0xFFFFFF8F; + if (1 == param1Int1) { + this.gravity |= 0x1; + } else if (2 == param1Int1) { + this.gravity |= 0x800005; + } else { + this.gravity |= 0x800003; + } + if (2 == param1Int2) { + this.gravity |= 0x50; + return; + } + if (1 == param1Int2) { + this.gravity |= 0x10; + return; + } + this.gravity |= 0x30; + } + + public void setX(int param1Int) { + this.leftMargin = param1Int; + } + + public void setXY(int param1Int1, int param1Int2) { + setX(param1Int1); + setY(param1Int2); + } + + public void setY(int param1Int) { + this.topMargin = param1Int; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\GameAbsoluteLayout.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBannerManager.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBannerManager.java new file mode 100644 index 0000000..47a2f99 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBannerManager.java @@ -0,0 +1,226 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.content.Context; +import android.util.SparseArray; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.util.UIUtils; +import java.util.concurrent.atomic.AtomicInteger; +import org.json.JSONObject; + +public class GameBannerManager { + private static GameBannerManager sManager; + + public GameAbsoluteLayout mParentLayout; + + private volatile AtomicInteger mViewIdCount; + + private volatile SparseArray mViewMap; + + public GameBannerManager(GameAbsoluteLayout paramGameAbsoluteLayout) { + this.mParentLayout = paramGameAbsoluteLayout; + this.mViewMap = new SparseArray(); + this.mViewIdCount = new AtomicInteger(0); + } + + public static GameBannerManager get() { + return sManager; + } + + public static void measureView(FrameLayout.LayoutParams paramLayoutParams, int paramInt, View paramView, OnMeasuredListener paramOnMeasuredListener) { + int i; + int j = paramLayoutParams.width; + if (paramLayoutParams.width < 0) { + i = Integer.MIN_VALUE; + } else { + i = 1073741824; + } + paramView.measure(View.MeasureSpec.makeMeasureSpec(j, i), View.MeasureSpec.makeMeasureSpec(1073741823, -2147483648)); + paramOnMeasuredListener.onMeasured(paramInt, paramView); + } + + public static void set(GameBannerManager paramGameBannerManager) { + sManager = paramGameBannerManager; + } + + public static FrameLayout.LayoutParams style2Params(Context paramContext, JSONObject paramJSONObject) { + boolean bool1; + boolean bool2; + GameAbsoluteLayout.LayoutParams layoutParams = new GameAbsoluteLayout.LayoutParams(-2, -2, 0, 0); + if (paramJSONObject == null) + return layoutParams; + double d1 = UIUtils.dip2Px(paramContext, (float)paramJSONObject.optDouble("top", 0.0D)); + double d2 = UIUtils.dip2Px(paramContext, (float)paramJSONObject.optDouble("left", 0.0D)); + double d3 = UIUtils.dip2Px(paramContext, (float)paramJSONObject.optDouble("right", 0.0D)); + double d4 = UIUtils.dip2Px(paramContext, (float)paramJSONObject.optDouble("bottom", 0.0D)); + String str1 = paramJSONObject.optString("horizontalAlign", "left"); + String str2 = paramJSONObject.optString("verticalAlign", "top"); + if ("center".equalsIgnoreCase(str1)) { + bool1 = true; + } else if ("right".equalsIgnoreCase(str1)) { + bool1 = true; + } else { + bool1 = false; + } + if ("center".equalsIgnoreCase(str2)) { + bool2 = true; + } else if ("bottom".equalsIgnoreCase(str2)) { + bool2 = true; + } else { + bool2 = false; + } + int i = paramJSONObject.optInt("width", -2); + layoutParams.topMargin = (int)d1; + layoutParams.leftMargin = (int)d2; + layoutParams.rightMargin = (int)d3; + layoutParams.bottomMargin = (int)d4; + layoutParams.setGravity(bool1, bool2); + layoutParams.width = (int)UIUtils.dip2Px(paramContext, i); + return layoutParams; + } + + public boolean add(int paramInt, View paramView, JSONObject paramJSONObject, OnMeasuredListener paramOnMeasuredListener) { + // Byte code: + // 0: aload_0 + // 1: getfield mViewMap : Landroid/util/SparseArray; + // 4: iload_1 + // 5: invokevirtual get : (I)Ljava/lang/Object; + // 8: ifnull -> 13 + // 11: iconst_0 + // 12: ireturn + // 13: aload_0 + // 14: monitorenter + // 15: aload_0 + // 16: getfield mViewMap : Landroid/util/SparseArray; + // 19: iload_1 + // 20: aload_2 + // 21: invokevirtual put : (ILjava/lang/Object;)V + // 24: aload_0 + // 25: monitorexit + // 26: aload_2 + // 27: bipush #8 + // 29: invokevirtual setVisibility : (I)V + // 32: aload_0 + // 33: getfield mParentLayout : Lcom/tt/miniapp/component/nativeview/game/GameAbsoluteLayout; + // 36: invokevirtual getContext : ()Landroid/content/Context; + // 39: aload_3 + // 40: invokestatic style2Params : (Landroid/content/Context;Lorg/json/JSONObject;)Landroid/widget/FrameLayout$LayoutParams; + // 43: astore_3 + // 44: aload_0 + // 45: getfield mParentLayout : Lcom/tt/miniapp/component/nativeview/game/GameAbsoluteLayout; + // 48: aload_2 + // 49: aload_3 + // 50: invokevirtual addView : (Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V + // 53: aload #4 + // 55: ifnull -> 66 + // 58: aload_3 + // 59: iload_1 + // 60: aload_2 + // 61: aload #4 + // 63: invokestatic measureView : (Landroid/widget/FrameLayout$LayoutParams;ILandroid/view/View;Lcom/tt/miniapp/component/nativeview/game/GameBannerManager$OnMeasuredListener;)V + // 66: iconst_1 + // 67: ireturn + // 68: astore_2 + // 69: aload_0 + // 70: monitorexit + // 71: aload_2 + // 72: athrow + // Exception table: + // from to target type + // 15 26 68 finally + // 69 71 68 finally + } + + public int generateBannerId() { + return this.mViewIdCount.addAndGet(1); + } + + public boolean remove(int paramInt) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mViewMap : Landroid/util/SparseArray; + // 6: iload_1 + // 7: invokevirtual get : (I)Ljava/lang/Object; + // 10: checkcast android/view/View + // 13: astore_2 + // 14: aload_2 + // 15: ifnonnull -> 22 + // 18: aload_0 + // 19: monitorexit + // 20: iconst_0 + // 21: ireturn + // 22: aload_0 + // 23: getfield mViewMap : Landroid/util/SparseArray; + // 26: iload_1 + // 27: invokevirtual remove : (I)V + // 30: new com/tt/miniapp/component/nativeview/game/GameBannerManager$1 + // 33: dup + // 34: aload_0 + // 35: aload_2 + // 36: invokespecial : (Lcom/tt/miniapp/component/nativeview/game/GameBannerManager;Landroid/view/View;)V + // 39: invokestatic runOnUIThread : (Ljava/lang/Runnable;)V + // 42: aload_0 + // 43: monitorexit + // 44: iconst_1 + // 45: ireturn + // 46: astore_2 + // 47: aload_0 + // 48: monitorexit + // 49: aload_2 + // 50: athrow + // Exception table: + // from to target type + // 2 14 46 finally + // 22 42 46 finally + } + + public boolean setVisible(int paramInt, final boolean shown) { + final View view = (View)this.mViewMap.get(paramInt); + if (view == null) + return false; + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + byte b; + View view = view; + if (shown) { + b = 0; + } else { + b = 4; + } + view.setVisibility(b); + } + }); + return true; + } + + public boolean update(final int id, final JSONObject style, final OnMeasuredListener listener) { + final View view = (View)this.mViewMap.get(id); + if (view == null) + return false; + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + FrameLayout.LayoutParams layoutParams = GameBannerManager.style2Params(GameBannerManager.this.mParentLayout.getContext(), style); + view.setLayoutParams((ViewGroup.LayoutParams)layoutParams); + GameBannerManager.OnMeasuredListener onMeasuredListener = listener; + if (onMeasuredListener == null) + return; + GameBannerManager.measureView(layoutParams, id, view, onMeasuredListener); + } + }); + return true; + } + + public static interface OnMeasuredListener { + void onMeasured(int param1Int, View param1View); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\GameBannerManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBtnImage.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBtnImage.java new file mode 100644 index 0000000..f7828f7 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBtnImage.java @@ -0,0 +1,78 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.graphics.drawable.Drawable; +import android.view.View; +import android.view.ViewGroup; +import com.tt.miniapp.thread.ThreadUtil; + +public class GameBtnImage extends GameButton { + private RoundedImageView mImageView; + + GameBtnImage(RoundedImageView paramRoundedImageView, GameButtonStyle paramGameButtonStyle) { + super((View)paramRoundedImageView, paramGameButtonStyle); + this.mImageView = paramRoundedImageView; + } + + public void applyImageUpdate(byte paramByte, GameButtonStyle paramGameButtonStyle, Drawable paramDrawable) { + if (paramDrawable != null) + this.mImageView.setImageDrawable(paramDrawable); + if ((paramByte & 0x4) != 0) + GameButtonHelper.applyImageStyle(this.mImageView, paramGameButtonStyle); + if ((paramByte & 0x2) != 0) { + GameAbsoluteLayout.LayoutParams layoutParams = (GameAbsoluteLayout.LayoutParams)this.mRealView.getLayoutParams(); + layoutParams.width = paramGameButtonStyle.width; + layoutParams.height = paramGameButtonStyle.height; + layoutParams.setXY(paramGameButtonStyle.left, paramGameButtonStyle.top); + this.mRealView.setLayoutParams((ViewGroup.LayoutParams)layoutParams); + } + this.mStyle = paramGameButtonStyle; + } + + public int getBtnType() { + return 1; + } + + public void loadImageIfNeed(final byte cmp, final GameButtonStyle style, final GameBtnUpdateAnim anim) { + if ((cmp & 0x1) != 0) { + GameButtonHelper.applyImage(this.mImageView, style.content, style.width, style.height, new GameButtonHelper.ApplyImageCallback() { + public void onLoaded(boolean param1Boolean, Drawable param1Drawable) { + GameBtnImage.this.updateImageBtn(cmp, style, anim, param1Drawable); + } + }); + return; + } + updateImageBtn(cmp, style, anim, (Drawable)null); + } + + public void update(final GameButtonStyle style, final GameBtnUpdateAnim anim) { + if (style == null) + return; + final byte cmp = this.mStyle.compare(style); + if (b == 0) + return; + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + GameBtnImage.this.loadImageIfNeed(cmp, style, anim); + } + }); + } + + public void updateImageBtn(final byte cmp, final GameButtonStyle style, GameBtnUpdateAnim paramGameBtnUpdateAnim, final Drawable drawable) { + if (paramGameBtnUpdateAnim == null || this.mRealView.getVisibility() != 0) { + applyImageUpdate(cmp, style, drawable); + return; + } + this.mRealView.startAnimation(paramGameBtnUpdateAnim.getAnim()); + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + GameBtnImage.this.applyImageUpdate(cmp, style, drawable); + } + }paramGameBtnUpdateAnim.getApplyDelayMs()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\GameBtnImage.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBtnText.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBtnText.java new file mode 100644 index 0000000..e6f88ad --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBtnText.java @@ -0,0 +1,66 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import com.tt.miniapp.thread.ThreadUtil; + +public class GameBtnText extends GameButton { + private TextView mTextView; + + GameBtnText(TextView paramTextView, GameButtonStyle paramGameButtonStyle) { + super((View)paramTextView, paramGameButtonStyle); + this.mTextView = paramTextView; + } + + public void applyTextUpdate(byte paramByte, GameButtonStyle paramGameButtonStyle) { + if ((paramByte & 0x4) != 0) + GameButtonHelper.applyTextStyle(this.mTextView, paramGameButtonStyle); + if ((paramByte & 0x1) != 0) + GameButtonHelper.applyText(this.mTextView, paramGameButtonStyle.content); + if ((paramByte & 0x2) != 0) { + GameAbsoluteLayout.LayoutParams layoutParams = (GameAbsoluteLayout.LayoutParams)this.mRealView.getLayoutParams(); + layoutParams.width = paramGameButtonStyle.width; + layoutParams.height = paramGameButtonStyle.height; + layoutParams.setXY(paramGameButtonStyle.left, paramGameButtonStyle.top); + this.mRealView.setLayoutParams((ViewGroup.LayoutParams)layoutParams); + } + this.mStyle = paramGameButtonStyle; + } + + public int getBtnType() { + return 0; + } + + public void update(final GameButtonStyle style, final GameBtnUpdateAnim anim) { + if (style == null) + return; + final byte cmp = this.mStyle.compare(style); + if (b == 0) + return; + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + GameBtnText.this.updateTextBtn(cmp, style, anim); + } + }); + } + + public void updateTextBtn(final byte cmp, final GameButtonStyle style, GameBtnUpdateAnim paramGameBtnUpdateAnim) { + if (paramGameBtnUpdateAnim == null || this.mRealView.getVisibility() != 0) { + applyTextUpdate(cmp, style); + return; + } + this.mRealView.startAnimation(paramGameBtnUpdateAnim.getAnim()); + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + GameBtnText.this.applyTextUpdate(cmp, style); + } + }paramGameBtnUpdateAnim.getApplyDelayMs()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\GameBtnText.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBtnUpdateAnim.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBtnUpdateAnim.java new file mode 100644 index 0000000..ca8e7db --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameBtnUpdateAnim.java @@ -0,0 +1,28 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.view.animation.Animation; + +public class GameBtnUpdateAnim { + private Animation mAnim; + + private long mApplyDelayMs; + + public GameBtnUpdateAnim(Animation paramAnimation, long paramLong) { + this.mAnim = paramAnimation; + this.mApplyDelayMs = paramLong; + } + + public Animation getAnim() { + return this.mAnim; + } + + public long getApplyDelayMs() { + return this.mApplyDelayMs; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\GameBtnUpdateAnim.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButton.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButton.java new file mode 100644 index 0000000..23a7cb6 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButton.java @@ -0,0 +1,80 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.view.View; +import android.view.ViewGroup; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.AppBrandLogger; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +public abstract class GameButton { + View mRealView; + + GameButtonStyle mStyle; + + GameButton(View paramView, GameButtonStyle paramGameButtonStyle) { + this.mRealView = paramView; + this.mStyle = paramGameButtonStyle; + } + + public void addToParent(final GameAbsoluteLayout parent) { + if (parent == null) + return; + AppBrandLogger.d("GameButton", new Object[] { Integer.valueOf(this.mStyle.width), Integer.valueOf(this.mStyle.height), Integer.valueOf(this.mStyle.left), Integer.valueOf(this.mStyle.top) }); + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + parent.addView(GameButton.this.mRealView, (ViewGroup.LayoutParams)new GameAbsoluteLayout.LayoutParams(GameButton.this.mStyle.width, GameButton.this.mStyle.height, GameButton.this.mStyle.left, GameButton.this.mStyle.top)); + } + }); + } + + public abstract int getBtnType(); + + public GameButtonStyle getStyle() { + return this.mStyle; + } + + public void removeFromParent() { + final ViewGroup viewParent = (ViewGroup)this.mRealView.getParent(); + if (viewGroup == null) + return; + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + viewParent.removeView(GameButton.this.mRealView); + } + }); + } + + public void setViewOnclickListener(final Runnable r) { + this.mRealView.setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + r.run(); + } + }); + } + + public void setVisibility(boolean paramBoolean) { + final byte visibleInt; + if (paramBoolean) { + b = 0; + } else { + b = 8; + } + ThreadUtil.runOnUIThread(new Runnable() { + public void run() { + GameButton.this.mRealView.setVisibility(visibleInt); + } + }); + } + + public abstract void update(GameButtonStyle paramGameButtonStyle, GameBtnUpdateAnim paramGameBtnUpdateAnim); + + @Retention(RetentionPolicy.SOURCE) + public static @interface Type {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\GameButton.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButtonHelper.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButtonHelper.java new file mode 100644 index 0000000..8f6a2f6 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButtonHelper.java @@ -0,0 +1,208 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.app.Application; +import android.content.Context; +import android.graphics.Color; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.GradientDrawable; +import android.os.Build; +import android.text.TextUtils; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageView; +import android.widget.TextView; +import com.tt.b.a; +import com.tt.b.c; +import com.tt.miniapp.storage.filestorge.FileManager; +import com.tt.miniapp.streamloader.StreamLoader; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.host.HostDependManager; +import java.io.File; +import java.util.List; + +public class GameButtonHelper { + public static void applyImage(ImageView paramImageView, String paramString, int paramInt1, int paramInt2, final ApplyImageCallback callback) { + c c; + if (paramString.startsWith("http")) { + c = (new c(paramString)).a(2097479705); + } else { + c = new c(new File((String)c)); + } + final ImageView tmpView = new ImageView(paramImageView.getContext()); + imageView.setLayoutParams((ViewGroup.LayoutParams)new GameAbsoluteLayout.LayoutParams(paramInt1, paramInt2, 0, 0)); + c.a(paramInt1, paramInt2).a(new a() { + public final void onFail(Exception param1Exception) { + AppBrandLogger.d("tma_GameButtonHelper", new Object[] { "applyImage failed" }); + GameButtonHelper.ApplyImageCallback applyImageCallback = callback; + if (applyImageCallback != null) + applyImageCallback.onLoaded(false, tmpView.getDrawable()); + } + + public final void onSuccess() { + AppBrandLogger.d("tma_GameButtonHelper", new Object[] { "applyImage success" }); + GameButtonHelper.ApplyImageCallback applyImageCallback = callback; + if (applyImageCallback != null) + applyImageCallback.onLoaded(true, tmpView.getDrawable()); + } + }).a((View)imageView); + HostDependManager.getInst().loadImage(imageView.getContext(), c); + if (c.b != 0) + paramImageView.setImageResource(c.b); + } + + public static void applyImageStyle(RoundedImageView paramRoundedImageView, GameButtonStyle paramGameButtonStyle) { + paramRoundedImageView.setBorderWidth(paramGameButtonStyle.borderWidth); + paramRoundedImageView.setBorderColor(parseColor(paramGameButtonStyle.borderColor, 0)); + paramRoundedImageView.setCornerRadius(paramGameButtonStyle.borderRadius); + } + + public static void applyText(TextView paramTextView, String paramString) { + paramTextView.setText(paramString); + } + + public static void applyTextStyle(TextView paramTextView, GameButtonStyle paramGameButtonStyle) { + GradientDrawable gradientDrawable = new GradientDrawable(); + gradientDrawable.setCornerRadius(paramGameButtonStyle.borderRadius); + gradientDrawable.setStroke(paramGameButtonStyle.borderWidth, parseColor(paramGameButtonStyle.borderColor, 0)); + gradientDrawable.setGradientType(0); + gradientDrawable.setColor(parseColor(paramGameButtonStyle.backgroundColor, 0)); + paramTextView.setBackground((Drawable)gradientDrawable); + int i = paramGameButtonStyle.borderWidth; + paramTextView.setPadding(i, i, i, i); + paramTextView.setTextColor(parseColor(paramGameButtonStyle.textColor, -16777216)); + paramTextView.setTextSize(paramGameButtonStyle.fontSize); + paramTextView.setGravity(convertTextLayoutParams(paramGameButtonStyle.textAlign) | 0x10); + if (Build.VERSION.SDK_INT >= 28) { + paramTextView.setLineHeight(paramGameButtonStyle.lineHeight); + return; + } + i = paramTextView.getPaint().getFontMetricsInt(null); + if (paramGameButtonStyle.lineHeight != i) + paramTextView.setLineSpacing((paramGameButtonStyle.lineHeight - i), 1.0F); + } + + private static int convertTextLayoutParams(String paramString) { + if (TextUtils.equals("left", paramString)) + return 3; + if (TextUtils.equals("right", paramString)) + return 5; + if (TextUtils.equals("center", paramString)); + return 17; + } + + public static GameButton createImageButton(Context paramContext, final GameButtonStyle style) { + final RoundedImageView roundedImageView = new RoundedImageView(paramContext); + ThreadUtil.runOnUIThread(new Runnable() { + public final void run() { + GameButtonHelper.applyImageStyle(roundedImageView, style); + GameButtonHelper.applyImage(roundedImageView, style.content, style.width, style.height, new GameButtonHelper.ApplyImageCallback() { + public void onLoaded(boolean param2Boolean, Drawable param2Drawable) { + roundedImageView.setImageDrawable(param2Drawable); + } + }); + } + }); + return new GameBtnImage(roundedImageView, style); + } + + public static GameButton createTextButton(Context paramContext, final GameButtonStyle style) { + final Button button = new Button(paramContext); + ThreadUtil.runOnUIThread(new Runnable() { + public final void run() { + button.setStateListAnimator(null); + GameButtonHelper.applyTextStyle((TextView)button, style); + GameButtonHelper.applyText((TextView)button, style.content); + button.setAllCaps(false); + } + }); + return new GameBtnText((TextView)button, style); + } + + public static String filterImagePath(boolean paramBoolean, String paramString, StringBuilder paramStringBuilder) { + if (TextUtils.isEmpty(paramString)) { + if (paramStringBuilder != null) + paramStringBuilder.append("empty params.image"); + return null; + } + FileManager fileManager = FileManager.inst(); + paramString = fileManager.getRealFilePath(paramString); + if (paramString.startsWith("http")) { + if (!paramBoolean) { + if (paramStringBuilder != null) + paramStringBuilder.append("error params.image: not support web image"); + return null; + } + return paramString; + } + File file = new File(paramString); + if (!fileManager.canRead(file)) { + if (paramStringBuilder != null) + paramStringBuilder.append("error params.image: file cannot read"); + return null; + } + if (file.exists() && file.isFile()) + return paramString; + StreamLoader.extractToFile(paramString, file.getParent(), file.getName()); + if (file.exists() && fileManager.canRead(file)) { + AppBrandLogger.d("streamload file unzip ok", new Object[0]); + return paramString; + } + if (paramStringBuilder != null) + paramStringBuilder.append("error params.image"); + return null; + } + + private static int parseColor(String paramString, int paramInt) { + try { + return Color.parseColor(paramString); + } catch (Exception exception) { + return paramInt; + } + } + + public static void preloadImages(List paramList) { + if (paramList != null) { + if (paramList.isEmpty()) + return; + Application application = AppbrandContext.getInst().getApplicationContext(); + for (String str : paramList) { + final ImageView imageView = new ImageView((Context)application); + try { + c c = (new c(str)).a(new a() { + public final void onFail(Exception param1Exception) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(imageView.hashCode()); + stringBuilder.append("preload failed."); + stringBuilder.append(path); + AppBrandLogger.e("tma_GameButtonHelper", new Object[] { stringBuilder.toString() }); + } + + public final void onSuccess() { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(imageView.hashCode()); + stringBuilder.append("preload succeed."); + stringBuilder.append(path); + AppBrandLogger.d("tma_GameButtonHelper", new Object[] { stringBuilder.toString() }); + } + }).a((View)imageView); + HostDependManager.getInst().loadImage((Context)application, c); + } catch (RuntimeException runtimeException) { + AppBrandLogger.eWithThrowable("tma_GameButtonHelper", "preload error", runtimeException); + } + } + } + } + + public static interface ApplyImageCallback { + void onLoaded(boolean param1Boolean, Drawable param1Drawable); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\GameButtonHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButtonManager.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButtonManager.java new file mode 100644 index 0000000..397ba1d --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButtonManager.java @@ -0,0 +1,181 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.util.SparseArray; + +public class GameButtonManager { + private static GameButtonManager sNowButtonManager; + + private GameAbsoluteLayout mParentLayout; + + private int mViewIdCount = 0; + + private SparseArray mViewMap = new SparseArray(); + + public GameButtonManager(GameAbsoluteLayout paramGameAbsoluteLayout) { + this.mParentLayout = paramGameAbsoluteLayout; + } + + public static GameButtonManager get() { + return sNowButtonManager; + } + + public static void set(GameButtonManager paramGameButtonManager) { + sNowButtonManager = paramGameButtonManager; + } + + public int addToParentView(GameButton paramGameButton) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: aload_0 + // 4: getfield mViewIdCount : I + // 7: iconst_1 + // 8: iadd + // 9: putfield mViewIdCount : I + // 12: aload_0 + // 13: getfield mViewMap : Landroid/util/SparseArray; + // 16: aload_0 + // 17: getfield mViewIdCount : I + // 20: aload_1 + // 21: invokevirtual put : (ILjava/lang/Object;)V + // 24: aload_1 + // 25: aload_0 + // 26: getfield mParentLayout : Lcom/tt/miniapp/component/nativeview/game/GameAbsoluteLayout; + // 29: invokevirtual addToParent : (Lcom/tt/miniapp/component/nativeview/game/GameAbsoluteLayout;)V + // 32: aload_0 + // 33: getfield mViewIdCount : I + // 36: istore_2 + // 37: aload_0 + // 38: monitorexit + // 39: iload_2 + // 40: ireturn + // 41: astore_1 + // 42: aload_0 + // 43: monitorexit + // 44: aload_1 + // 45: athrow + // Exception table: + // from to target type + // 2 37 41 finally + } + + public GameButton getButton(int paramInt) { + return (GameButton)this.mViewMap.get(paramInt); + } + + public boolean removeButton(int paramInt) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mViewMap : Landroid/util/SparseArray; + // 6: iload_1 + // 7: invokevirtual get : (I)Ljava/lang/Object; + // 10: checkcast com/tt/miniapp/component/nativeview/game/GameButton + // 13: astore_2 + // 14: aload_2 + // 15: ifnonnull -> 22 + // 18: aload_0 + // 19: monitorexit + // 20: iconst_0 + // 21: ireturn + // 22: aload_0 + // 23: getfield mViewMap : Landroid/util/SparseArray; + // 26: iload_1 + // 27: invokevirtual remove : (I)V + // 30: aload_2 + // 31: invokevirtual removeFromParent : ()V + // 34: aload_0 + // 35: monitorexit + // 36: iconst_1 + // 37: ireturn + // 38: astore_2 + // 39: aload_0 + // 40: monitorexit + // 41: aload_2 + // 42: athrow + // Exception table: + // from to target type + // 2 14 38 finally + // 22 34 38 finally + } + + public boolean setVisible(int paramInt, boolean paramBoolean) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mViewMap : Landroid/util/SparseArray; + // 6: iload_1 + // 7: invokevirtual get : (I)Ljava/lang/Object; + // 10: checkcast com/tt/miniapp/component/nativeview/game/GameButton + // 13: astore_3 + // 14: aload_3 + // 15: ifnonnull -> 22 + // 18: aload_0 + // 19: monitorexit + // 20: iconst_0 + // 21: ireturn + // 22: aload_3 + // 23: iload_2 + // 24: invokevirtual setVisibility : (Z)V + // 27: aload_0 + // 28: monitorexit + // 29: iconst_1 + // 30: ireturn + // 31: astore_3 + // 32: aload_0 + // 33: monitorexit + // 34: aload_3 + // 35: athrow + // Exception table: + // from to target type + // 2 14 31 finally + // 22 27 31 finally + } + + public boolean updateButton(int paramInt, GameButtonStyle paramGameButtonStyle, GameBtnUpdateAnim paramGameBtnUpdateAnim) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_2 + // 3: ifnull -> 43 + // 6: aload_0 + // 7: getfield mViewMap : Landroid/util/SparseArray; + // 10: iload_1 + // 11: invokevirtual get : (I)Ljava/lang/Object; + // 14: checkcast com/tt/miniapp/component/nativeview/game/GameButton + // 17: astore #4 + // 19: aload #4 + // 21: ifnonnull -> 27 + // 24: goto -> 43 + // 27: aload #4 + // 29: aload_2 + // 30: aload_3 + // 31: invokevirtual update : (Lcom/tt/miniapp/component/nativeview/game/GameButtonStyle;Lcom/tt/miniapp/component/nativeview/game/GameBtnUpdateAnim;)V + // 34: aload_0 + // 35: monitorexit + // 36: iconst_1 + // 37: ireturn + // 38: astore_2 + // 39: aload_0 + // 40: monitorexit + // 41: aload_2 + // 42: athrow + // 43: aload_0 + // 44: monitorexit + // 45: iconst_0 + // 46: ireturn + // Exception table: + // from to target type + // 6 19 38 finally + // 27 34 38 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\GameButtonManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButtonStyle.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButtonStyle.java new file mode 100644 index 0000000..7a1f225 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/GameButtonStyle.java @@ -0,0 +1,155 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.content.Context; +import android.text.TextUtils; +import com.tt.miniapphost.util.UIUtils; +import java.util.Objects; +import org.json.JSONObject; + +public class GameButtonStyle implements Cloneable { + public String backgroundColor = "#000000"; + + public String borderColor = "#000000"; + + public int borderRadius; + + public int borderWidth; + + public String content; + + public int fontSize = 16; + + public int height; + + public int left; + + public int lineHeight = 40; + + public String textAlign = "center"; + + public String textColor = "#000000"; + + public int top; + + public int width; + + public static GameButtonStyle parse(Context paramContext, String paramString, JSONObject paramJSONObject) { + return parse(null, paramContext, paramString, paramJSONObject); + } + + public static GameButtonStyle parse(GameButtonStyle paramGameButtonStyle, Context paramContext, String paramString, JSONObject paramJSONObject) { + GameButtonStyle gameButtonStyle = paramGameButtonStyle; + if (paramGameButtonStyle == null) + gameButtonStyle = new GameButtonStyle(); + if (!TextUtils.isEmpty(paramString)) + gameButtonStyle.content = paramString; + if (paramJSONObject == null) + return gameButtonStyle; + gameButtonStyle.left = (int)UIUtils.dip2Px(paramContext, paramJSONObject.optInt("left", gameButtonStyle.left)); + gameButtonStyle.top = (int)UIUtils.dip2Px(paramContext, paramJSONObject.optInt("top", gameButtonStyle.top)); + gameButtonStyle.width = (int)UIUtils.dip2Px(paramContext, paramJSONObject.optInt("width", gameButtonStyle.width)); + gameButtonStyle.height = (int)UIUtils.dip2Px(paramContext, paramJSONObject.optInt("height", gameButtonStyle.height)); + gameButtonStyle.backgroundColor = paramJSONObject.optString("backgroundColor", gameButtonStyle.backgroundColor); + gameButtonStyle.borderColor = paramJSONObject.optString("borderColor", gameButtonStyle.borderColor); + gameButtonStyle.borderWidth = (int)UIUtils.dip2Px(paramContext, paramJSONObject.optInt("borderWidth", gameButtonStyle.borderWidth)); + gameButtonStyle.borderRadius = (int)UIUtils.dip2Px(paramContext, paramJSONObject.optInt("borderRadius", gameButtonStyle.borderRadius)); + gameButtonStyle.textAlign = paramJSONObject.optString("textAlign", gameButtonStyle.textAlign); + gameButtonStyle.fontSize = paramJSONObject.optInt("fontSize", gameButtonStyle.fontSize); + gameButtonStyle.lineHeight = (int)UIUtils.dip2Px(paramContext, paramJSONObject.optInt("lineHeight", gameButtonStyle.lineHeight)); + gameButtonStyle.textColor = paramJSONObject.optString("textColor", gameButtonStyle.textColor); + return gameButtonStyle; + } + + public GameButtonStyle clone() { + GameButtonStyle gameButtonStyle; + try { + gameButtonStyle = (GameButtonStyle)super.clone(); + } catch (CloneNotSupportedException cloneNotSupportedException) { + gameButtonStyle = new GameButtonStyle(); + } + gameButtonStyle.content = this.content; + gameButtonStyle.left = this.left; + gameButtonStyle.top = this.top; + gameButtonStyle.width = this.width; + gameButtonStyle.height = this.height; + gameButtonStyle.backgroundColor = this.backgroundColor; + gameButtonStyle.borderColor = this.borderColor; + gameButtonStyle.textAlign = this.textAlign; + gameButtonStyle.textColor = this.textColor; + gameButtonStyle.borderWidth = this.borderWidth; + gameButtonStyle.borderRadius = this.borderRadius; + gameButtonStyle.fontSize = this.fontSize; + gameButtonStyle.lineHeight = this.lineHeight; + return gameButtonStyle; + } + + public byte compare(GameButtonStyle paramGameButtonStyle) { + boolean bool1; + boolean bool = TextUtils.equals(this.content, paramGameButtonStyle.content); + boolean bool2 = true; + int j = bool ^ true; + if (this.left == paramGameButtonStyle.left && this.top == paramGameButtonStyle.top && this.width == paramGameButtonStyle.width && this.height == paramGameButtonStyle.height) { + k = 1; + } else { + k = 0; + } + int i = j; + if (!k) + i = (byte)(j | 0x2); + String str1 = this.backgroundColor; + String str2 = this.borderColor; + String str3 = this.textAlign; + String str4 = this.textColor; + int m = this.borderWidth; + int n = this.borderRadius; + int i1 = this.fontSize; + int i2 = this.lineHeight; + String str5 = paramGameButtonStyle.backgroundColor; + String str6 = paramGameButtonStyle.borderColor; + String str7 = paramGameButtonStyle.textAlign; + String str8 = paramGameButtonStyle.textColor; + int i3 = paramGameButtonStyle.borderWidth; + int i4 = paramGameButtonStyle.borderRadius; + int i5 = paramGameButtonStyle.fontSize; + int i6 = paramGameButtonStyle.lineHeight; + int k = 0; + while (true) { + bool1 = bool2; + if (k < 8) { + (new Object[8])[0] = str1; + (new Object[8])[1] = str2; + (new Object[8])[2] = str3; + (new Object[8])[3] = str4; + (new Object[8])[4] = Integer.valueOf(m); + (new Object[8])[5] = Integer.valueOf(n); + (new Object[8])[6] = Integer.valueOf(i1); + (new Object[8])[7] = Integer.valueOf(i2); + (new Object[8])[0] = str5; + (new Object[8])[1] = str6; + (new Object[8])[2] = str7; + (new Object[8])[3] = str8; + (new Object[8])[4] = Integer.valueOf(i3); + (new Object[8])[5] = Integer.valueOf(i4); + (new Object[8])[6] = Integer.valueOf(i5); + (new Object[8])[7] = Integer.valueOf(i6); + if (!Objects.equals((new Object[8])[k], (new Object[8])[k])) { + bool1 = false; + break; + } + k++; + continue; + } + break; + } + j = i; + if (!bool1) + j = (byte)(i | 0x4); + return j; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\GameButtonStyle.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/RoundedDrawable.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/RoundedDrawable.java new file mode 100644 index 0000000..e962f44 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/RoundedDrawable.java @@ -0,0 +1,578 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.content.res.ColorStateList; +import android.graphics.Bitmap; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.RectF; +import android.graphics.Shader; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.widget.ImageView; +import java.util.HashSet; + +public class RoundedDrawable extends Drawable { + private final Bitmap mBitmap; + + private final int mBitmapHeight; + + private final Paint mBitmapPaint; + + private final RectF mBitmapRect = new RectF(); + + private final int mBitmapWidth; + + private ColorStateList mBorderColor = ColorStateList.valueOf(-16777216); + + private final Paint mBorderPaint; + + private final RectF mBorderRect = new RectF(); + + private float mBorderWidth = 0.0F; + + private final RectF mBounds = new RectF(); + + private float mCornerRadius = 0.0F; + + private final boolean[] mCornersRounded = new boolean[] { true, true, true, true }; + + private final RectF mDrawableRect = new RectF(); + + private boolean mOval = false; + + private boolean mRebuildShader = true; + + private ImageView.ScaleType mScaleType = ImageView.ScaleType.FIT_CENTER; + + private final Matrix mShaderMatrix = new Matrix(); + + private final RectF mSquareCornersRect = new RectF(); + + private Shader.TileMode mTileModeX = Shader.TileMode.CLAMP; + + private Shader.TileMode mTileModeY = Shader.TileMode.CLAMP; + + public RoundedDrawable(Bitmap paramBitmap) { + this.mBitmap = paramBitmap; + this.mBitmapWidth = paramBitmap.getWidth(); + this.mBitmapHeight = paramBitmap.getHeight(); + this.mBitmapRect.set(0.0F, 0.0F, this.mBitmapWidth, this.mBitmapHeight); + this.mBitmapPaint = new Paint(); + this.mBitmapPaint.setStyle(Paint.Style.FILL); + this.mBitmapPaint.setAntiAlias(true); + this.mBorderPaint = new Paint(); + this.mBorderPaint.setStyle(Paint.Style.STROKE); + this.mBorderPaint.setAntiAlias(true); + this.mBorderPaint.setColor(this.mBorderColor.getColorForState(getState(), -16777216)); + this.mBorderPaint.setStrokeWidth(this.mBorderWidth); + } + + private static boolean all(boolean[] paramArrayOfboolean) { + int j = paramArrayOfboolean.length; + for (int i = 0; i < j; i++) { + if (paramArrayOfboolean[i]) + return false; + } + return true; + } + + private static boolean any(boolean[] paramArrayOfboolean) { + int j = paramArrayOfboolean.length; + for (int i = 0; i < j; i++) { + if (paramArrayOfboolean[i]) + return true; + } + return false; + } + + public static Bitmap drawableToBitmap(Drawable paramDrawable) { + if (paramDrawable instanceof BitmapDrawable) + return ((BitmapDrawable)paramDrawable).getBitmap(); + int i = Math.max(paramDrawable.getIntrinsicWidth(), 2); + int j = Math.max(paramDrawable.getIntrinsicHeight(), 2); + try { + Bitmap bitmap = Bitmap.createBitmap(i, j, Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + paramDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + return bitmap; + } finally { + paramDrawable = null; + } + } + + public static RoundedDrawable fromBitmap(Bitmap paramBitmap) { + return (paramBitmap != null) ? new RoundedDrawable(paramBitmap) : null; + } + + public static Drawable fromDrawable(Drawable paramDrawable) { + Drawable drawable = paramDrawable; + if (paramDrawable != null) { + LayerDrawable layerDrawable1; + if (paramDrawable instanceof RoundedDrawable) + return paramDrawable; + if (paramDrawable instanceof LayerDrawable) { + layerDrawable1 = (LayerDrawable)paramDrawable; + int j = layerDrawable1.getNumberOfLayers(); + for (int i = 0; i < j; i++) { + drawable = layerDrawable1.getDrawable(i); + layerDrawable1.setDrawableByLayerId(layerDrawable1.getId(i), fromDrawable(drawable)); + } + return (Drawable)layerDrawable1; + } + Bitmap bitmap = drawableToBitmap((Drawable)layerDrawable1); + LayerDrawable layerDrawable2 = layerDrawable1; + if (bitmap != null) + drawable = new RoundedDrawable(bitmap); + } + return drawable; + } + + private static boolean only(int paramInt, boolean[] paramArrayOfboolean) { + int j = paramArrayOfboolean.length; + int i = 0; + while (true) { + boolean bool = true; + if (i < j) { + boolean bool1 = paramArrayOfboolean[i]; + if (i != paramInt) + bool = false; + if (bool1 != bool) + return false; + i++; + continue; + } + return true; + } + } + + private void redrawBitmapForSquareCorners(Canvas paramCanvas) { + if (all(this.mCornersRounded)) + return; + if (this.mCornerRadius == 0.0F) + return; + float f1 = this.mDrawableRect.left; + float f2 = this.mDrawableRect.top; + float f3 = this.mDrawableRect.width() + f1; + float f4 = this.mDrawableRect.height() + f2; + float f5 = this.mCornerRadius; + if (!this.mCornersRounded[0]) { + this.mSquareCornersRect.set(f1, f2, f1 + f5, f2 + f5); + paramCanvas.drawRect(this.mSquareCornersRect, this.mBitmapPaint); + } + if (!this.mCornersRounded[1]) { + this.mSquareCornersRect.set(f3 - f5, f2, f3, f5); + paramCanvas.drawRect(this.mSquareCornersRect, this.mBitmapPaint); + } + if (!this.mCornersRounded[3]) { + this.mSquareCornersRect.set(f3 - f5, f4 - f5, f3, f4); + paramCanvas.drawRect(this.mSquareCornersRect, this.mBitmapPaint); + } + if (!this.mCornersRounded[2]) { + this.mSquareCornersRect.set(f1, f4 - f5, f5 + f1, f4); + paramCanvas.drawRect(this.mSquareCornersRect, this.mBitmapPaint); + } + } + + private void redrawBorderForSquareCorners(Canvas paramCanvas) { + if (all(this.mCornersRounded)) + return; + if (this.mCornerRadius == 0.0F) + return; + float f1 = this.mDrawableRect.left; + float f2 = this.mDrawableRect.top; + float f3 = f1 + this.mDrawableRect.width(); + float f4 = f2 + this.mDrawableRect.height(); + float f5 = this.mCornerRadius; + float f6 = this.mBorderWidth / 2.0F; + if (!this.mCornersRounded[0]) { + paramCanvas.drawLine(f1 - f6, f2, f1 + f5, f2, this.mBorderPaint); + paramCanvas.drawLine(f1, f2 - f6, f1, f2 + f5, this.mBorderPaint); + } + if (!this.mCornersRounded[1]) { + paramCanvas.drawLine(f3 - f5 - f6, f2, f3, f2, this.mBorderPaint); + paramCanvas.drawLine(f3, f2 - f6, f3, f2 + f5, this.mBorderPaint); + } + if (!this.mCornersRounded[3]) { + paramCanvas.drawLine(f3 - f5 - f6, f4, f3 + f6, f4, this.mBorderPaint); + paramCanvas.drawLine(f3, f4 - f5, f3, f4, this.mBorderPaint); + } + if (!this.mCornersRounded[2]) { + paramCanvas.drawLine(f1 - f6, f4, f1 + f5, f4, this.mBorderPaint); + paramCanvas.drawLine(f1, f4 - f5, f1, f4, this.mBorderPaint); + } + } + + private void updateShaderMatrix() { + int i = null.$SwitchMap$android$widget$ImageView$ScaleType[this.mScaleType.ordinal()]; + if (i != 1) { + if (i != 2) { + if (i != 3) { + if (i != 5) { + if (i != 6) { + if (i != 7) { + this.mBorderRect.set(this.mBitmapRect); + this.mShaderMatrix.setRectToRect(this.mBitmapRect, this.mBounds, Matrix.ScaleToFit.CENTER); + this.mShaderMatrix.mapRect(this.mBorderRect); + RectF rectF = this.mBorderRect; + float f = this.mBorderWidth; + rectF.inset(f / 2.0F, f / 2.0F); + this.mShaderMatrix.setRectToRect(this.mBitmapRect, this.mBorderRect, Matrix.ScaleToFit.FILL); + } else { + this.mBorderRect.set(this.mBounds); + RectF rectF = this.mBorderRect; + float f = this.mBorderWidth; + rectF.inset(f / 2.0F, f / 2.0F); + this.mShaderMatrix.reset(); + this.mShaderMatrix.setRectToRect(this.mBitmapRect, this.mBorderRect, Matrix.ScaleToFit.FILL); + } + } else { + this.mBorderRect.set(this.mBitmapRect); + this.mShaderMatrix.setRectToRect(this.mBitmapRect, this.mBounds, Matrix.ScaleToFit.START); + this.mShaderMatrix.mapRect(this.mBorderRect); + RectF rectF = this.mBorderRect; + float f = this.mBorderWidth; + rectF.inset(f / 2.0F, f / 2.0F); + this.mShaderMatrix.setRectToRect(this.mBitmapRect, this.mBorderRect, Matrix.ScaleToFit.FILL); + } + } else { + this.mBorderRect.set(this.mBitmapRect); + this.mShaderMatrix.setRectToRect(this.mBitmapRect, this.mBounds, Matrix.ScaleToFit.END); + this.mShaderMatrix.mapRect(this.mBorderRect); + RectF rectF = this.mBorderRect; + float f = this.mBorderWidth; + rectF.inset(f / 2.0F, f / 2.0F); + this.mShaderMatrix.setRectToRect(this.mBitmapRect, this.mBorderRect, Matrix.ScaleToFit.FILL); + } + } else { + this.mShaderMatrix.reset(); + if (this.mBitmapWidth <= this.mBounds.width() && this.mBitmapHeight <= this.mBounds.height()) { + f1 = 1.0F; + } else { + f1 = Math.min(this.mBounds.width() / this.mBitmapWidth, this.mBounds.height() / this.mBitmapHeight); + } + float f2 = (int)((this.mBounds.width() - this.mBitmapWidth * f1) * 0.5F + 0.5F); + float f3 = (int)((this.mBounds.height() - this.mBitmapHeight * f1) * 0.5F + 0.5F); + this.mShaderMatrix.setScale(f1, f1); + this.mShaderMatrix.postTranslate(f2, f3); + this.mBorderRect.set(this.mBitmapRect); + this.mShaderMatrix.mapRect(this.mBorderRect); + RectF rectF = this.mBorderRect; + float f1 = this.mBorderWidth; + rectF.inset(f1 / 2.0F, f1 / 2.0F); + this.mShaderMatrix.setRectToRect(this.mBitmapRect, this.mBorderRect, Matrix.ScaleToFit.FILL); + } + } else { + this.mBorderRect.set(this.mBounds); + RectF rectF = this.mBorderRect; + float f1 = this.mBorderWidth; + rectF.inset(f1 / 2.0F, f1 / 2.0F); + this.mShaderMatrix.reset(); + float f2 = this.mBitmapWidth; + float f3 = this.mBorderRect.height(); + float f4 = this.mBorderRect.width(); + float f5 = this.mBitmapHeight; + f1 = 0.0F; + if (f2 * f3 > f4 * f5) { + f2 = this.mBorderRect.height() / this.mBitmapHeight; + f3 = (this.mBorderRect.width() - this.mBitmapWidth * f2) * 0.5F; + } else { + f2 = this.mBorderRect.width() / this.mBitmapWidth; + f1 = (this.mBorderRect.height() - this.mBitmapHeight * f2) * 0.5F; + f3 = 0.0F; + } + this.mShaderMatrix.setScale(f2, f2); + Matrix matrix = this.mShaderMatrix; + f2 = (int)(f3 + 0.5F); + f3 = this.mBorderWidth; + matrix.postTranslate(f2 + f3 / 2.0F, (int)(f1 + 0.5F) + f3 / 2.0F); + } + } else { + this.mBorderRect.set(this.mBounds); + RectF rectF = this.mBorderRect; + float f = this.mBorderWidth; + rectF.inset(f / 2.0F, f / 2.0F); + this.mShaderMatrix.reset(); + this.mShaderMatrix.setTranslate((int)((this.mBorderRect.width() - this.mBitmapWidth) * 0.5F + 0.5F), (int)((this.mBorderRect.height() - this.mBitmapHeight) * 0.5F + 0.5F)); + } + this.mDrawableRect.set(this.mBorderRect); + this.mRebuildShader = true; + } + + public void draw(Canvas paramCanvas) { + if (this.mRebuildShader) { + BitmapShader bitmapShader = new BitmapShader(this.mBitmap, this.mTileModeX, this.mTileModeY); + if (this.mTileModeX == Shader.TileMode.CLAMP && this.mTileModeY == Shader.TileMode.CLAMP) + bitmapShader.setLocalMatrix(this.mShaderMatrix); + this.mBitmapPaint.setShader((Shader)bitmapShader); + this.mRebuildShader = false; + } + if (this.mOval) { + if (this.mBorderWidth > 0.0F) { + paramCanvas.drawOval(this.mDrawableRect, this.mBitmapPaint); + paramCanvas.drawOval(this.mBorderRect, this.mBorderPaint); + return; + } + paramCanvas.drawOval(this.mDrawableRect, this.mBitmapPaint); + return; + } + if (any(this.mCornersRounded)) { + float f = this.mCornerRadius; + if (this.mBorderWidth > 0.0F) { + paramCanvas.drawRoundRect(this.mDrawableRect, f, f, this.mBitmapPaint); + paramCanvas.drawRoundRect(this.mBorderRect, f, f, this.mBorderPaint); + redrawBitmapForSquareCorners(paramCanvas); + redrawBorderForSquareCorners(paramCanvas); + return; + } + paramCanvas.drawRoundRect(this.mDrawableRect, f, f, this.mBitmapPaint); + redrawBitmapForSquareCorners(paramCanvas); + return; + } + paramCanvas.drawRect(this.mDrawableRect, this.mBitmapPaint); + if (this.mBorderWidth > 0.0F) + paramCanvas.drawRect(this.mBorderRect, this.mBorderPaint); + } + + public int getAlpha() { + return this.mBitmapPaint.getAlpha(); + } + + public int getBorderColor() { + return this.mBorderColor.getDefaultColor(); + } + + public ColorStateList getBorderColors() { + return this.mBorderColor; + } + + public float getBorderWidth() { + return this.mBorderWidth; + } + + public ColorFilter getColorFilter() { + return this.mBitmapPaint.getColorFilter(); + } + + public float getCornerRadius() { + return this.mCornerRadius; + } + + public float getCornerRadius(int paramInt) { + return this.mCornersRounded[paramInt] ? this.mCornerRadius : 0.0F; + } + + public int getIntrinsicHeight() { + return this.mBitmapHeight; + } + + public int getIntrinsicWidth() { + return this.mBitmapWidth; + } + + public int getOpacity() { + return -3; + } + + public ImageView.ScaleType getScaleType() { + return this.mScaleType; + } + + public Bitmap getSourceBitmap() { + return this.mBitmap; + } + + public Shader.TileMode getTileModeX() { + return this.mTileModeX; + } + + public Shader.TileMode getTileModeY() { + return this.mTileModeY; + } + + public boolean isOval() { + return this.mOval; + } + + public boolean isStateful() { + return this.mBorderColor.isStateful(); + } + + protected void onBoundsChange(Rect paramRect) { + super.onBoundsChange(paramRect); + this.mBounds.set(paramRect); + updateShaderMatrix(); + } + + protected boolean onStateChange(int[] paramArrayOfint) { + int i = this.mBorderColor.getColorForState(paramArrayOfint, 0); + if (this.mBorderPaint.getColor() != i) { + this.mBorderPaint.setColor(i); + return true; + } + return super.onStateChange(paramArrayOfint); + } + + public void setAlpha(int paramInt) { + this.mBitmapPaint.setAlpha(paramInt); + invalidateSelf(); + } + + public RoundedDrawable setBorderColor(int paramInt) { + return setBorderColor(ColorStateList.valueOf(paramInt)); + } + + public RoundedDrawable setBorderColor(ColorStateList paramColorStateList) { + if (paramColorStateList == null) + paramColorStateList = ColorStateList.valueOf(0); + this.mBorderColor = paramColorStateList; + this.mBorderPaint.setColor(this.mBorderColor.getColorForState(getState(), -16777216)); + return this; + } + + public RoundedDrawable setBorderWidth(float paramFloat) { + this.mBorderWidth = paramFloat; + this.mBorderPaint.setStrokeWidth(this.mBorderWidth); + return this; + } + + public void setColorFilter(ColorFilter paramColorFilter) { + this.mBitmapPaint.setColorFilter(paramColorFilter); + invalidateSelf(); + } + + public RoundedDrawable setCornerRadius(float paramFloat) { + setCornerRadius(paramFloat, paramFloat, paramFloat, paramFloat); + return this; + } + + public RoundedDrawable setCornerRadius(float paramFloat1, float paramFloat2, float paramFloat3, float paramFloat4) { + HashSet hashSet = new HashSet(4); + hashSet.add(Float.valueOf(paramFloat1)); + hashSet.add(Float.valueOf(paramFloat2)); + hashSet.add(Float.valueOf(paramFloat3)); + hashSet.add(Float.valueOf(paramFloat4)); + hashSet.remove(Float.valueOf(0.0F)); + if (hashSet.size() <= 1) { + if (!hashSet.isEmpty()) { + float f = ((Float)hashSet.iterator().next()).floatValue(); + if (!Float.isInfinite(f) && !Float.isNaN(f) && f >= 0.0F) { + this.mCornerRadius = f; + } else { + StringBuilder stringBuilder = new StringBuilder("Invalid radius value: "); + stringBuilder.append(f); + throw new IllegalArgumentException(stringBuilder.toString()); + } + } else { + this.mCornerRadius = 0.0F; + } + boolean[] arrayOfBoolean = this.mCornersRounded; + boolean bool2 = false; + if (paramFloat1 > 0.0F) { + bool1 = true; + } else { + bool1 = false; + } + arrayOfBoolean[0] = bool1; + arrayOfBoolean = this.mCornersRounded; + if (paramFloat2 > 0.0F) { + bool1 = true; + } else { + bool1 = false; + } + arrayOfBoolean[1] = bool1; + arrayOfBoolean = this.mCornersRounded; + if (paramFloat3 > 0.0F) { + bool1 = true; + } else { + bool1 = false; + } + arrayOfBoolean[3] = bool1; + arrayOfBoolean = this.mCornersRounded; + boolean bool1 = bool2; + if (paramFloat4 > 0.0F) + bool1 = true; + arrayOfBoolean[2] = bool1; + return this; + } + throw new IllegalArgumentException("Multiple nonzero corner radii not yet supported."); + } + + public RoundedDrawable setCornerRadius(int paramInt, float paramFloat) { + if (paramFloat != 0.0F) { + float f = this.mCornerRadius; + if (f != 0.0F && f != paramFloat) + throw new IllegalArgumentException("Multiple nonzero corner radii not yet supported."); + } + if (paramFloat == 0.0F) { + if (only(paramInt, this.mCornersRounded)) + this.mCornerRadius = 0.0F; + this.mCornersRounded[paramInt] = false; + return this; + } + if (this.mCornerRadius == 0.0F) + this.mCornerRadius = paramFloat; + this.mCornersRounded[paramInt] = true; + return this; + } + + public void setDither(boolean paramBoolean) { + this.mBitmapPaint.setDither(paramBoolean); + invalidateSelf(); + } + + public void setFilterBitmap(boolean paramBoolean) { + this.mBitmapPaint.setFilterBitmap(paramBoolean); + invalidateSelf(); + } + + public RoundedDrawable setOval(boolean paramBoolean) { + this.mOval = paramBoolean; + return this; + } + + public RoundedDrawable setScaleType(ImageView.ScaleType paramScaleType) { + ImageView.ScaleType scaleType = paramScaleType; + if (paramScaleType == null) + scaleType = ImageView.ScaleType.FIT_CENTER; + if (this.mScaleType != scaleType) { + this.mScaleType = scaleType; + updateShaderMatrix(); + } + return this; + } + + public RoundedDrawable setTileModeX(Shader.TileMode paramTileMode) { + if (this.mTileModeX != paramTileMode) { + this.mTileModeX = paramTileMode; + this.mRebuildShader = true; + invalidateSelf(); + } + return this; + } + + public RoundedDrawable setTileModeY(Shader.TileMode paramTileMode) { + if (this.mTileModeY != paramTileMode) { + this.mTileModeY = paramTileMode; + this.mRebuildShader = true; + invalidateSelf(); + } + return this; + } + + public Bitmap toBitmap() { + return drawableToBitmap(this); + } + + public static class Corner {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\RoundedDrawable.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/RoundedImageView.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/RoundedImageView.java new file mode 100644 index 0000000..797327a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/game/RoundedImageView.java @@ -0,0 +1,467 @@ +package com.tt.miniapp.component.nativeview.game; + +import android.content.Context; +import android.content.res.ColorStateList; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.ColorFilter; +import android.graphics.Shader; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.LayerDrawable; +import android.net.Uri; +import android.util.AttributeSet; +import android.widget.ImageView; + +public class RoundedImageView extends ImageView { + public static final Shader.TileMode DEFAULT_TILE_MODE = Shader.TileMode.CLAMP; + + private static final ImageView.ScaleType[] SCALE_TYPES = new ImageView.ScaleType[] { ImageView.ScaleType.MATRIX, ImageView.ScaleType.FIT_XY, ImageView.ScaleType.FIT_START, ImageView.ScaleType.FIT_CENTER, ImageView.ScaleType.FIT_END, ImageView.ScaleType.CENTER, ImageView.ScaleType.CENTER_CROP, ImageView.ScaleType.CENTER_INSIDE }; + + private Drawable mBackgroundDrawable; + + private int mBackgroundResource; + + private ColorStateList mBorderColor = ColorStateList.valueOf(-16777216); + + private float mBorderWidth = 0.0F; + + private ColorFilter mColorFilter = null; + + private boolean mColorMod = false; + + private final float[] mCornerRadii = new float[] { 0.0F, 0.0F, 0.0F, 0.0F }; + + private Drawable mDrawable; + + private boolean mHasColorFilter = false; + + private boolean mIsOval = false; + + private boolean mMutateBackground = false; + + private int mResource; + + private ImageView.ScaleType mScaleType; + + private Shader.TileMode mTileModeX; + + private Shader.TileMode mTileModeY; + + public RoundedImageView(Context paramContext) { + super(paramContext); + Shader.TileMode tileMode = DEFAULT_TILE_MODE; + this.mTileModeX = tileMode; + this.mTileModeY = tileMode; + } + + public RoundedImageView(Context paramContext, AttributeSet paramAttributeSet) { + this(paramContext, paramAttributeSet, 0); + } + + public RoundedImageView(Context paramContext, AttributeSet paramAttributeSet, int paramInt) { + super(paramContext, paramAttributeSet, paramInt); + Shader.TileMode tileMode = DEFAULT_TILE_MODE; + this.mTileModeX = tileMode; + this.mTileModeY = tileMode; + TypedArray typedArray = paramContext.obtainStyledAttributes(paramAttributeSet, new int[] { + 16843037, 2097283108, 2097283109, 2097283110, 2097283111, 2097283112, 2097283113, 2097283114, 2097283115, 2097283116, + 2097283117, 2097283118, 2097283119 }, paramInt, 0); + paramInt = typedArray.getInt(0, -1); + if (paramInt >= 0) { + setScaleType(SCALE_TYPES[paramInt]); + } else { + setScaleType(ImageView.ScaleType.FIT_CENTER); + } + float f = typedArray.getDimensionPixelSize(3, -1); + this.mCornerRadii[0] = typedArray.getDimensionPixelSize(6, -1); + this.mCornerRadii[1] = typedArray.getDimensionPixelSize(7, -1); + this.mCornerRadii[3] = typedArray.getDimensionPixelSize(5, -1); + this.mCornerRadii[2] = typedArray.getDimensionPixelSize(4, -1); + int j = this.mCornerRadii.length; + paramInt = 0; + int i = 0; + while (paramInt < j) { + float[] arrayOfFloat = this.mCornerRadii; + if (arrayOfFloat[paramInt] < 0.0F) { + arrayOfFloat[paramInt] = 0.0F; + } else { + i = 1; + } + paramInt++; + } + if (!i) { + float f1 = f; + if (f < 0.0F) + f1 = 0.0F; + i = this.mCornerRadii.length; + for (paramInt = 0; paramInt < i; paramInt++) + this.mCornerRadii[paramInt] = f1; + } + this.mBorderWidth = typedArray.getDimensionPixelSize(2, -1); + if (this.mBorderWidth < 0.0F) + this.mBorderWidth = 0.0F; + this.mBorderColor = typedArray.getColorStateList(1); + if (this.mBorderColor == null) + this.mBorderColor = ColorStateList.valueOf(-16777216); + this.mMutateBackground = typedArray.getBoolean(8, false); + this.mIsOval = typedArray.getBoolean(9, false); + paramInt = typedArray.getInt(10, -2); + if (paramInt != -2) { + setTileModeX(parseTileMode(paramInt)); + setTileModeY(parseTileMode(paramInt)); + } + paramInt = typedArray.getInt(11, -2); + if (paramInt != -2) + setTileModeX(parseTileMode(paramInt)); + paramInt = typedArray.getInt(12, -2); + if (paramInt != -2) + setTileModeY(parseTileMode(paramInt)); + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(true); + if (this.mMutateBackground) + super.setBackgroundDrawable(this.mBackgroundDrawable); + typedArray.recycle(); + } + + private void applyColorMod() { + Drawable drawable = this.mDrawable; + if (drawable != null && this.mColorMod) { + this.mDrawable = drawable.mutate(); + if (this.mHasColorFilter) + this.mDrawable.setColorFilter(this.mColorFilter); + } + } + + private static Shader.TileMode parseTileMode(int paramInt) { + return (paramInt != 0) ? ((paramInt != 1) ? ((paramInt != 2) ? null : Shader.TileMode.MIRROR) : Shader.TileMode.REPEAT) : Shader.TileMode.CLAMP; + } + + private Drawable resolveBackgroundResource() { + Resources resources = getResources(); + Drawable drawable2 = null; + if (resources == null) + return null; + int i = this.mBackgroundResource; + Drawable drawable1 = drawable2; + if (i != 0) + try { + drawable1 = resources.getDrawable(i); + } catch (Exception exception) { + this.mBackgroundResource = 0; + drawable1 = drawable2; + } + return RoundedDrawable.fromDrawable(drawable1); + } + + private Drawable resolveResource() { + Resources resources = getResources(); + Drawable drawable2 = null; + if (resources == null) + return null; + int i = this.mResource; + Drawable drawable1 = drawable2; + if (i != 0) + try { + drawable1 = resources.getDrawable(i); + } catch (Exception exception) { + this.mResource = 0; + drawable1 = drawable2; + } + return RoundedDrawable.fromDrawable(drawable1); + } + + private void updateAttrs(Drawable paramDrawable, ImageView.ScaleType paramScaleType) { + float[] arrayOfFloat; + if (paramDrawable == null) + return; + boolean bool = paramDrawable instanceof RoundedDrawable; + int i = 0; + if (bool) { + paramDrawable = paramDrawable; + paramDrawable.setScaleType(paramScaleType).setBorderWidth(this.mBorderWidth).setBorderColor(this.mBorderColor).setOval(this.mIsOval).setTileModeX(this.mTileModeX).setTileModeY(this.mTileModeY); + arrayOfFloat = this.mCornerRadii; + if (arrayOfFloat != null) + paramDrawable.setCornerRadius(arrayOfFloat[0], arrayOfFloat[1], arrayOfFloat[3], arrayOfFloat[2]); + applyColorMod(); + return; + } + if (paramDrawable instanceof LayerDrawable) { + LayerDrawable layerDrawable = (LayerDrawable)paramDrawable; + int j = layerDrawable.getNumberOfLayers(); + while (i < j) { + updateAttrs(layerDrawable.getDrawable(i), (ImageView.ScaleType)arrayOfFloat); + i++; + } + } + } + + private void updateBackgroundDrawableAttrs(boolean paramBoolean) { + if (this.mMutateBackground) { + if (paramBoolean) + this.mBackgroundDrawable = RoundedDrawable.fromDrawable(this.mBackgroundDrawable); + updateAttrs(this.mBackgroundDrawable, ImageView.ScaleType.FIT_XY); + } + } + + private void updateDrawableAttrs() { + updateAttrs(this.mDrawable, this.mScaleType); + } + + public void RoundedImageView__onDetachedFromWindow$___twin___() { + super.onDetachedFromWindow(); + } + + protected void drawableStateChanged() { + super.drawableStateChanged(); + invalidate(); + } + + public int getBorderColor() { + return this.mBorderColor.getDefaultColor(); + } + + public ColorStateList getBorderColors() { + return this.mBorderColor; + } + + public float getBorderWidth() { + return this.mBorderWidth; + } + + public float getCornerRadius() { + return getMaxCornerRadius(); + } + + public float getCornerRadius(int paramInt) { + return this.mCornerRadii[paramInt]; + } + + public float getMaxCornerRadius() { + float[] arrayOfFloat = this.mCornerRadii; + int j = arrayOfFloat.length; + float f = 0.0F; + for (int i = 0; i < j; i++) + f = Math.max(arrayOfFloat[i], f); + return f; + } + + public ImageView.ScaleType getScaleType() { + return this.mScaleType; + } + + public Shader.TileMode getTileModeX() { + return this.mTileModeX; + } + + public Shader.TileMode getTileModeY() { + return this.mTileModeY; + } + + public boolean isOval() { + return this.mIsOval; + } + + public void mutateBackground(boolean paramBoolean) { + if (this.mMutateBackground == paramBoolean) + return; + this.mMutateBackground = paramBoolean; + updateBackgroundDrawableAttrs(true); + invalidate(); + } + + public boolean mutatesBackground() { + return this.mMutateBackground; + } + + protected void onDetachedFromWindow() { + _lancet.com_ss_android_ugc_aweme_lancet_ImageStopLossLanect_imageViewOnDetachedFromWindow(this); + } + + public void setBackground(Drawable paramDrawable) { + setBackgroundDrawable(paramDrawable); + } + + public void setBackgroundColor(int paramInt) { + this.mBackgroundDrawable = (Drawable)new ColorDrawable(paramInt); + setBackgroundDrawable(this.mBackgroundDrawable); + } + + @Deprecated + public void setBackgroundDrawable(Drawable paramDrawable) { + this.mBackgroundDrawable = paramDrawable; + updateBackgroundDrawableAttrs(true); + super.setBackgroundDrawable(this.mBackgroundDrawable); + } + + public void setBackgroundResource(int paramInt) { + if (this.mBackgroundResource != paramInt) { + this.mBackgroundResource = paramInt; + this.mBackgroundDrawable = resolveBackgroundResource(); + setBackgroundDrawable(this.mBackgroundDrawable); + } + } + + public void setBorderColor(int paramInt) { + setBorderColor(ColorStateList.valueOf(paramInt)); + } + + public void setBorderColor(ColorStateList paramColorStateList) { + if (this.mBorderColor.equals(paramColorStateList)) + return; + if (paramColorStateList == null) + paramColorStateList = ColorStateList.valueOf(-16777216); + this.mBorderColor = paramColorStateList; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(false); + if (this.mBorderWidth > 0.0F) + invalidate(); + } + + public void setBorderWidth(float paramFloat) { + if (this.mBorderWidth == paramFloat) + return; + this.mBorderWidth = paramFloat; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(false); + invalidate(); + } + + public void setBorderWidth(int paramInt) { + setBorderWidth(getResources().getDimension(paramInt)); + } + + public void setColorFilter(ColorFilter paramColorFilter) { + if (this.mColorFilter != paramColorFilter) { + this.mColorFilter = paramColorFilter; + this.mHasColorFilter = true; + this.mColorMod = true; + applyColorMod(); + invalidate(); + } + } + + public void setCornerRadius(float paramFloat) { + setCornerRadius(paramFloat, paramFloat, paramFloat, paramFloat); + } + + public void setCornerRadius(float paramFloat1, float paramFloat2, float paramFloat3, float paramFloat4) { + float[] arrayOfFloat = this.mCornerRadii; + if (arrayOfFloat[0] == paramFloat1 && arrayOfFloat[1] == paramFloat2 && arrayOfFloat[3] == paramFloat4 && arrayOfFloat[2] == paramFloat3) + return; + arrayOfFloat = this.mCornerRadii; + arrayOfFloat[0] = paramFloat1; + arrayOfFloat[1] = paramFloat2; + arrayOfFloat[2] = paramFloat3; + arrayOfFloat[3] = paramFloat4; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(false); + invalidate(); + } + + public void setCornerRadius(int paramInt, float paramFloat) { + float[] arrayOfFloat = this.mCornerRadii; + if (arrayOfFloat[paramInt] == paramFloat) + return; + arrayOfFloat[paramInt] = paramFloat; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(false); + invalidate(); + } + + public void setCornerRadiusDimen(int paramInt) { + float f = getResources().getDimension(paramInt); + setCornerRadius(f, f, f, f); + } + + public void setCornerRadiusDimen(int paramInt1, int paramInt2) { + setCornerRadius(paramInt1, getResources().getDimensionPixelSize(paramInt2)); + } + + public void setImageBitmap(Bitmap paramBitmap) { + this.mResource = 0; + this.mDrawable = RoundedDrawable.fromBitmap(paramBitmap); + updateDrawableAttrs(); + super.setImageDrawable(this.mDrawable); + } + + public void setImageDrawable(Drawable paramDrawable) { + this.mResource = 0; + this.mDrawable = RoundedDrawable.fromDrawable(paramDrawable); + updateDrawableAttrs(); + super.setImageDrawable(this.mDrawable); + } + + public void setImageResource(int paramInt) { + if (this.mResource != paramInt) { + this.mResource = paramInt; + this.mDrawable = resolveResource(); + updateDrawableAttrs(); + super.setImageDrawable(this.mDrawable); + } + } + + public void setImageURI(Uri paramUri) { + super.setImageURI(paramUri); + setImageDrawable(getDrawable()); + } + + public void setOval(boolean paramBoolean) { + this.mIsOval = paramBoolean; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(false); + invalidate(); + } + + public void setScaleType(ImageView.ScaleType paramScaleType) { + if (this.mScaleType != paramScaleType) { + this.mScaleType = paramScaleType; + switch (paramScaleType) { + default: + super.setScaleType(paramScaleType); + break; + case CENTER: + case CENTER_CROP: + case CENTER_INSIDE: + case FIT_CENTER: + case FIT_START: + case FIT_END: + case null: + super.setScaleType(ImageView.ScaleType.FIT_XY); + break; + } + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(false); + invalidate(); + } + } + + public void setTileModeX(Shader.TileMode paramTileMode) { + if (this.mTileModeX == paramTileMode) + return; + this.mTileModeX = paramTileMode; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(false); + invalidate(); + } + + public void setTileModeY(Shader.TileMode paramTileMode) { + if (this.mTileModeY == paramTileMode) + return; + this.mTileModeY = paramTileMode; + updateDrawableAttrs(); + updateBackgroundDrawableAttrs(false); + invalidate(); + } + + public static class Corner {} + + class RoundedImageView {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\game\RoundedImageView.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/LivePlayer$WhenMappings.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/LivePlayer$WhenMappings.java new file mode 100644 index 0000000..621135f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/LivePlayer$WhenMappings.java @@ -0,0 +1,10 @@ +package com.tt.miniapp.component.nativeview.liveplayer; + +import com.bytedance.sandboxapp.protocol.service.j.a; + + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\liveplayer\LivePlayer$WhenMappings.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/LivePlayer.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/LivePlayer.java new file mode 100644 index 0000000..a195b4f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/LivePlayer.java @@ -0,0 +1,516 @@ +package com.tt.miniapp.component.nativeview.liveplayer; + +import android.content.Context; +import android.graphics.Color; +import android.text.TextUtils; +import android.view.TextureView; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; +import com.bytedance.sandboxapp.protocol.service.j.a; +import com.tt.frontendapiinterface.j; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.component.nativeview.NativeComponent; +import com.tt.miniapp.component.nativeview.liveplayer.context.ILivePlayerContext; +import com.tt.miniapp.component.nativeview.liveplayer.context.LiveComponentContext; +import com.tt.miniapp.component.nativeview.liveplayer.util.LivePlayerUtil; +import com.tt.miniapp.component.nativeview.liveplayer.view.LivePlayerTextureView; +import com.tt.miniapp.liveplayer.ITTLivePlayer; +import com.tt.miniapp.liveplayer.dns.ILivePlayerDns; +import com.tt.miniapp.liveplayer.dns.LivePlayerDnsManager; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.util.NativeDimenUtil; +import com.tt.option.e.k; +import d.f; +import d.f.a.a; +import d.f.b.g; +import d.f.b.l; +import d.f.b.m; +import d.f.b.u; +import d.f.b.v; +import d.f.b.x; +import d.g; +import d.k.d; +import d.k.h; +import java.util.HashMap; +import java.util.Iterator; +import org.json.JSONObject; + +public final class LivePlayer extends RelativeLayout implements NativeComponent { + public static final Companion Companion = new Companion(null); + + private HashMap _$_findViewCache; + + private final int mComponentId; + + private final Context mContext; + + private LivePlayerTextureView mHostTextureView; + + private ILivePlayerContext mLiveContext; + + private final f mLivePlayer$delegate; + + private final AbsoluteLayout mParent; + + private final JSONObject mPropertyObject; + + private final WebViewManager.IRender mRender; + + public LivePlayer(Context paramContext, int paramInt, AbsoluteLayout paramAbsoluteLayout, WebViewManager.IRender paramIRender) { + super(paramContext); + this.mContext = paramContext; + this.mComponentId = paramInt; + this.mParent = paramAbsoluteLayout; + this.mRender = paramIRender; + this.mPropertyObject = new JSONObject(); + this.mLivePlayer$delegate = g.a(LivePlayer$mLivePlayer$2.INSTANCE); + setBackgroundColor(Color.parseColor("#ff000000")); + this.mHostTextureView = new LivePlayerTextureView(getContext()); + View view = (View)this.mHostTextureView; + RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(-1, -1); + layoutParams.addRule(13, -1); + addView(view, (ViewGroup.LayoutParams)layoutParams); + HostDependManager hostDependManager = HostDependManager.getInst(); + AppbrandContext appbrandContext = AppbrandContext.getInst(); + l.a(appbrandContext, "AppbrandContext.getInst()"); + ILivePlayerDns iLivePlayerDns = hostDependManager.getLivePlayerDnsOptimizer((Context)appbrandContext.getApplicationContext()); + if (iLivePlayerDns != null && !LivePlayerDnsManager.Companion.getInstance().hasBind()) + LivePlayerDnsManager.Companion.getInstance().bindLifeCycle(iLivePlayerDns); + } + + private final ITTLivePlayer getMLivePlayer() { + return (ITTLivePlayer)this.mLivePlayer$delegate.getValue(); + } + + private final void publishEventToJsContext(String paramString, JSONObject paramJSONObject) { + AppbrandApplicationImpl appbrandApplicationImpl = AppbrandApplicationImpl.getInst(); + l.a(appbrandApplicationImpl, "AppbrandApplicationImpl.getInst()"); + j j = appbrandApplicationImpl.getJsBridge(); + if (j != null) + j.sendMsgToJsCore(paramString, paramJSONObject.toString(), this.mRender.getWebViewId()); + } + + private final void publishEventToWebView(String paramString, JSONObject paramJSONObject) { + AppbrandApplicationImpl appbrandApplicationImpl = AppbrandApplicationImpl.getInst(); + l.a(appbrandApplicationImpl, "AppbrandApplicationImpl.getInst()"); + WebViewManager webViewManager = appbrandApplicationImpl.getWebViewManager(); + if (webViewManager != null) + webViewManager.publish(this.mRender.getWebViewId(), paramString, paramJSONObject.toString()); + } + + private final void setDisPlayMode(String paramString1, String paramString2) { + ILivePlayerContext iLivePlayerContext = this.mLiveContext; + if (iLivePlayerContext == null) + l.a(); + iLivePlayerContext.setDisplayMode(new ITTLivePlayer.DisplayMode(LivePlayerUtil.INSTANCE.convertObjectFit(paramString1), LivePlayerUtil.INSTANCE.convertDisplayOrientation(paramString2))); + } + + private final void setFilePath(String paramString, boolean paramBoolean) { + if (TextUtils.isEmpty(paramString)) + return; + ILivePlayerContext iLivePlayerContext = this.mLiveContext; + if (iLivePlayerContext == null) + l.a(); + iLivePlayerContext.setPlayUrl(paramString); + if (paramBoolean) + operateLivePlayer("play", (Object)null); + } + + private final void setHidden(boolean paramBoolean) { + if (paramBoolean) { + if (getVisibility() == 0) { + setVisibility(8); + ILivePlayerContext iLivePlayerContext = this.mLiveContext; + if (iLivePlayerContext == null) + l.a(); + iLivePlayerContext.stop(); + return; + } + } else { + setVisibility(0); + } + } + + private final void setLayout(JSONObject paramJSONObject) { + ILivePlayerContext iLivePlayerContext = this.mLiveContext; + if (iLivePlayerContext == null) + l.a(); + if (iLivePlayerContext.isFullScreen()) + return; + ViewGroup.LayoutParams layoutParams = getLayoutParams(); + if (!(layoutParams instanceof AbsoluteLayout.LayoutParams)) + return; + if (paramJSONObject.has("position")) { + JSONObject jSONObject = paramJSONObject.optJSONObject("position"); + int i = NativeDimenUtil.convertRxToPx(jSONObject.optInt("left")); + int j = NativeDimenUtil.convertRxToPx(jSONObject.optInt("top")); + int k = this.mParent.getCurScrollX(); + int m = this.mParent.getCurScrollY(); + layoutParams.height = NativeDimenUtil.convertRxToPx(jSONObject.optInt("height")); + layoutParams.width = NativeDimenUtil.convertRxToPx(jSONObject.optInt("width")); + AbsoluteLayout.LayoutParams layoutParams1 = (AbsoluteLayout.LayoutParams)layoutParams; + layoutParams1.x = i - k; + layoutParams1.y = j - m; + } + if (paramJSONObject.has("fixed")) + ((AbsoluteLayout.LayoutParams)layoutParams).isFixed = paramJSONObject.optBoolean("fixed"); + if (paramJSONObject.has("zIndex")) + ((AbsoluteLayout.LayoutParams)layoutParams).zIndex = paramJSONObject.optInt("zIndex"); + requestLayout(); + } + + private final void setMuted(boolean paramBoolean) { + String str; + if (paramBoolean) { + str = "mute"; + } else { + str = "unmute"; + } + operateLivePlayer(str, (Object)null); + } + + private final void updatePropertyObject(JSONObject paramJSONObject) { + Iterator iterator = paramJSONObject.keys(); + l.a(iterator, "diff.keys()"); + while (iterator.hasNext()) { + String str = iterator.next(); + this.mPropertyObject.put(str, paramJSONObject.opt(str)); + } + } + + public final void _$_clearFindViewByIdCache() { + HashMap hashMap = this._$_findViewCache; + if (hashMap != null) + hashMap.clear(); + } + + public final View _$_findCachedViewById(int paramInt) { + if (this._$_findViewCache == null) + this._$_findViewCache = new HashMap(); + View view2 = (View)this._$_findViewCache.get(Integer.valueOf(paramInt)); + View view1 = view2; + if (view2 == null) { + view1 = findViewById(paramInt); + this._$_findViewCache.put(Integer.valueOf(paramInt), view1); + } + return view1; + } + + public final void addView(String paramString, k paramk) { + AppbrandApplicationImpl appbrandApplicationImpl = AppbrandApplicationImpl.getInst(); + l.a(appbrandApplicationImpl, "AppbrandApplicationImpl.getInst()"); + Context context = appbrandApplicationImpl.getMiniAppContext().getApplicationContext(); + l.a(context, "AppbrandApplicationImpl.…ontext.applicationContext"); + this.mLiveContext = (ILivePlayerContext)new LiveComponentContext(context, this.mRender, this, getMLivePlayer()); + ILivePlayerContext iLivePlayerContext = this.mLiveContext; + if (iLivePlayerContext == null) + l.a(); + LivePlayerTextureView livePlayerTextureView = this.mHostTextureView; + if (livePlayerTextureView == null) + l.a(); + iLivePlayerContext.bindSurface((TextureView)livePlayerTextureView); + this.mParent.addView((View)this); + updateView(paramString, paramk); + } + + public final Context getMContext() { + return this.mContext; + } + + public final WebViewManager.IRender getMRender() { + return this.mRender; + } + + public final boolean onBackPressed() { + ILivePlayerContext iLivePlayerContext = this.mLiveContext; + if (iLivePlayerContext != null && iLivePlayerContext.isFullScreen()) { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("livePlayerId", this.mComponentId); + publishEventToWebView("onLivePlayerExitFullScreen", jSONObject); + return true; + } + return false; + } + + public final void onDestroy() { + removeView(this.mComponentId, (k)null); + } + + public final void onLivePlayerError() { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("livePlayerId", this.mComponentId); + jSONObject.put("data", this.mPropertyObject.opt("data")); + publishEventToJsContext("onLivePlayerError", jSONObject); + } + + public final void onLivePlayerFullscreenChange(boolean paramBoolean, a.a parama) { + String str; + l.b(parama, "direction"); + JSONObject jSONObject = new JSONObject(); + jSONObject.put("livePlayerId", this.mComponentId); + jSONObject.put("data", this.mPropertyObject.opt("data")); + jSONObject.put("fullScreen", paramBoolean); + int i = LivePlayer$WhenMappings.$EnumSwitchMapping$0[parama.ordinal()]; + if (i != 1 && i != 2 && i != 3) { + str = "vertical"; + } else { + str = "horizontal"; + } + jSONObject.put("direction", str); + publishEventToJsContext("onLivePlayerFullscreenChange", jSONObject); + } + + public final void onLivePlayerStateChange(int paramInt) { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("livePlayerId", this.mComponentId); + jSONObject.put("data", this.mPropertyObject.opt("data")); + jSONObject.put("code", paramInt); + publishEventToJsContext("onLivePlayerStateChange", jSONObject); + } + + protected final void onMeasure(int paramInt1, int paramInt2) { + ILivePlayerContext iLivePlayerContext = this.mLiveContext; + if (iLivePlayerContext != null && iLivePlayerContext.isFullScreen()) { + super.onMeasure(View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.getSize(paramInt1), 1073741824), View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.getSize(paramInt2), 1073741824)); + return; + } + super.onMeasure(paramInt1, paramInt2); + } + + public final void onViewPause() { + ILivePlayerContext iLivePlayerContext = this.mLiveContext; + if (iLivePlayerContext != null) + iLivePlayerContext.onPause(); + } + + public final void onViewResume() { + ILivePlayerContext iLivePlayerContext = this.mLiveContext; + if (iLivePlayerContext != null) + iLivePlayerContext.onResume(); + } + + public final boolean operateLivePlayer(String paramString, Object paramObject) { + // Byte code: + // 0: aload_1 + // 1: ldc_w 'operateType' + // 4: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 7: aload_1 + // 8: invokevirtual hashCode : ()I + // 11: lookupswitch default -> 76, -840405966 -> 337, -802181223 -> 303, 3363353 -> 272, 3443508 -> 242, 3540994 -> 212, 106440182 -> 199, 458133450 -> 79 + // 76: goto -> 368 + // 79: aload_1 + // 80: ldc_w 'requestFullScreen' + // 83: invokevirtual equals : (Ljava/lang/Object;)Z + // 86: ifeq -> 368 + // 89: aload_2 + // 90: instanceof org/json/JSONObject + // 93: ifeq -> 197 + // 96: aload_0 + // 97: getfield mLiveContext : Lcom/tt/miniapp/component/nativeview/liveplayer/context/ILivePlayerContext; + // 100: astore_1 + // 101: aload_1 + // 102: ifnonnull -> 108 + // 105: invokestatic a : ()V + // 108: aload_0 + // 109: checkcast android/view/View + // 112: astore #4 + // 114: getstatic com/tt/miniapp/component/nativeview/liveplayer/util/LivePlayerUtil.INSTANCE : Lcom/tt/miniapp/component/nativeview/liveplayer/util/LivePlayerUtil; + // 117: astore #5 + // 119: aload_2 + // 120: checkcast org/json/JSONObject + // 123: astore_2 + // 124: aload #5 + // 126: aload_2 + // 127: ldc_w 'direction' + // 130: iconst_0 + // 131: invokevirtual optInt : (Ljava/lang/String;I)I + // 134: invokevirtual convertDegreeToOrientation : (I)Lcom/bytedance/sandboxapp/protocol/service/j/a$a; + // 137: astore #5 + // 139: new org/json/JSONObject + // 142: dup + // 143: invokespecial : ()V + // 146: astore #6 + // 148: aload_2 + // 149: ldc_w 'data' + // 152: invokevirtual optJSONObject : (Ljava/lang/String;)Lorg/json/JSONObject; + // 155: astore_2 + // 156: ldc_w 2147483647 + // 159: istore_3 + // 160: aload_2 + // 161: ifnull -> 175 + // 164: aload_2 + // 165: ldc_w 'zIndex' + // 168: ldc_w 2147483647 + // 171: invokevirtual optInt : (Ljava/lang/String;I)I + // 174: istore_3 + // 175: aload #6 + // 177: ldc_w 'zIndex' + // 180: iload_3 + // 181: invokevirtual put : (Ljava/lang/String;I)Lorg/json/JSONObject; + // 184: pop + // 185: aload_1 + // 186: aload #4 + // 188: aload #5 + // 190: aload #6 + // 192: invokeinterface requestFullScreen : (Landroid/view/View;Lcom/bytedance/sandboxapp/protocol/service/j/a$a;Lorg/json/JSONObject;)V + // 197: iconst_1 + // 198: ireturn + // 199: aload_1 + // 200: ldc_w 'pause' + // 203: invokevirtual equals : (Ljava/lang/Object;)Z + // 206: ifeq -> 368 + // 209: goto -> 222 + // 212: aload_1 + // 213: ldc_w 'stop' + // 216: invokevirtual equals : (Ljava/lang/Object;)Z + // 219: ifeq -> 368 + // 222: aload_0 + // 223: getfield mLiveContext : Lcom/tt/miniapp/component/nativeview/liveplayer/context/ILivePlayerContext; + // 226: astore_1 + // 227: aload_1 + // 228: ifnonnull -> 234 + // 231: invokestatic a : ()V + // 234: aload_1 + // 235: invokeinterface stop : ()V + // 240: iconst_1 + // 241: ireturn + // 242: aload_1 + // 243: ldc_w 'play' + // 246: invokevirtual equals : (Ljava/lang/Object;)Z + // 249: ifeq -> 368 + // 252: aload_0 + // 253: getfield mLiveContext : Lcom/tt/miniapp/component/nativeview/liveplayer/context/ILivePlayerContext; + // 256: astore_1 + // 257: aload_1 + // 258: ifnonnull -> 264 + // 261: invokestatic a : ()V + // 264: aload_1 + // 265: invokeinterface play : ()V + // 270: iconst_1 + // 271: ireturn + // 272: aload_1 + // 273: ldc_w 'mute' + // 276: invokevirtual equals : (Ljava/lang/Object;)Z + // 279: ifeq -> 368 + // 282: aload_0 + // 283: getfield mLiveContext : Lcom/tt/miniapp/component/nativeview/liveplayer/context/ILivePlayerContext; + // 286: astore_1 + // 287: aload_1 + // 288: ifnonnull -> 294 + // 291: invokestatic a : ()V + // 294: aload_1 + // 295: iconst_1 + // 296: invokeinterface setMuted : (Z)V + // 301: iconst_1 + // 302: ireturn + // 303: aload_1 + // 304: ldc_w 'exitFullScreen' + // 307: invokevirtual equals : (Ljava/lang/Object;)Z + // 310: ifeq -> 368 + // 313: aload_0 + // 314: getfield mLiveContext : Lcom/tt/miniapp/component/nativeview/liveplayer/context/ILivePlayerContext; + // 317: astore_1 + // 318: aload_1 + // 319: ifnonnull -> 325 + // 322: invokestatic a : ()V + // 325: aload_1 + // 326: aload_0 + // 327: checkcast android/view/View + // 330: invokeinterface exitFullScreen : (Landroid/view/View;)V + // 335: iconst_1 + // 336: ireturn + // 337: aload_1 + // 338: ldc_w 'unmute' + // 341: invokevirtual equals : (Ljava/lang/Object;)Z + // 344: ifeq -> 368 + // 347: aload_0 + // 348: getfield mLiveContext : Lcom/tt/miniapp/component/nativeview/liveplayer/context/ILivePlayerContext; + // 351: astore_1 + // 352: aload_1 + // 353: ifnonnull -> 359 + // 356: invokestatic a : ()V + // 359: aload_1 + // 360: iconst_0 + // 361: invokeinterface setMuted : (Z)V + // 366: iconst_1 + // 367: ireturn + // 368: ldc_w 'LivePlayer' + // 371: iconst_1 + // 372: anewarray java/lang/Object + // 375: dup + // 376: iconst_0 + // 377: ldc_w 'unsupported operateType' + // 380: aastore + // 381: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 384: iconst_0 + // 385: ireturn + } + + public final void removeView(int paramInt, k paramk) { + operateLivePlayer("stop", (Object)null); + ILivePlayerContext iLivePlayerContext = this.mLiveContext; + if (iLivePlayerContext == null) + l.a(); + iLivePlayerContext.release(); + } + + public final void updateView(String paramString, k paramk) { + if (paramString != null) { + JSONObject jSONObject = new JSONObject(paramString); + setLayout(jSONObject); + if (jSONObject.has("muted")) + setMuted(jSONObject.optBoolean("muted")); + String str1 = jSONObject.optString("objectFit", ITTLivePlayer.ObjectFit.CONTAIN.name()); + l.a(str1, "updateParam.optString(NA…r.ObjectFit.CONTAIN.name)"); + String str2 = jSONObject.optString("orientation", ITTLivePlayer.Orientation.VERTICAL.name()); + l.a(str2, "updateParam.optString(NA…rientation.VERTICAL.name)"); + setDisPlayMode(str1, str2); + if (jSONObject.has("hide")) + setHidden(jSONObject.optBoolean("hide")); + if (jSONObject.has("filePath")) { + boolean bool; + if (jSONObject.has("autoplay")) { + bool = jSONObject.optBoolean("autoplay"); + } else { + bool = this.mPropertyObject.optBoolean("autoplay"); + } + str1 = jSONObject.optString("filePath"); + l.a(str1, "updateParam.optString(NAME_FILEPATH)"); + setFilePath(str1, bool); + } + updatePropertyObject(jSONObject); + } + } + + public static final class Companion { + private Companion() {} + } + + static final class LivePlayer$mLivePlayer$2 extends m implements a { + public static final LivePlayer$mLivePlayer$2 INSTANCE = new LivePlayer$mLivePlayer$2(); + + LivePlayer$mLivePlayer$2() { + super(0); + } + + public final ITTLivePlayer invoke() { + HostDependManager hostDependManager = HostDependManager.getInst(); + AppbrandContext appbrandContext = AppbrandContext.getInst(); + l.a(appbrandContext, "AppbrandContext.getInst()"); + ITTLivePlayer iTTLivePlayer = hostDependManager.createLivePlayer((Context)appbrandContext.getApplicationContext()); + if (iTTLivePlayer != null) + return iTTLivePlayer; + throw (Throwable)new RuntimeException("feature is not supported in app"); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\liveplayer\LivePlayer.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/ILivePlayerContext.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/ILivePlayerContext.java new file mode 100644 index 0000000..ca621fb --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/ILivePlayerContext.java @@ -0,0 +1,45 @@ +package com.tt.miniapp.component.nativeview.liveplayer.context; + +import android.view.TextureView; +import android.view.View; +import com.bytedance.sandboxapp.protocol.service.j.a; +import com.tt.miniapp.liveplayer.ITTLivePlayer; +import org.json.JSONObject; + +public interface ILivePlayerContext { + void bindSurface(TextureView paramTextureView); + + void exitFullScreen(View paramView); + + boolean isFullScreen(); + + boolean isPlaying(); + + void onPause(); + + void onResume(); + + void pause(); + + void play(); + + void release(); + + void requestFullScreen(View paramView, a.a parama, JSONObject paramJSONObject); + + void setDisplayMode(ITTLivePlayer.DisplayMode paramDisplayMode); + + void setMuted(boolean paramBoolean); + + void setPlayUrl(String paramString); + + void setPlayUrl(String paramString, JSONObject paramJSONObject); + + void stop(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\liveplayer\context\ILivePlayerContext.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext$LivePlayerListener$WhenMappings.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext$LivePlayerListener$WhenMappings.java new file mode 100644 index 0000000..ce9b2aa --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext$LivePlayerListener$WhenMappings.java @@ -0,0 +1,10 @@ +package com.tt.miniapp.component.nativeview.liveplayer.context; + +import com.tt.miniapp.liveplayer.ITTLivePlayer; + + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\liveplayer\context\LiveComponentContext$LivePlayerListener$WhenMappings.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext$WhenMappings.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext$WhenMappings.java new file mode 100644 index 0000000..6985351 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext$WhenMappings.java @@ -0,0 +1,10 @@ +package com.tt.miniapp.component.nativeview.liveplayer.context; + +import com.bytedance.sandboxapp.protocol.service.j.a.a; + + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\liveplayer\context\LiveComponentContext$WhenMappings.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext.java new file mode 100644 index 0000000..b6608c4 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext.java @@ -0,0 +1,699 @@ +package com.tt.miniapp.component.nativeview.liveplayer.context; + +import android.content.Context; +import android.graphics.SurfaceTexture; +import android.os.Build; +import android.text.TextUtils; +import android.view.Surface; +import android.view.TextureView; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewParent; +import android.view.ViewTreeObserver; +import com.bytedance.sandboxapp.protocol.service.j.a; +import com.bytedance.sandboxapp.protocol.service.j.a.a; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.component.nativeview.liveplayer.LivePlayer; +import com.tt.miniapp.component.nativeview.liveplayer.context.surface.SurfaceHolder; +import com.tt.miniapp.component.nativeview.liveplayer.util.LivePlayerUtil; +import com.tt.miniapp.component.nativeview.liveplayer.view.LivePlayerTextureView; +import com.tt.miniapp.liveplayer.ITTLivePlayer; +import com.tt.miniapp.liveplayer.listener.ITTLivePlayerListener; +import com.tt.miniapp.liveplayer.listener.adapter.TTLivePlayerListenerAdapter; +import com.tt.miniapp.manager.NetStateManager; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.monitor.AppBrandMonitor; +import d.f.b.g; +import d.f.b.l; +import d.u; +import org.json.JSONObject; + +public final class LiveComponentContext implements a.c, ILivePlayerContext, NetStateManager.NetStateChangeListener { + public static final Companion Companion = new Companion(null); + + private final Context application; + + private final LivePlayer component; + + private final ITTLivePlayer livePlayer; + + private a mAudioFocusRequest; + + public SurfaceHolder mCacheSurface; + + private ITTLivePlayer.DisplayMode mDisplayMode; + + private boolean mFullScreen; + + private final LivePlayerTextureListener mLivePlayerTextureListener; + + private a mMediaServer; + + public NetStateManager.NetworkType mNetworkStatus; + + public String mPlayingUrl; + + private LayoutInfo mPreviousLayoutInfo; + + private boolean mResumePlayOnFocusGain; + + private boolean mResumePlayOnViewResume; + + private boolean mResumeWhenNetworkAvailable; + + public TextureView mTextureView; + + private final WebViewManager.IRender render; + + public LiveComponentContext(Context paramContext, WebViewManager.IRender paramIRender, LivePlayer paramLivePlayer, ITTLivePlayer paramITTLivePlayer) { + this.application = paramContext; + this.render = paramIRender; + this.component = paramLivePlayer; + this.livePlayer = paramITTLivePlayer; + this.mLivePlayerTextureListener = new LivePlayerTextureListener(); + this.mPlayingUrl = ""; + this.livePlayer.setListener((ITTLivePlayerListener)new LivePlayerListener()); + AppbrandApplicationImpl appbrandApplicationImpl = AppbrandApplicationImpl.getInst(); + l.a(appbrandApplicationImpl, "AppbrandApplicationImpl.getInst()"); + this.mMediaServer = (a)appbrandApplicationImpl.getMiniAppContext().getService(a.class); + NetStateManager.getInst().registerNetStateChangeReceiver(this); + } + + private final void applyFullScreen(a.a parama, int paramInt) { + if (Build.VERSION.SDK_INT < 23) { + ViewTreeObserver viewTreeObserver = this.component.getViewTreeObserver(); + viewTreeObserver.addOnGlobalLayoutListener(new LiveComponentContext$applyFullScreen$1(parama, paramInt, viewTreeObserver)); + return; + } + AbsoluteLayout.LayoutParams layoutParams = new AbsoluteLayout.LayoutParams(new ViewGroup.LayoutParams(-1, -1)); + layoutParams.x = 0; + layoutParams.y = 0; + layoutParams.zIndex = paramInt; + layoutParams.isFullScreen = true; + this.component.setLayoutParams((ViewGroup.LayoutParams)layoutParams); + } + + private final void applyPreviousLayoutInfo() { + ViewParent viewParent = this.component.getParent(); + if (viewParent instanceof AbsoluteLayout) { + LayoutInfo layoutInfo1 = this.mPreviousLayoutInfo; + if (layoutInfo1 == null) + return; + if (layoutInfo1 == null) + l.a(); + AbsoluteLayout absoluteLayout = (AbsoluteLayout)viewParent; + layoutInfo1.update(absoluteLayout); + LivePlayer livePlayer = this.component; + LayoutInfo layoutInfo2 = this.mPreviousLayoutInfo; + if (layoutInfo2 == null) + l.a(); + livePlayer.setLayoutParams((ViewGroup.LayoutParams)layoutInfo2.getPreviousLayoutParams()); + View view = (View)this.component; + layoutInfo2 = this.mPreviousLayoutInfo; + if (layoutInfo2 == null) + l.a(); + absoluteLayout.updateNativeViewOffset(view, layoutInfo2.getPreviousOffset()); + } + } + + private final void savePreviousLayoutInfo() { + ViewParent viewParent = this.component.getParent(); + if (viewParent instanceof AbsoluteLayout) { + ViewGroup.LayoutParams layoutParams = this.component.getLayoutParams(); + if (layoutParams != null) { + AbsoluteLayout.LayoutParams layoutParams1 = (AbsoluteLayout.LayoutParams)layoutParams; + AbsoluteLayout absoluteLayout = (AbsoluteLayout)viewParent; + AbsoluteLayout.ViewOffset viewOffset = absoluteLayout.getViewOffset(this.component.getId()); + l.a(viewOffset, "parent.getViewOffset(component.id)"); + this.mPreviousLayoutInfo = new LayoutInfo(layoutParams1, viewOffset, absoluteLayout.getCurScrollX(), absoluteLayout.getCurScrollY()); + return; + } + throw new u("null cannot be cast to non-null type com.tt.miniapp.view.webcore.AbsoluteLayout.LayoutParams"); + } + } + + public final void bindSurface(TextureView paramTextureView) { + l.b(paramTextureView, "textureView"); + this.mTextureView = paramTextureView; + paramTextureView = this.mTextureView; + if (paramTextureView == null) + l.a(); + paramTextureView.setSurfaceTextureListener(this.mLivePlayerTextureListener); + setDisplayMode(new ITTLivePlayer.DisplayMode(ITTLivePlayer.ObjectFit.CONTAIN, ITTLivePlayer.Orientation.VERTICAL)); + } + + public final void exitFullScreen(View paramView) { + l.b(paramView, "targetView"); + if (!this.mFullScreen) + return; + a a1 = this.mMediaServer; + if (a1 != null) + a1.exitFullScreen(paramView); + applyPreviousLayoutInfo(); + this.mFullScreen = false; + this.component.onLivePlayerFullscreenChange(this.mFullScreen, a.a.PORTRAIT); + } + + public final Context getApplication() { + return this.application; + } + + public final LivePlayer getComponent() { + return this.component; + } + + public final ITTLivePlayer getLivePlayer() { + return this.livePlayer; + } + + public final WebViewManager.IRender getRender() { + return this.render; + } + + public final boolean isFullScreen() { + return this.mFullScreen; + } + + public final boolean isPlaying() { + return this.livePlayer.isPlaying(); + } + + public final void onAudioFocusChanged(a.b paramb) { + // Byte code: + // 0: aload_1 + // 1: ldc_w 'state' + // 4: invokestatic b : (Ljava/lang/Object;Ljava/lang/String;)V + // 7: getstatic com/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext$WhenMappings.$EnumSwitchMapping$0 : [I + // 10: aload_1 + // 11: invokevirtual ordinal : ()I + // 14: iaload + // 15: istore_2 + // 16: iload_2 + // 17: iconst_1 + // 18: if_icmpeq -> 137 + // 21: iload_2 + // 22: iconst_2 + // 23: if_icmpeq -> 137 + // 26: iload_2 + // 27: iconst_3 + // 28: if_icmpeq -> 94 + // 31: iload_2 + // 32: iconst_4 + // 33: if_icmpeq -> 62 + // 36: iload_2 + // 37: iconst_5 + // 38: if_icmpeq -> 62 + // 41: ldc_w 'LiveComponentContext' + // 44: iconst_2 + // 45: anewarray java/lang/Object + // 48: dup + // 49: iconst_0 + // 50: ldc_w 'onAudioFocusChanged unexpected state' + // 53: aastore + // 54: dup + // 55: iconst_1 + // 56: aload_1 + // 57: aastore + // 58: invokestatic i : (Ljava/lang/String;[Ljava/lang/Object;)V + // 61: return + // 62: aload_0 + // 63: monitorenter + // 64: aload_0 + // 65: aload_0 + // 66: getfield livePlayer : Lcom/tt/miniapp/liveplayer/ITTLivePlayer; + // 69: invokeinterface isPlaying : ()Z + // 74: putfield mResumePlayOnFocusGain : Z + // 77: aload_0 + // 78: monitorexit + // 79: aload_0 + // 80: getfield livePlayer : Lcom/tt/miniapp/liveplayer/ITTLivePlayer; + // 83: invokeinterface stop : ()V + // 88: return + // 89: astore_1 + // 90: aload_0 + // 91: monitorexit + // 92: aload_1 + // 93: athrow + // 94: aload_0 + // 95: monitorenter + // 96: aload_0 + // 97: iconst_0 + // 98: putfield mResumePlayOnFocusGain : Z + // 101: aload_0 + // 102: monitorexit + // 103: aload_0 + // 104: getfield mMediaServer : Lcom/bytedance/sandboxapp/protocol/service/j/a; + // 107: astore_1 + // 108: aload_1 + // 109: ifnull -> 122 + // 112: aload_1 + // 113: aload_0 + // 114: getfield mAudioFocusRequest : Lcom/bytedance/sandboxapp/protocol/service/j/a/a; + // 117: invokeinterface abandonAudioFocus : (Lcom/bytedance/sandboxapp/protocol/service/j/a/a;)V + // 122: aload_0 + // 123: getfield livePlayer : Lcom/tt/miniapp/liveplayer/ITTLivePlayer; + // 126: invokeinterface stop : ()V + // 131: return + // 132: astore_1 + // 133: aload_0 + // 134: monitorexit + // 135: aload_1 + // 136: athrow + // 137: aload_0 + // 138: getfield mResumePlayOnFocusGain : Z + // 141: ifeq -> 168 + // 144: aload_0 + // 145: monitorenter + // 146: aload_0 + // 147: iconst_0 + // 148: putfield mResumePlayOnFocusGain : Z + // 151: aload_0 + // 152: monitorexit + // 153: aload_0 + // 154: getfield livePlayer : Lcom/tt/miniapp/liveplayer/ITTLivePlayer; + // 157: invokeinterface play : ()V + // 162: return + // 163: astore_1 + // 164: aload_0 + // 165: monitorexit + // 166: aload_1 + // 167: athrow + // 168: return + // Exception table: + // from to target type + // 64 77 89 finally + // 96 101 132 finally + // 146 151 163 finally + } + + public final void onNetStateChange(NetStateManager.NetworkType paramNetworkType) { + boolean bool; + l.b(paramNetworkType, "newNetworkType"); + if (paramNetworkType.isAvailable() && this.mResumeWhenNetworkAvailable) { + play(); + bool = false; + } else { + bool = this.livePlayer.isPlaying(); + } + this.mResumeWhenNetworkAvailable = bool; + } + + public final void onPause() { + if (this.livePlayer.isPlaying()) { + stop(); + this.mResumePlayOnViewResume = true; + } + } + + public final void onResume() { + if (this.mResumePlayOnViewResume) { + play(); + this.mResumePlayOnViewResume = false; + } + } + + public final void pause() { + a a1 = this.mMediaServer; + if (a1 != null) + a1.abandonAudioFocus(this.mAudioFocusRequest); + this.livePlayer.pause(); + } + + public final void play() { + if (this.mAudioFocusRequest == null) + this.mAudioFocusRequest = new a(a.b.GAIN_TRANSIENT, a.f.USAGE_MEDIA, a.e.SHARE, this); + a a1 = this.mMediaServer; + if (a1 != null) { + a.d d = a1.acquireAudioFocus(this.mAudioFocusRequest); + } else { + a1 = null; + } + if (a1 != a.d.FOCUS_REQUEST_GRANTED) + AppBrandLogger.e("LiveComponentContext", new Object[] { "acquireAudioFocus fail", a1 }); + this.livePlayer.play(); + } + + public final void release() { + SurfaceHolder surfaceHolder = this.mCacheSurface; + if (surfaceHolder != null) + surfaceHolder.release(); + this.livePlayer.release(); + a a1 = this.mMediaServer; + if (a1 != null) + a1.abandonAudioFocus(this.mAudioFocusRequest); + this.mAudioFocusRequest = null; + NetStateManager.getInst().unregisterNetStateChangeReceiver(this); + } + + public final void requestFullScreen(View paramView, a.a parama, JSONObject paramJSONObject) { + int i; + l.b(paramView, "targetView"); + l.b(parama, "direction"); + if (this.mFullScreen) + return; + savePreviousLayoutInfo(); + if (paramJSONObject != null) { + i = paramJSONObject.optInt("zIndex"); + } else { + i = Integer.MAX_VALUE; + } + applyFullScreen(parama, i); + a a1 = this.mMediaServer; + if (a1 != null) + a1.enterFullScreen(paramView, parama); + this.mFullScreen = true; + this.component.onLivePlayerFullscreenChange(this.mFullScreen, parama); + } + + public final void setDisplayMode(ITTLivePlayer.DisplayMode paramDisplayMode) { + l.b(paramDisplayMode, "displayMode"); + ITTLivePlayer.DisplayMode displayMode = this.mDisplayMode; + if (displayMode != null) { + if (displayMode == null) + l.a(); + if (displayMode.getObjectFit() == paramDisplayMode.getObjectFit()) { + displayMode = this.mDisplayMode; + if (displayMode == null) + l.a(); + if (displayMode.getDisplayOrientation() == paramDisplayMode.getDisplayOrientation()) + return; + } + } + TextureView textureView = this.mTextureView; + if (textureView instanceof LivePlayerTextureView) + if (textureView != null) { + ((LivePlayerTextureView)textureView).updateDisplayMode(paramDisplayMode); + } else { + throw new u("null cannot be cast to non-null type com.tt.miniapp.component.nativeview.liveplayer.view.LivePlayerTextureView"); + } + this.mDisplayMode = paramDisplayMode; + } + + public final void setMuted(boolean paramBoolean) { + this.livePlayer.muted(paramBoolean); + } + + public final void setPlayUrl(String paramString) { + l.b(paramString, "url"); + setPlayUrl(paramString, null); + } + + public final void setPlayUrl(String paramString, JSONObject paramJSONObject) { + l.b(paramString, "url"); + if (!TextUtils.equals(this.mPlayingUrl, paramString)) { + if (!TextUtils.isEmpty(this.mPlayingUrl)) + this.livePlayer.reset(); + this.mPlayingUrl = paramString; + this.livePlayer.setDataSource(this.mPlayingUrl, paramJSONObject); + } + } + + public final void stop() { + a a1 = this.mMediaServer; + if (a1 != null) + a1.abandonAudioFocus(this.mAudioFocusRequest); + this.livePlayer.stop(); + } + + public static final class Companion { + private Companion() {} + } + + public final class LayoutInfo { + private AbsoluteLayout.LayoutParams previousLayoutParams; + + private AbsoluteLayout.ViewOffset previousOffset; + + private int previousScrollX; + + private int previousScrollY; + + public LayoutInfo(AbsoluteLayout.LayoutParams param1LayoutParams, AbsoluteLayout.ViewOffset param1ViewOffset, int param1Int1, int param1Int2) { + this.previousLayoutParams = param1LayoutParams; + this.previousOffset = param1ViewOffset; + this.previousScrollX = param1Int1; + this.previousScrollY = param1Int2; + } + + public final AbsoluteLayout.LayoutParams getPreviousLayoutParams() { + return this.previousLayoutParams; + } + + public final AbsoluteLayout.ViewOffset getPreviousOffset() { + return this.previousOffset; + } + + public final int getPreviousScrollX() { + return this.previousScrollX; + } + + public final int getPreviousScrollY() { + return this.previousScrollY; + } + + public final void setPreviousLayoutParams(AbsoluteLayout.LayoutParams param1LayoutParams) { + l.b(param1LayoutParams, ""); + this.previousLayoutParams = param1LayoutParams; + } + + public final void setPreviousOffset(AbsoluteLayout.ViewOffset param1ViewOffset) { + l.b(param1ViewOffset, ""); + this.previousOffset = param1ViewOffset; + } + + public final void setPreviousScrollX(int param1Int) { + this.previousScrollX = param1Int; + } + + public final void setPreviousScrollY(int param1Int) { + this.previousScrollY = param1Int; + } + + public final void update(AbsoluteLayout param1AbsoluteLayout) { + l.b(param1AbsoluteLayout, "absoluteLayout"); + int i = param1AbsoluteLayout.getCurScrollX() - this.previousScrollX; + int j = param1AbsoluteLayout.getCurScrollY() - this.previousScrollY; + AbsoluteLayout.LayoutParams layoutParams = this.previousLayoutParams; + layoutParams.x -= i; + layoutParams = this.previousLayoutParams; + layoutParams.y -= j; + AbsoluteLayout.ViewOffset viewOffset = this.previousOffset; + viewOffset.curScrollX += i; + viewOffset = this.previousOffset; + viewOffset.curScrollY += j; + } + } + + final class LivePlayerListener extends TTLivePlayerListenerAdapter { + public final void onError(ITTLivePlayer.LiveError param1LiveError, String param1String) { + l.b(param1LiveError, "errorType"); + l.b(param1String, "errMsg"); + AppBrandLogger.i("LiveComponentContext", new Object[] { "onError" }); + int i = param1LiveError.getCode(); + JSONObject jSONObject = new JSONObject(); + jSONObject.put("url", LiveComponentContext.this.mPlayingUrl); + jSONObject.put("errorMsg", param1String); + NetStateManager.NetworkType networkType = LiveComponentContext.this.mNetworkStatus; + if (networkType != null) { + Integer integer = Integer.valueOf(networkType.getValue()); + } else { + networkType = null; + } + jSONObject.put("networkStatus", networkType); + AppBrandMonitor.statusRate("mp_live_player_error", i, jSONObject); + LiveComponentContext.this.getComponent().onLivePlayerError(); + } + + public final void onMonitorLog(JSONObject param1JSONObject) { + StringBuilder stringBuilder = new StringBuilder("onMonitorLog data:"); + stringBuilder.append(param1JSONObject); + AppBrandLogger.i("LiveComponentContext", new Object[] { stringBuilder.toString() }); + } + + public final void onPlayStateChanged(ITTLivePlayer.PlayerState param1PlayerState) { + l.b(param1PlayerState, "state"); + int i = LiveComponentContext$LivePlayerListener$WhenMappings.$EnumSwitchMapping$0[param1PlayerState.ordinal()]; + if (i != 1) { + if (i != 2) { + if (i != 3) { + if (i != 4) { + AppBrandLogger.i("LiveComponentContext", new Object[] { "onPlayStateChanged:", param1PlayerState }); + return; + } + LiveComponentContext.this.getComponent().onLivePlayerStateChange(2006); + return; + } + LiveComponentContext.this.getComponent().onLivePlayerStateChange(2007); + return; + } + LiveComponentContext.this.getComponent().onLivePlayerStateChange(2007); + return; + } + LiveComponentContext.this.getComponent().onLivePlayerStateChange(2004); + } + + public final void onVideoSizeChanged(int param1Int1, int param1Int2) { + StringBuilder stringBuilder = new StringBuilder("onVideoSizeChanged videoWidth:"); + stringBuilder.append(param1Int1); + stringBuilder.append(" videoHeight:"); + stringBuilder.append(param1Int2); + AppBrandLogger.i("LiveComponentContext", new Object[] { stringBuilder.toString() }); + if (LiveComponentContext.this.mTextureView instanceof LivePlayerTextureView) { + TextureView textureView = LiveComponentContext.this.mTextureView; + if (textureView != null) { + ((LivePlayerTextureView)textureView).onVideoSizeChanged(param1Int1, param1Int2); + } else { + throw new u("null cannot be cast to non-null type com.tt.miniapp.component.nativeview.liveplayer.view.LivePlayerTextureView"); + } + } + LiveComponentContext.this.getComponent().onLivePlayerStateChange(2009); + } + } + + final class LivePlayerTextureListener implements TextureView.SurfaceTextureListener { + public final void onSurfaceTextureAvailable(SurfaceTexture param1SurfaceTexture, int param1Int1, int param1Int2) { + // Byte code: + // 0: new java/lang/StringBuilder + // 3: dup + // 4: ldc 'onSurfaceTextureAvailable width:' + // 6: invokespecial : (Ljava/lang/String;)V + // 9: astore #4 + // 11: aload #4 + // 13: iload_2 + // 14: invokevirtual append : (I)Ljava/lang/StringBuilder; + // 17: pop + // 18: aload #4 + // 20: ldc ' height:' + // 22: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 25: pop + // 26: aload #4 + // 28: iload_3 + // 29: invokevirtual append : (I)Ljava/lang/StringBuilder; + // 32: pop + // 33: ldc 'LiveComponentContext' + // 35: iconst_1 + // 36: anewarray java/lang/Object + // 39: dup + // 40: iconst_0 + // 41: aload #4 + // 43: invokevirtual toString : ()Ljava/lang/String; + // 46: aastore + // 47: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 50: aload_0 + // 51: getfield this$0 : Lcom/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext; + // 54: getfield mCacheSurface : Lcom/tt/miniapp/component/nativeview/liveplayer/context/surface/SurfaceHolder; + // 57: ifnull -> 109 + // 60: aload_0 + // 61: getfield this$0 : Lcom/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext; + // 64: getfield mCacheSurface : Lcom/tt/miniapp/component/nativeview/liveplayer/context/surface/SurfaceHolder; + // 67: astore #4 + // 69: aload #4 + // 71: ifnonnull -> 77 + // 74: invokestatic a : ()V + // 77: aload #4 + // 79: invokevirtual available : ()Z + // 82: ifne -> 88 + // 85: goto -> 109 + // 88: aload_0 + // 89: getfield this$0 : Lcom/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext; + // 92: getfield mTextureView : Landroid/view/TextureView; + // 95: astore #4 + // 97: aload #4 + // 99: ifnull -> 192 + // 102: aload #4 + // 104: aload_1 + // 105: invokevirtual setSurfaceTexture : (Landroid/graphics/SurfaceTexture;)V + // 108: return + // 109: aload_0 + // 110: getfield this$0 : Lcom/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext; + // 113: getfield mCacheSurface : Lcom/tt/miniapp/component/nativeview/liveplayer/context/surface/SurfaceHolder; + // 116: astore #4 + // 118: aload #4 + // 120: ifnull -> 129 + // 123: aload #4 + // 125: invokevirtual release : ()Z + // 128: pop + // 129: aload_1 + // 130: ifnull -> 192 + // 133: aload_0 + // 134: getfield this$0 : Lcom/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext; + // 137: new com/tt/miniapp/component/nativeview/liveplayer/context/surface/SurfaceHolder + // 140: dup + // 141: aload_1 + // 142: new android/view/Surface + // 145: dup + // 146: aload_1 + // 147: invokespecial : (Landroid/graphics/SurfaceTexture;)V + // 150: invokespecial : (Landroid/graphics/SurfaceTexture;Landroid/view/Surface;)V + // 153: putfield mCacheSurface : Lcom/tt/miniapp/component/nativeview/liveplayer/context/surface/SurfaceHolder; + // 156: aload_0 + // 157: getfield this$0 : Lcom/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext; + // 160: invokevirtual getLivePlayer : ()Lcom/tt/miniapp/liveplayer/ITTLivePlayer; + // 163: astore_1 + // 164: aload_0 + // 165: getfield this$0 : Lcom/tt/miniapp/component/nativeview/liveplayer/context/LiveComponentContext; + // 168: getfield mCacheSurface : Lcom/tt/miniapp/component/nativeview/liveplayer/context/surface/SurfaceHolder; + // 171: astore #4 + // 173: aload #4 + // 175: ifnonnull -> 181 + // 178: invokestatic a : ()V + // 181: aload_1 + // 182: aload #4 + // 184: invokevirtual getSurface : ()Landroid/view/Surface; + // 187: invokeinterface setSurface : (Landroid/view/Surface;)V + // 192: return + } + + public final boolean onSurfaceTextureDestroyed(SurfaceTexture param1SurfaceTexture) { + AppBrandLogger.d("LiveComponentContext", new Object[] { "onSurfaceTextureDestroyed" }); + TextureView textureView = LiveComponentContext.this.mTextureView; + if (textureView != null) + textureView.setKeepScreenOn(false); + if (LiveComponentContext.this.mCacheSurface != null) { + SurfaceHolder surfaceHolder = LiveComponentContext.this.mCacheSurface; + if (surfaceHolder == null) + l.a(); + return surfaceHolder.release(); + } + return true; + } + + public final void onSurfaceTextureSizeChanged(SurfaceTexture param1SurfaceTexture, int param1Int1, int param1Int2) { + StringBuilder stringBuilder = new StringBuilder("onSurfaceTextureSizeChanged width:"); + stringBuilder.append(param1Int1); + stringBuilder.append(" height:"); + stringBuilder.append(param1Int2); + AppBrandLogger.d("LiveComponentContext", new Object[] { stringBuilder.toString() }); + LiveComponentContext.this.getLivePlayer().setSurface(new Surface(param1SurfaceTexture)); + } + + public final void onSurfaceTextureUpdated(SurfaceTexture param1SurfaceTexture) {} + } + + public static final class LiveComponentContext$applyFullScreen$1 implements ViewTreeObserver.OnGlobalLayoutListener { + LiveComponentContext$applyFullScreen$1(a.a param1a, int param1Int, ViewTreeObserver param1ViewTreeObserver) {} + + public final void onGlobalLayout() { + LivePlayerUtil livePlayerUtil = LivePlayerUtil.INSTANCE; + Context context = LiveComponentContext.this.getComponent().getContext(); + l.a(context, "component.context"); + if (livePlayerUtil.isExpectScreenOrientation(context, this.$direction)) { + AbsoluteLayout.LayoutParams layoutParams = new AbsoluteLayout.LayoutParams(new ViewGroup.LayoutParams(LiveComponentContext.this.getRender().getRenderWidth(), LiveComponentContext.this.getRender().getRenderHeight())); + layoutParams.x = 0; + layoutParams.y = 0; + layoutParams.zIndex = this.$zIndex; + layoutParams.isFullScreen = true; + LiveComponentContext.this.getComponent().setLayoutParams((ViewGroup.LayoutParams)layoutParams); + this.$viewTreeObserver.removeOnGlobalLayoutListener(this); + } + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\liveplayer\context\LiveComponentContext.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/surface/SurfaceHolder.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/surface/SurfaceHolder.java new file mode 100644 index 0000000..82f6eea --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/context/surface/SurfaceHolder.java @@ -0,0 +1,50 @@ +package com.tt.miniapp.component.nativeview.liveplayer.context.surface; + +import android.graphics.SurfaceTexture; +import android.view.Surface; +import com.tt.miniapphost.AppBrandLogger; + +public final class SurfaceHolder { + private final String TAG; + + private boolean available; + + private final Surface surface; + + private final SurfaceTexture surfaceTexture; + + public SurfaceHolder(SurfaceTexture paramSurfaceTexture, Surface paramSurface) { + this.surfaceTexture = paramSurfaceTexture; + this.surface = paramSurface; + this.TAG = "SurfaceHolder"; + this.available = true; + } + + public final boolean available() { + return (this.surface.isValid() && this.available); + } + + public final Surface getSurface() { + return this.surface; + } + + public final boolean release() { + try { + if (!this.available) + return true; + this.surface.release(); + this.surfaceTexture.release(); + this.available = false; + return true; + } catch (Exception exception) { + AppBrandLogger.e(this.TAG, new Object[] { "release surface exception:", exception }); + return false; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\liveplayer\context\surface\SurfaceHolder.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/util/LivePlayerUtil.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/util/LivePlayerUtil.java new file mode 100644 index 0000000..3e64a1a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/util/LivePlayerUtil.java @@ -0,0 +1,40 @@ +package com.tt.miniapp.component.nativeview.liveplayer.util; + +import android.content.Context; +import android.content.res.Resources; +import android.text.TextUtils; +import com.bytedance.sandboxapp.protocol.service.j.a; +import com.tt.miniapp.liveplayer.ITTLivePlayer; +import d.f.b.l; + +public final class LivePlayerUtil { + public static final LivePlayerUtil INSTANCE = new LivePlayerUtil(); + + public final a.a convertDegreeToOrientation(int paramInt) { + return (paramInt != -90) ? ((paramInt != 0) ? ((paramInt != 90) ? a.a.PORTRAIT : a.a.LANDSCAPE) : a.a.PORTRAIT) : a.a.REVERSE_LANDSCAPE; + } + + public final ITTLivePlayer.Orientation convertDisplayOrientation(String paramString) { + l.b(paramString, "str"); + return TextUtils.equals(paramString, ITTLivePlayer.Orientation.HORIZONTAL.getValue()) ? ITTLivePlayer.Orientation.HORIZONTAL : ITTLivePlayer.Orientation.VERTICAL; + } + + public final ITTLivePlayer.ObjectFit convertObjectFit(String paramString) { + l.b(paramString, "str"); + return TextUtils.equals(paramString, ITTLivePlayer.ObjectFit.FILLCROP.getValue()) ? ITTLivePlayer.ObjectFit.FILLCROP : ITTLivePlayer.ObjectFit.CONTAIN; + } + + public final boolean isExpectScreenOrientation(Context paramContext, a.a parama) { + l.b(paramContext, "context"); + l.b(parama, "screenOrientation"); + Resources resources = paramContext.getResources(); + l.a(resources, "context.resources"); + return ((resources.getConfiguration()).orientation == 2) ? ((parama != a.a.LANDSCAPE && parama != a.a.REVERSE_LANDSCAPE) ? ((parama == a.a.SENSOR_LANDSCAPE)) : true) : ((parama != a.a.PORTRAIT && parama != a.a.REVERSE_PORTRAIT) ? ((parama == a.a.SENSOR_PORTRAIT)) : true); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\liveplaye\\util\LivePlayerUtil.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/view/LivePlayerTextureView.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/view/LivePlayerTextureView.java new file mode 100644 index 0000000..e828979 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/liveplayer/view/LivePlayerTextureView.java @@ -0,0 +1,112 @@ +package com.tt.miniapp.component.nativeview.liveplayer.view; + +import android.content.Context; +import android.graphics.Matrix; +import android.view.TextureView; +import android.view.View; +import com.tt.miniapp.liveplayer.ITTLivePlayer; +import d.f.b.l; +import java.util.HashMap; + +public final class LivePlayerTextureView extends TextureView { + private HashMap _$_findViewCache; + + private ITTLivePlayer.DisplayMode mPendingDisplayMode; + + private Matrix mTransform = new Matrix(); + + private int mVideoHeight; + + private int mVideoWidth; + + public LivePlayerTextureView(Context paramContext) { + super(paramContext); + } + + private final void resolveDisplayMode(float paramFloat1, float paramFloat2) { + int i = this.mVideoWidth; + if (i != 0) { + ITTLivePlayer.ObjectFit objectFit; + int j = this.mVideoHeight; + if (j == 0) + return; + this.mTransform.reset(); + Matrix matrix = this.mTransform; + float f1 = i; + float f2 = (paramFloat1 - f1) / 2.0F; + float f3 = j; + matrix.preTranslate(f2, (paramFloat2 - f3) / 2.0F); + this.mTransform.preScale(f1 / paramFloat1, f3 / paramFloat2); + ITTLivePlayer.DisplayMode displayMode1 = this.mPendingDisplayMode; + ITTLivePlayer.DisplayMode displayMode2 = null; + if (displayMode1 != null) { + ITTLivePlayer.Orientation orientation = displayMode1.getDisplayOrientation(); + } else { + displayMode1 = null; + } + int m = i; + int k = j; + if (displayMode1 == ITTLivePlayer.Orientation.HORIZONTAL) { + this.mTransform.postRotate(90.0F, paramFloat1 / 2.0F, paramFloat2 / 2.0F); + k = i; + m = j; + } + f1 = paramFloat1 / m; + f2 = paramFloat2 / k; + ITTLivePlayer.DisplayMode displayMode3 = this.mPendingDisplayMode; + displayMode1 = displayMode2; + if (displayMode3 != null) + objectFit = displayMode3.getObjectFit(); + if (objectFit == ITTLivePlayer.ObjectFit.FILLCROP) { + f1 = Math.max(f1, f2); + this.mTransform.postScale(f1, f1, paramFloat1 / 2.0F, paramFloat2 / 2.0F); + } else { + f1 = Math.min(f1, f2); + this.mTransform.postScale(f1, f1, paramFloat1 / 2.0F, paramFloat2 / 2.0F); + } + setTransform(this.mTransform); + postInvalidate(); + } + } + + public final void _$_clearFindViewByIdCache() { + HashMap hashMap = this._$_findViewCache; + if (hashMap != null) + hashMap.clear(); + } + + public final View _$_findCachedViewById(int paramInt) { + if (this._$_findViewCache == null) + this._$_findViewCache = new HashMap(); + View view2 = (View)this._$_findViewCache.get(Integer.valueOf(paramInt)); + View view1 = view2; + if (view2 == null) { + view1 = findViewById(paramInt); + this._$_findViewCache.put(Integer.valueOf(paramInt), view1); + } + return view1; + } + + protected final void onMeasure(int paramInt1, int paramInt2) { + resolveDisplayMode(View.MeasureSpec.getSize(paramInt1), View.MeasureSpec.getSize(paramInt2)); + super.onMeasure(paramInt1, paramInt2); + } + + public final void onVideoSizeChanged(int paramInt1, int paramInt2) { + this.mVideoWidth = paramInt1; + this.mVideoHeight = paramInt2; + requestLayout(); + } + + public final void updateDisplayMode(ITTLivePlayer.DisplayMode paramDisplayMode) { + l.b(paramDisplayMode, "displayMode"); + this.mPendingDisplayMode = paramDisplayMode; + requestLayout(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\liveplayer\view\LivePlayerTextureView.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/map/Map.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/map/Map.java new file mode 100644 index 0000000..3a99897 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/map/Map.java @@ -0,0 +1,479 @@ +package com.tt.miniapp.component.nativeview.map; + +import android.app.Activity; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.location.Location; +import android.os.Bundle; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import com.storage.async.Function; +import com.storage.async.Observable; +import com.storage.async.Schedulers; +import com.storage.async.Subscriber; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.component.nativeview.NativeComponent; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapp.view.webcore.NativeNestWebView; +import com.tt.miniapp.webbridge.sync.map.MapParamParseException; +import com.tt.miniapp.webbridge.sync.map.MapTempUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.MiniappHostBase; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.util.UIUtils; +import com.tt.option.e.k; +import com.tt.option.m.a; +import com.tt.option.m.c; +import com.tt.option.m.d; +import com.tt.option.m.e; +import org.json.JSONArray; +import org.json.JSONObject; + +public class Map extends FrameLayout implements NativeComponent { + public a mMapContext; + + private View mMapView; + + private e mMyLocatePointStyle; + + public Location mMyLocation; + + private NativeNestWebView mNativeNestWebView; + + private AbsoluteLayout mParent; + + private WebViewManager.IRender mRender; + + private final int mViewId; + + public Map(int paramInt, AbsoluteLayout paramAbsoluteLayout, WebViewManager.IRender paramIRender, NativeNestWebView paramNativeNestWebView) { + super(paramAbsoluteLayout.getContext()); + this.mViewId = paramInt; + this.mParent = paramAbsoluteLayout; + this.mRender = paramIRender; + this.mNativeNestWebView = paramNativeNestWebView; + this.mMyLocatePointStyle = new e(); + } + + private void addCircles(MapModel paramMapModel) { + // Byte code: + // 0: aload_1 + // 1: getfield circles : Lorg/json/JSONArray; + // 4: astore #13 + // 6: iconst_0 + // 7: istore #10 + // 9: iload #10 + // 11: aload #13 + // 13: invokevirtual length : ()I + // 16: if_icmpge -> 224 + // 19: aload #13 + // 21: iload #10 + // 23: invokevirtual getJSONObject : (I)Lorg/json/JSONObject; + // 26: astore_1 + // 27: aload_1 + // 28: ldc 'latitude' + // 30: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 33: invokestatic parseDouble : (Ljava/lang/String;)D + // 36: dstore_2 + // 37: aload_1 + // 38: ldc 'longitude' + // 40: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 43: invokestatic parseDouble : (Ljava/lang/String;)D + // 46: dstore #4 + // 48: dload_2 + // 49: dload #4 + // 51: invokestatic isValidLatLng : (DD)Z + // 54: ifne -> 60 + // 57: goto -> 190 + // 60: aload_1 + // 61: ldc 'radius' + // 63: ldc2_w 100.0 + // 66: invokevirtual optDouble : (Ljava/lang/String;D)D + // 69: dstore #6 + // 71: aload_1 + // 72: ldc 'fillColor' + // 74: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 77: ldc '#3352AFFF' + // 79: invokestatic rgbaToFullARGBStr : (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + // 82: ldc '#3352AFFF' + // 84: invokestatic parseColor : (Ljava/lang/String;Ljava/lang/String;)I + // 87: istore #11 + // 89: aload_1 + // 90: ldc 'strokeWidth' + // 92: dconst_1 + // 93: invokevirtual optDouble : (Ljava/lang/String;D)D + // 96: dstore #8 + // 98: aload_1 + // 99: ldc 'color' + // 101: invokevirtual optString : (Ljava/lang/String;)Ljava/lang/String; + // 104: ldc '#9952AFFF' + // 106: invokestatic rgbaToFullARGBStr : (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + // 109: ldc '#9952AFFF' + // 111: invokestatic parseColor : (Ljava/lang/String;Ljava/lang/String;)I + // 114: istore #12 + // 116: new com/tt/option/m/b + // 119: dup + // 120: invokespecial : ()V + // 123: astore_1 + // 124: aload_1 + // 125: new com/tt/option/m/c + // 128: dup + // 129: dload_2 + // 130: dload #4 + // 132: invokespecial : (DD)V + // 135: putfield a : Lcom/tt/option/m/c; + // 138: aload_1 + // 139: dload #6 + // 141: putfield b : D + // 144: aload_1 + // 145: iload #11 + // 147: putfield c : I + // 150: aload_1 + // 151: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 154: invokevirtual getApplicationContext : ()Landroid/app/Application; + // 157: dload #8 + // 159: d2f + // 160: invokestatic dip2Px : (Landroid/content/Context;F)F + // 163: f2d + // 164: putfield d : D + // 167: aload_1 + // 168: iload #12 + // 170: putfield e : I + // 173: goto -> 190 + // 176: astore_1 + // 177: ldc 'tma_Map' + // 179: iconst_1 + // 180: anewarray java/lang/Object + // 183: dup + // 184: iconst_0 + // 185: aload_1 + // 186: aastore + // 187: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 190: goto -> 215 + // 193: astore_1 + // 194: goto -> 202 + // 197: astore_1 + // 198: goto -> 202 + // 201: astore_1 + // 202: ldc 'tma_Map' + // 204: iconst_1 + // 205: anewarray java/lang/Object + // 208: dup + // 209: iconst_0 + // 210: aload_1 + // 211: aastore + // 212: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 215: iload #10 + // 217: iconst_1 + // 218: iadd + // 219: istore #10 + // 221: goto -> 9 + // 224: return + // Exception table: + // from to target type + // 19 27 201 org/json/JSONException + // 27 48 176 java/lang/Exception + // 27 48 201 org/json/JSONException + // 48 57 201 org/json/JSONException + // 60 89 201 org/json/JSONException + // 89 173 193 org/json/JSONException + // 177 190 193 org/json/JSONException + } + + private void addMarkers(MapModel paramMapModel) { + final JSONArray markersJA = paramMapModel.markers; + for (final int finalIndex = 0; i < jSONArray.length(); i++) { + Observable.create(new Function() { + public d fun() { + JSONObject jSONObject = markersJA.optJSONObject(finalIndex); + String str = jSONObject.optString("id", "0"); + try { + double d1 = Double.parseDouble(jSONObject.optString("latitude")); + double d2 = Double.parseDouble(jSONObject.optString("longitude")); + if (!MapUtil.isValidLatLng(d1, d2)) + return null; + String str1 = jSONObject.optString("title", null); + Bitmap bitmap = MapUtil.parseMiniAppImagePath(jSONObject.optString("iconPath"), BitmapFactory.decodeResource(AppbrandContext.getInst().getApplicationContext().getResources(), 2097479735)); + d d = new d(); + d.a = str; + d.d = str1; + return d.a(bitmap).a(new c(d1, d2)); + } catch (Exception exception) { + AppBrandLogger.e("tma_Map", new Object[] { exception }); + return null; + } + } + }).schudleOn(Schedulers.longIO()).subscribe((Subscriber)new Subscriber.ResultableSubscriber() { + public void onError(Throwable param1Throwable) { + AppBrandLogger.e("tma_Map", new Object[] { param1Throwable }); + } + + public void onSuccess(d param1d) {} + }); + } + } + + private String initMap(MapModel paramMapModel) { + MiniappHostBase miniappHostBase = AppbrandContext.getInst().getCurrentActivity(); + this.mMapContext = HostDependManager.getInst().createMapInstance(); + if (miniappHostBase == null) + return MapTempUtil.makeFailMsg("insertMapContext", "activity is null", 205); + a a1 = this.mMapContext; + if (a1 == null) + return MapTempUtil.makeFailMsg("insertMapContext", "map context create fail", 206); + this.mMapView = a1.a((Activity)miniappHostBase); + if (this.mMapView == null) + return MapTempUtil.makeFailMsg("insertMapContext", "create map view failed", 203); + new Object() { + public void onLocationChanged(Location param1Location, String param1String) { + Map.this.mMyLocation = param1Location; + } + }; + new Bundle(); + FrameLayout.LayoutParams layoutParams1 = new FrameLayout.LayoutParams(-1, -1); + addView(this.mMapView, (ViewGroup.LayoutParams)layoutParams1); + AbsoluteLayout.LayoutParams layoutParams = new AbsoluteLayout.LayoutParams((int)UIUtils.dip2Px((Context)miniappHostBase, (float)paramMapModel.width), (int)UIUtils.dip2Px((Context)miniappHostBase, (float)paramMapModel.height), (int)UIUtils.dip2Px((Context)miniappHostBase, paramMapModel.left), (int)UIUtils.dip2Px((Context)miniappHostBase, paramMapModel.top)); + this.mParent.addView((View)this, (ViewGroup.LayoutParams)layoutParams); + this.mMyLocatePointStyle.a = BitmapFactory.decodeResource(miniappHostBase.getResources(), 2097479681); + return null; + } + + private void setLocatePointVisibility(boolean paramBoolean) { + this.mMyLocatePointStyle.b = paramBoolean; + } + + private void updateMapContext(MapModel paramMapModel) { + new c(paramMapModel.latitude, paramMapModel.longitude); + if (paramMapModel.hasShowLocation) + setLocatePointVisibility(paramMapModel.showLocation); + if (paramMapModel.hasMarkers) + addMarkers(paramMapModel); + if (paramMapModel.hasCircles) + addCircles(paramMapModel); + } + + public void addView(String paramString, k paramk) { + try { + MapModel mapModel = MapModel.parse(paramString); + if (mapModel == null) + return; + String str = initMap(mapModel); + if (str != null) + return; + updateMapContext(mapModel); + } catch (MapParamParseException mapParamParseException) { + return; + } finally { + paramString = null; + paramk.invokeHandler(MapTempUtil.makeFailMsg("insertMapContext", (Throwable)paramString, 201)); + } + } + + public boolean dispatchTouchEvent(MotionEvent paramMotionEvent) { + boolean bool; + if ((paramMotionEvent.getAction() & 0xFF) == 0) { + bool = true; + } else { + bool = false; + } + if (bool) + requestDisallowInterceptTouchEvent(true); + return super.dispatchTouchEvent(paramMotionEvent); + } + + public a getMapContext() { + return this.mMapContext; + } + + public Location getMyLocation() { + return this.mMyLocation; + } + + public boolean onBackPressed() { + return false; + } + + public void onDestroy() {} + + public void onViewPause() {} + + public void onViewResume() {} + + public void removeView(int paramInt, k paramk) {} + + public void updateView(String paramString, k paramk) { + MiniappHostBase miniappHostBase; + try { + MapModel mapModel = MapModel.parse(paramString); + if (mapModel == null) + return; + miniappHostBase = AppbrandContext.getInst().getCurrentActivity(); + if ((mapModel.hasLeft || mapModel.hasTop || mapModel.hasWidth || mapModel.hasHeight) && miniappHostBase != null) { + int i; + int j; + int m; + int n; + AbsoluteLayout.LayoutParams layoutParams = (AbsoluteLayout.LayoutParams)getLayoutParams(); + if (mapModel.hasLeft) { + i = (int)UIUtils.dip2Px((Context)miniappHostBase, mapModel.left); + } else { + i = layoutParams.x; + } + if (mapModel.hasTop) { + j = (int)UIUtils.dip2Px((Context)miniappHostBase, mapModel.top); + } else { + j = layoutParams.y; + } + if (mapModel.hasWidth) { + m = (int)UIUtils.dip2Px((Context)miniappHostBase, (float)mapModel.width); + } else { + m = layoutParams.width; + } + if (mapModel.hasHeight) { + n = (int)UIUtils.dip2Px((Context)miniappHostBase, (float)mapModel.height); + } else { + n = layoutParams.height; + } + setLayoutParams((ViewGroup.LayoutParams)new AbsoluteLayout.LayoutParams(m, n, i, j)); + } + if (mapModel.hasLatitude || mapModel.hasLongitude) { + double d1 = mapModel.latitude; + double d2 = mapModel.longitude; + if (MapUtil.isValidLatLng(d1, d2)) + new c(d1, d2); + } + if (mapModel.hasMarkers) + addMarkers(mapModel); + return; + } catch (MapParamParseException mapParamParseException) { + return; + } finally { + paramString = null; + miniappHostBase.invokeHandler(MapTempUtil.makeFailMsg("updateMapContext", (Throwable)paramString, 201)); + } + } + + public static class MapModel { + JSONArray circles; + + boolean hasCircles; + + boolean hasHeight; + + boolean hasLatitude; + + boolean hasLeft; + + boolean hasLongitude; + + boolean hasMarkers; + + boolean hasScale; + + boolean hasShowLocation; + + boolean hasTop; + + boolean hasWidth; + + double height; + + double latitude; + + int left; + + double longitude; + + JSONArray markers; + + double scale = 16.0D; + + boolean showLocation; + + int top; + + double width; + + public static MapModel parse(String param1String) throws Throwable { + double d; + MapModel mapModel = new MapModel(); + JSONObject jSONObject = (new JSONObject(param1String)).optJSONObject("model"); + if (jSONObject == null) + return null; + mapModel.top = jSONObject.optInt("top", 0); + mapModel.hasTop = jSONObject.has("top"); + mapModel.left = jSONObject.optInt("left", 0); + mapModel.hasLeft = jSONObject.has("left"); + mapModel.width = jSONObject.optDouble("width", 0.0D); + mapModel.hasWidth = jSONObject.has("width"); + mapModel.height = jSONObject.optDouble("height", 0.0D); + mapModel.hasHeight = jSONObject.has("height"); + String str = jSONObject.optString("latitude", null); + param1String = jSONObject.optString("longitude", null); + if (str == null || param1String == null) { + mapModel.latitude = 39.907957D; + mapModel.longitude = 116.397493D; + } else { + try { + mapModel.latitude = Double.parseDouble(str); + if (!MapUtil.isValidLat(mapModel.latitude)) + throw new MapParamParseException("invalid latitude"); + } catch (NumberFormatException numberFormatException) { + mapModel.latitude = 0.0D; + } + try { + d = Double.parseDouble(param1String); + if (MapUtil.isValidLng(d)) { + mapModel.longitude = d; + } else { + throw new MapParamParseException("invalid longitude"); + } + } catch (NumberFormatException numberFormatException) { + mapModel.longitude = 0.0D; + } + } + mapModel.hasLatitude = jSONObject.has("latitude"); + mapModel.hasLongitude = jSONObject.has("longitude"); + Object object = jSONObject.opt("scale"); + if (object == null) { + d = 16.0D; + } else { + Object object1; + if (object instanceof Integer) { + object = Double.valueOf(((Integer)object).intValue()); + } else if (object instanceof Double) { + object = object; + } else { + throw new MapParamParseException("invalid scale"); + } + if (object.doubleValue() < 3.0D) { + object1 = Double.valueOf(3.0D); + } else { + object1 = object; + if (object.doubleValue() > 19.0D) + object1 = Double.valueOf(19.0D); + } + d = object1.doubleValue(); + } + mapModel.scale = d; + mapModel.hasScale = jSONObject.has("scale"); + mapModel.markers = jSONObject.optJSONArray("markers"); + mapModel.hasMarkers = jSONObject.has("markers"); + mapModel.circles = jSONObject.optJSONArray("circles"); + mapModel.hasCircles = jSONObject.has("circles"); + mapModel.showLocation = jSONObject.optBoolean("showLocation", false); + mapModel.hasShowLocation = jSONObject.has("showLocation"); + return mapModel; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\map\Map.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/map/MapUtil.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/map/MapUtil.java new file mode 100644 index 0000000..ec97c08 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/map/MapUtil.java @@ -0,0 +1,141 @@ +package com.tt.miniapp.component.nativeview.map; + +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Paint; +import com.tt.miniapphost.util.CoordinateTransformUtil; + +public class MapUtil { + private static Bitmap.Config getConfig(Bitmap paramBitmap) { + Bitmap.Config config2 = paramBitmap.getConfig(); + Bitmap.Config config1 = config2; + if (config2 == null) + config1 = Bitmap.Config.ARGB_8888; + return config1; + } + + public static boolean isValidLat(double paramDouble) { + return CoordinateTransformUtil.isValidLatLng(paramDouble, 0.0D); + } + + public static boolean isValidLatLng(double paramDouble1, double paramDouble2) { + return CoordinateTransformUtil.isValidLatLng(paramDouble1, paramDouble2); + } + + public static boolean isValidLng(double paramDouble) { + return CoordinateTransformUtil.isValidLatLng(0.0D, paramDouble); + } + + public static Bitmap parseMiniAppImagePath(String paramString, Bitmap paramBitmap) { + // Byte code: + // 0: aload_0 + // 1: invokestatic isNetworkUrl : (Ljava/lang/String;)Z + // 4: istore_3 + // 5: aconst_null + // 6: astore #5 + // 8: iload_3 + // 9: ifeq -> 64 + // 12: aload_0 + // 13: invokestatic readImage : (Ljava/lang/String;)[B + // 16: astore_0 + // 17: goto -> 36 + // 20: astore_0 + // 21: ldc 'tma_MapUtil' + // 23: iconst_1 + // 24: anewarray java/lang/Object + // 27: dup + // 28: iconst_0 + // 29: aload_0 + // 30: aastore + // 31: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 34: aconst_null + // 35: astore_0 + // 36: aload #5 + // 38: astore #4 + // 40: aload_0 + // 41: ifnull -> 128 + // 44: aload #5 + // 46: astore #4 + // 48: aload_0 + // 49: arraylength + // 50: ifle -> 128 + // 53: aload_0 + // 54: iconst_0 + // 55: aload_0 + // 56: arraylength + // 57: invokestatic decodeByteArray : ([BII)Landroid/graphics/Bitmap; + // 60: astore_0 + // 61: goto -> 125 + // 64: aload_0 + // 65: invokestatic isTTFileDir : (Ljava/lang/String;)Z + // 68: ifeq -> 93 + // 71: invokestatic inst : ()Lcom/tt/miniapp/storage/filestorge/FileManager; + // 74: aload_0 + // 75: invokevirtual getRealFilePath : (Ljava/lang/String;)Ljava/lang/String; + // 78: invokestatic decodeFile : (Ljava/lang/String;)Landroid/graphics/Bitmap; + // 81: astore_0 + // 82: aload #5 + // 84: astore #4 + // 86: aload_0 + // 87: ifnull -> 128 + // 90: goto -> 125 + // 93: aload #5 + // 95: astore #4 + // 97: aload_0 + // 98: invokestatic loadByteFromStream : (Ljava/lang/String;)[B + // 101: ifnull -> 128 + // 104: aload_0 + // 105: invokestatic loadByteFromStream : (Ljava/lang/String;)[B + // 108: astore_0 + // 109: aload_0 + // 110: iconst_0 + // 111: aload_0 + // 112: arraylength + // 113: invokestatic decodeByteArray : ([BII)Landroid/graphics/Bitmap; + // 116: astore_0 + // 117: aload #5 + // 119: astore #4 + // 121: aload_0 + // 122: ifnull -> 128 + // 125: aload_0 + // 126: astore #4 + // 128: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 131: invokevirtual getApplicationContext : ()Landroid/app/Application; + // 134: invokevirtual getResources : ()Landroid/content/res/Resources; + // 137: invokevirtual getDisplayMetrics : ()Landroid/util/DisplayMetrics; + // 140: getfield scaledDensity : F + // 143: fstore_2 + // 144: aload #4 + // 146: ifnull -> 157 + // 149: aload #4 + // 151: fload_2 + // 152: iconst_1 + // 153: invokestatic resizeBitmapByScale : (Landroid/graphics/Bitmap;FZ)Landroid/graphics/Bitmap; + // 156: areturn + // 157: aload_1 + // 158: areturn + // Exception table: + // from to target type + // 12 17 20 java/lang/Exception + } + + public static Bitmap resizeBitmapByScale(Bitmap paramBitmap, float paramFloat, boolean paramBoolean) { + int i = Math.round(paramBitmap.getWidth() * paramFloat); + int j = Math.round(paramBitmap.getHeight() * paramFloat); + if (i == paramBitmap.getWidth() && j == paramBitmap.getHeight()) + return paramBitmap; + Bitmap bitmap = Bitmap.createBitmap(i, j, getConfig(paramBitmap)); + Canvas canvas = new Canvas(bitmap); + canvas.scale(paramFloat, paramFloat); + canvas.drawBitmap(paramBitmap, 0.0F, 0.0F, new Paint(6)); + if (paramBoolean) + paramBitmap.recycle(); + return bitmap; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\map\MapUtil.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/framework/popup/BasicPopup.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/framework/popup/BasicPopup.java new file mode 100644 index 0000000..8b792c9 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/framework/popup/BasicPopup.java @@ -0,0 +1,276 @@ +package com.tt.miniapp.component.nativeview.picker.framework.popup; + +import android.app.Activity; +import android.app.Dialog; +import android.content.Context; +import android.content.DialogInterface; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.util.DisplayMetrics; +import android.view.KeyEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.Window; +import android.widget.FrameLayout; +import com.tt.miniapphost.util.UIUtils; + +public abstract class BasicPopup implements DialogInterface.OnDismissListener, DialogInterface.OnKeyListener { + public Activity activity; + + private FrameLayout contentLayout; + + private Dialog dialog; + + private boolean isPrepared; + + private int mWindowHeight; + + protected int screenHeightPixels; + + protected int screenWidthPixels; + + public BasicPopup(Activity paramActivity) { + this.activity = paramActivity; + DisplayMetrics displayMetrics = paramActivity.getResources().getDisplayMetrics(); + this.screenWidthPixels = displayMetrics.widthPixels; + this.screenHeightPixels = displayMetrics.heightPixels; + this.mWindowHeight = (int)UIUtils.dip2Px((Context)paramActivity, 280.0F); + initDialog(); + } + + private void initDialog() { + this.contentLayout = new FrameLayout((Context)this.activity); + this.contentLayout.setLayoutParams(new ViewGroup.LayoutParams(-2, -2)); + this.contentLayout.setFocusable(true); + this.contentLayout.setFocusableInTouchMode(true); + this.dialog = new Dialog((Context)this.activity, 2132607952); + this.dialog.setCanceledOnTouchOutside(true); + this.dialog.setCancelable(true); + this.dialog.setOnKeyListener((DialogInterface.OnKeyListener)this); + this.dialog.setOnDismissListener((DialogInterface.OnDismissListener)this); + Window window = this.dialog.getWindow(); + if (window != null) { + window.setGravity(80); + window.setBackgroundDrawable((Drawable)new ColorDrawable(0)); + window.requestFeature(1); + window.setContentView((View)this.contentLayout); + } + setSize(this.screenWidthPixels, this.mWindowHeight); + } + + public void dismiss() { + dismissImmediately(); + } + + protected final void dismissImmediately() { + _lancet.com_ss_android_ugc_aweme_lancet_DebugCheckLancet_dialogDismiss(this.dialog); + } + + public View getContentView() { + return this.contentLayout.getChildAt(0); + } + + public Context getContext() { + return this.dialog.getContext(); + } + + public ViewGroup getRootView() { + return (ViewGroup)this.contentLayout; + } + + public int getScreenHeightPixels() { + return this.screenHeightPixels; + } + + public int getScreenWidthPixels() { + return this.screenWidthPixels; + } + + public Window getWindow() { + return this.dialog.getWindow(); + } + + public boolean isShowing() { + return this.dialog.isShowing(); + } + + protected abstract V makeContentView(); + + public boolean onBackPress() { + dismiss(); + return false; + } + + public void onDismiss(DialogInterface paramDialogInterface) { + dismiss(); + } + + public final boolean onKey(DialogInterface paramDialogInterface, int paramInt, KeyEvent paramKeyEvent) { + if (paramKeyEvent.getAction() == 0 && paramInt == 4) + onBackPress(); + return false; + } + + public void setAnimationStyle(int paramInt) { + Window window = this.dialog.getWindow(); + if (window != null) + window.setWindowAnimations(paramInt); + } + + public void setCancelable(boolean paramBoolean) { + this.dialog.setCancelable(paramBoolean); + } + + public void setCanceledOnTouchOutside(boolean paramBoolean) { + this.dialog.setCanceledOnTouchOutside(paramBoolean); + } + + public void setContentView(View paramView) { + this.contentLayout.removeAllViews(); + this.contentLayout.addView(paramView); + } + + protected void setContentViewAfter(V paramV) {} + + protected void setContentViewBefore() {} + + public void setFillScreen(boolean paramBoolean) { + if (paramBoolean) + setSize(this.screenWidthPixels, (int)(this.screenHeightPixels * 0.85F)); + } + + public void setFitsSystemWindows(boolean paramBoolean) { + this.contentLayout.setFitsSystemWindows(paramBoolean); + } + + public void setGravity(int paramInt) { + Window window = this.dialog.getWindow(); + if (window != null) + window.setGravity(paramInt); + if (paramInt == 17) + setWidth((int)(this.screenWidthPixels * 0.7F)); + } + + public void setHalfScreen(boolean paramBoolean) { + if (paramBoolean) + setSize(this.screenWidthPixels, this.screenHeightPixels / 2); + } + + public void setHeight(int paramInt) { + setSize(0, paramInt); + } + + public void setOnDismissListener(final DialogInterface.OnDismissListener onDismissListener) { + this.dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { + public void onDismiss(DialogInterface param1DialogInterface) { + BasicPopup.this.onDismiss(param1DialogInterface); + onDismissListener.onDismiss(param1DialogInterface); + } + }); + } + + public void setOnKeyListener(final DialogInterface.OnKeyListener onKeyListener) { + this.dialog.setOnKeyListener(new DialogInterface.OnKeyListener() { + public boolean onKey(DialogInterface param1DialogInterface, int param1Int, KeyEvent param1KeyEvent) { + BasicPopup.this.onKey(param1DialogInterface, param1Int, param1KeyEvent); + return onKeyListener.onKey(param1DialogInterface, param1Int, param1KeyEvent); + } + }); + } + + public void setPrepared(boolean paramBoolean) { + this.isPrepared = paramBoolean; + } + + public void setSize(int paramInt1, int paramInt2) { + // Byte code: + // 0: iload_1 + // 1: istore_3 + // 2: iload_1 + // 3: iconst_m1 + // 4: if_icmpne -> 12 + // 7: aload_0 + // 8: getfield screenWidthPixels : I + // 11: istore_3 + // 12: iload_3 + // 13: ifne -> 32 + // 16: iload_2 + // 17: ifne -> 32 + // 20: aload_0 + // 21: getfield screenWidthPixels : I + // 24: istore_1 + // 25: bipush #-2 + // 27: istore #4 + // 29: goto -> 61 + // 32: iload_3 + // 33: ifne -> 47 + // 36: aload_0 + // 37: getfield screenWidthPixels : I + // 40: istore_1 + // 41: iload_2 + // 42: istore #4 + // 44: goto -> 61 + // 47: iload_3 + // 48: istore_1 + // 49: iload_2 + // 50: istore #4 + // 52: iload_2 + // 53: ifne -> 61 + // 56: iload_3 + // 57: istore_1 + // 58: goto -> 25 + // 61: aload_0 + // 62: getfield contentLayout : Landroid/widget/FrameLayout; + // 65: invokevirtual getLayoutParams : ()Landroid/view/ViewGroup$LayoutParams; + // 68: astore #5 + // 70: aload #5 + // 72: ifnonnull -> 90 + // 75: new android/view/ViewGroup$LayoutParams + // 78: dup + // 79: iload_1 + // 80: iload #4 + // 82: invokespecial : (II)V + // 85: astore #5 + // 87: goto -> 103 + // 90: aload #5 + // 92: iload_1 + // 93: putfield width : I + // 96: aload #5 + // 98: iload #4 + // 100: putfield height : I + // 103: aload_0 + // 104: getfield contentLayout : Landroid/widget/FrameLayout; + // 107: aload #5 + // 109: invokevirtual setLayoutParams : (Landroid/view/ViewGroup$LayoutParams;)V + // 112: return + } + + public void setWidth(int paramInt) { + setSize(paramInt, 0); + } + + public final void show() { + if (this.isPrepared && !this.activity.isFinishing()) { + this.dialog.show(); + showAfter(); + return; + } + setContentViewBefore(); + V v = makeContentView(); + setContentView((View)v); + setContentViewAfter(v); + this.isPrepared = true; + this.dialog.show(); + showAfter(); + } + + protected void showAfter() {} + + class BasicPopup {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\framework\popup\BasicPopup.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/framework/popup/ConfirmPopup.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/framework/popup/ConfirmPopup.java new file mode 100644 index 0000000..cd642bf --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/framework/popup/ConfirmPopup.java @@ -0,0 +1,387 @@ +package com.tt.miniapp.component.nativeview.picker.framework.popup; + +import android.app.Activity; +import android.content.Context; +import android.text.TextUtils; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; +import com.tt.miniapphost.util.UIUtils; + +public abstract class ConfirmPopup extends BasicPopup { + protected int backgroundColor = -1; + + protected TextView cancelButton; + + protected CharSequence cancelText = ""; + + protected int cancelTextColor = -13987625; + + protected int cancelTextSize = 17; + + protected boolean cancelVisible = true; + + protected View centerView; + + protected int contentLeftAndRightPadding; + + protected int contentTopAndBottomPadding; + + protected View footerView; + + protected View headerView; + + private OnCancelListener onCancelListener; + + protected int pressedTextColor = -13987625; + + protected TextView submitButton; + + protected CharSequence submitText = ""; + + protected int submitTextColor = -13987625; + + protected int submitTextSize = 17; + + protected CharSequence titleText = ""; + + protected int titleTextColor = -13987625; + + protected int titleTextSize; + + protected View titleView; + + protected int topBackgroundColor = -1; + + protected int topHeight = 40; + + protected int topLineColor = -1513240; + + protected int topLineHeightPixels = 1; + + protected boolean topLineVisible = true; + + protected int topPadding = 15; + + public ConfirmPopup(Activity paramActivity) { + super(paramActivity); + this.cancelText = paramActivity.getString(2097741975); + this.submitText = paramActivity.getString(2097741884); + } + + public TextView getCancelButton() { + TextView textView = this.cancelButton; + if (textView != null) + return textView; + throw new NullPointerException("please call show at first"); + } + + public TextView getSubmitButton() { + TextView textView = this.submitButton; + if (textView != null) + return textView; + throw new NullPointerException("please call show at first"); + } + + public View getTitleView() { + View view = this.titleView; + if (view != null) + return view; + throw new NullPointerException("please call show at first"); + } + + protected abstract V makeCenterView(); + + protected final View makeContentView() { + boolean bool1; + boolean bool2; + LinearLayout linearLayout = new LinearLayout((Context)this.activity); + linearLayout.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(-1, -1)); + linearLayout.setBackgroundColor(this.backgroundColor); + linearLayout.setOrientation(1); + linearLayout.setGravity(17); + linearLayout.setPadding(0, 0, 0, 0); + linearLayout.setClipToPadding(false); + View view2 = makeHeaderView(); + if (view2 != null) + linearLayout.addView(view2); + if (this.topLineVisible) { + view2 = new View((Context)this.activity); + view2.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(-1, this.topLineHeightPixels)); + view2.setBackgroundColor(this.topLineColor); + linearLayout.addView(view2); + } + if (this.centerView == null) + this.centerView = (View)makeCenterView(); + if (this.contentLeftAndRightPadding > 0) { + bool1 = (int)UIUtils.dip2Px((Context)this.activity, this.contentLeftAndRightPadding); + } else { + bool1 = false; + } + if (this.contentTopAndBottomPadding > 0) { + bool2 = (int)UIUtils.dip2Px((Context)this.activity, this.contentTopAndBottomPadding); + } else { + bool2 = false; + } + this.centerView.setPadding(bool1, bool2, bool1, bool2); + ViewGroup viewGroup = (ViewGroup)this.centerView.getParent(); + if (viewGroup != null) + viewGroup.removeView(this.centerView); + linearLayout.addView(this.centerView, (ViewGroup.LayoutParams)new LinearLayout.LayoutParams(-1, 0, 1.0F)); + View view1 = makeFooterView(); + if (view1 != null) + linearLayout.addView(view1); + return (View)linearLayout; + } + + protected View makeFooterView() { + View view = this.footerView; + return (view != null) ? view : null; + } + + protected View makeHeaderView() { + View view = this.headerView; + if (view != null) + return view; + RelativeLayout relativeLayout = new RelativeLayout((Context)this.activity); + relativeLayout.setLayoutParams((ViewGroup.LayoutParams)new RelativeLayout.LayoutParams(-1, (int)UIUtils.dip2Px((Context)this.activity, this.topHeight))); + relativeLayout.setBackgroundColor(this.topBackgroundColor); + relativeLayout.setGravity(16); + this.cancelButton = new TextView((Context)this.activity); + TextView textView = this.cancelButton; + if (this.cancelVisible) { + i = 0; + } else { + i = 8; + } + textView.setVisibility(i); + RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(-2, -1); + layoutParams.addRule(9, -1); + layoutParams.addRule(15, -1); + this.cancelButton.setLayoutParams((ViewGroup.LayoutParams)layoutParams); + this.cancelButton.setBackgroundColor(0); + this.cancelButton.setGravity(17); + int i = (int)UIUtils.dip2Px((Context)this.activity, this.topPadding); + this.cancelButton.setPadding(i, 0, i, 0); + if (!TextUtils.isEmpty(this.cancelText)) + this.cancelButton.setText(this.cancelText); + this.cancelButton.setTextColor(UIUtils.toColorStateList(this.cancelTextColor, this.pressedTextColor)); + int j = this.cancelTextSize; + if (j != 0) + this.cancelButton.setTextSize(j); + this.cancelButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + ConfirmPopup.this.dismiss(); + ConfirmPopup.this.onCancel(); + } + }); + relativeLayout.addView((View)this.cancelButton); + if (this.titleView == null) { + TextView textView1 = new TextView((Context)this.activity); + RelativeLayout.LayoutParams layoutParams1 = new RelativeLayout.LayoutParams(-2, -2); + j = (int)UIUtils.dip2Px((Context)this.activity, this.topPadding); + layoutParams1.leftMargin = j; + layoutParams1.rightMargin = j; + layoutParams1.addRule(14, -1); + layoutParams1.addRule(15, -1); + textView1.setLayoutParams((ViewGroup.LayoutParams)layoutParams1); + textView1.setGravity(17); + if (!TextUtils.isEmpty(this.titleText)) + textView1.setText(this.titleText); + textView1.setTextColor(this.titleTextColor); + j = this.titleTextSize; + if (j != 0) + textView1.setTextSize(j); + this.titleView = (View)textView1; + } + relativeLayout.addView(this.titleView); + this.submitButton = new TextView((Context)this.activity); + layoutParams = new RelativeLayout.LayoutParams(-2, -1); + layoutParams.addRule(11, -1); + layoutParams.addRule(15, -1); + this.submitButton.setLayoutParams((ViewGroup.LayoutParams)layoutParams); + this.submitButton.setBackgroundColor(0); + this.submitButton.setGravity(17); + this.submitButton.setPadding(i, 0, i, 0); + if (!TextUtils.isEmpty(this.submitText)) + this.submitButton.setText(this.submitText); + this.submitButton.setTextColor(UIUtils.toColorStateList(this.submitTextColor, this.pressedTextColor)); + i = this.submitTextSize; + if (i != 0) + this.submitButton.setTextSize(i); + this.submitButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View param1View) { + ConfirmPopup.this.dismiss(); + ConfirmPopup.this.onSubmit(); + } + }); + relativeLayout.addView((View)this.submitButton); + return (View)relativeLayout; + } + + protected void onCancel() { + OnCancelListener onCancelListener = this.onCancelListener; + if (onCancelListener != null) + onCancelListener.onCancel(); + } + + protected void onSubmit() {} + + public void setBackgroundColor(int paramInt) { + this.backgroundColor = paramInt; + } + + public void setCancelText(int paramInt) { + setCancelText(this.activity.getString(paramInt)); + } + + public void setCancelText(CharSequence paramCharSequence) { + TextView textView = this.cancelButton; + if (textView != null) { + textView.setText(paramCharSequence); + return; + } + this.cancelText = paramCharSequence; + } + + public void setCancelTextColor(int paramInt) { + TextView textView = this.cancelButton; + if (textView != null) { + textView.setTextColor(paramInt); + return; + } + this.cancelTextColor = paramInt; + } + + public void setCancelTextSize(int paramInt) { + this.cancelTextSize = paramInt; + } + + public void setCancelVisible(boolean paramBoolean) { + TextView textView = this.cancelButton; + if (textView != null) { + byte b; + if (paramBoolean) { + b = 0; + } else { + b = 8; + } + textView.setVisibility(b); + return; + } + this.cancelVisible = paramBoolean; + } + + public void setContentPadding(int paramInt1, int paramInt2) { + this.contentLeftAndRightPadding = paramInt1; + this.contentTopAndBottomPadding = paramInt2; + } + + public void setFooterView(View paramView) { + this.footerView = paramView; + } + + public void setHeaderView(View paramView) { + this.headerView = paramView; + } + + public void setOnCancelListener(OnCancelListener paramOnCancelListener) { + this.onCancelListener = paramOnCancelListener; + } + + public void setPressedTextColor(int paramInt) { + this.pressedTextColor = paramInt; + } + + public void setSubmitText(int paramInt) { + setSubmitText(this.activity.getString(paramInt)); + } + + public void setSubmitText(CharSequence paramCharSequence) { + TextView textView = this.submitButton; + if (textView != null) { + textView.setText(paramCharSequence); + return; + } + this.submitText = paramCharSequence; + } + + public void setSubmitTextColor(int paramInt) { + TextView textView = this.submitButton; + if (textView != null) { + textView.setTextColor(paramInt); + return; + } + this.submitTextColor = paramInt; + } + + public void setSubmitTextSize(int paramInt) { + this.submitTextSize = paramInt; + } + + public void setTitleText(int paramInt) { + setTitleText(this.activity.getString(paramInt)); + } + + public void setTitleText(CharSequence paramCharSequence) { + View view = this.titleView; + if (view != null && view instanceof TextView) { + ((TextView)view).setText(paramCharSequence); + return; + } + this.titleText = paramCharSequence; + } + + public void setTitleTextColor(int paramInt) { + View view = this.titleView; + if (view != null && view instanceof TextView) { + ((TextView)view).setTextColor(paramInt); + return; + } + this.titleTextColor = paramInt; + } + + public void setTitleTextSize(int paramInt) { + this.titleTextSize = paramInt; + } + + public void setTitleView(View paramView) { + this.titleView = paramView; + } + + public void setTopBackgroundColor(int paramInt) { + this.topBackgroundColor = paramInt; + } + + public void setTopHeight(int paramInt) { + this.topHeight = paramInt; + } + + public void setTopLineColor(int paramInt) { + this.topLineColor = paramInt; + } + + public void setTopLineHeight(int paramInt) { + this.topLineHeightPixels = paramInt; + } + + public void setTopLineVisible(boolean paramBoolean) { + this.topLineVisible = paramBoolean; + } + + public void setTopPadding(int paramInt) { + this.topPadding = paramInt; + } + + public static interface OnCancelListener { + void onCancel(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\framework\popup\ConfirmPopup.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/DatePicker.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/DatePicker.java new file mode 100644 index 0000000..0c2de63 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/DatePicker.java @@ -0,0 +1,193 @@ +package com.tt.miniapp.component.nativeview.picker.wheel; + +import android.app.Activity; + +public class DatePicker extends DateTimePicker { + public DatePicker(Activity paramActivity) { + this(paramActivity, 0); + } + + public DatePicker(Activity paramActivity, int paramInt) { + super(paramActivity, paramInt, -1); + } + + @Deprecated + public final void setDateRangeEnd(int paramInt1, int paramInt2) { + super.setDateRangeEnd(paramInt1, paramInt2); + } + + @Deprecated + public final void setDateRangeEnd(int paramInt1, int paramInt2, int paramInt3) { + super.setDateRangeEnd(paramInt1, paramInt2, paramInt3); + } + + @Deprecated + public final void setDateRangeStart(int paramInt1, int paramInt2) { + super.setDateRangeStart(paramInt1, paramInt2); + } + + @Deprecated + public final void setDateRangeStart(int paramInt1, int paramInt2, int paramInt3) { + super.setDateRangeStart(paramInt1, paramInt2, paramInt3); + } + + public void setLabel(String paramString1, String paramString2, String paramString3) { + super.setLabel(paramString1, paramString2, paramString3, "", ""); + } + + @Deprecated + public final void setLabel(String paramString1, String paramString2, String paramString3, String paramString4, String paramString5) { + super.setLabel(paramString1, paramString2, paramString3, paramString4, paramString5); + } + + public void setOnDatePickListener(final OnDatePickListener listener) { + if (listener == null) + return; + if (listener instanceof OnYearMonthDayPickListener) { + super.setOnDateTimePickListener(new DateTimePicker.OnYearMonthDayTimePickListener() { + public void onDateTimePicked(String param1String1, String param1String2, String param1String3, String param1String4, String param1String5) { + ((DatePicker.OnYearMonthDayPickListener)listener).onDatePicked(param1String1, param1String2, param1String3); + } + }); + return; + } + if (listener instanceof OnYearMonthPickListener) { + super.setOnDateTimePickListener(new DateTimePicker.OnYearMonthTimePickListener() { + public void onDateTimePicked(String param1String1, String param1String2, String param1String3, String param1String4) { + ((DatePicker.OnYearMonthPickListener)listener).onDatePicked(param1String1, param1String2); + } + }); + return; + } + if (listener instanceof OnMonthDayPickListener) { + super.setOnDateTimePickListener(new DateTimePicker.OnMonthDayTimePickListener() { + public void onDateTimePicked(String param1String1, String param1String2, String param1String3, String param1String4) { + ((DatePicker.OnMonthDayPickListener)listener).onDatePicked(param1String1, param1String2); + } + }); + return; + } + if (listener instanceof OnYearPickListener) + super.setOnDateTimePickListener(new DateTimePicker.OnYearMonthDayTimePickListener() { + public void onDateTimePicked(String param1String1, String param1String2, String param1String3, String param1String4, String param1String5) { + ((DatePicker.OnYearPickListener)listener).onDateTimePicked(param1String1); + } + }); + } + + @Deprecated + public final void setOnDateTimePickListener(DateTimePicker.OnDateTimePickListener paramOnDateTimePickListener) { + super.setOnDateTimePickListener(paramOnDateTimePickListener); + } + + public void setOnWheelListener(final OnWheelListener listener) { + if (listener == null) + return; + super.setOnWheelListener(new DateTimePicker.OnWheelListener() { + public void onDayWheeled(int param1Int, String param1String) { + listener.onDayWheeled(param1Int, param1String); + } + + public void onHourWheeled(int param1Int, String param1String) {} + + public void onMinuteWheeled(int param1Int, String param1String) {} + + public void onMonthWheeled(int param1Int, String param1String) { + listener.onMonthWheeled(param1Int, param1String); + } + + public void onYearWheeled(int param1Int, String param1String) { + listener.onYearWheeled(param1Int, param1String); + } + }); + } + + @Deprecated + public final void setOnWheelListener(DateTimePicker.OnWheelListener paramOnWheelListener) { + super.setOnWheelListener(paramOnWheelListener); + } + + public void setRange(int paramInt1, int paramInt2) { + super.setRange(paramInt1, paramInt2); + } + + public void setRangeEnd(int paramInt1, int paramInt2) { + super.setDateRangeEnd(paramInt1, paramInt2); + } + + public void setRangeEnd(int paramInt1, int paramInt2, int paramInt3) { + super.setDateRangeEnd(paramInt1, paramInt2, paramInt3); + } + + public void setRangeStart(int paramInt1, int paramInt2) { + super.setDateRangeStart(paramInt1, paramInt2); + } + + public void setRangeStart(int paramInt1, int paramInt2, int paramInt3) { + super.setDateRangeStart(paramInt1, paramInt2, paramInt3); + } + + public void setSelectedItem(int paramInt) { + super.setSelectedItem(paramInt, 0, 0, 0); + } + + public void setSelectedItem(int paramInt1, int paramInt2) { + super.setSelectedItem(paramInt1, paramInt2, 0, 0); + } + + public void setSelectedItem(int paramInt1, int paramInt2, int paramInt3) { + super.setSelectedItem(paramInt1, paramInt2, paramInt3, 0, 0); + } + + @Deprecated + public final void setSelectedItem(int paramInt1, int paramInt2, int paramInt3, int paramInt4) { + super.setSelectedItem(paramInt1, paramInt2, paramInt3, paramInt4); + } + + @Deprecated + public final void setSelectedItem(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5) { + super.setSelectedItem(paramInt1, paramInt2, paramInt3, paramInt4, paramInt5); + } + + @Deprecated + public void setTimeRangeEnd(int paramInt1, int paramInt2) { + throw new UnsupportedOperationException("Time range nonsupport"); + } + + @Deprecated + public void setTimeRangeStart(int paramInt1, int paramInt2) { + throw new UnsupportedOperationException("Time range nonsupport"); + } + + public static interface OnDatePickListener {} + + public static interface OnMonthDayPickListener extends OnDatePickListener { + void onDatePicked(String param1String1, String param1String2); + } + + public static interface OnWheelListener { + void onDayWheeled(int param1Int, String param1String); + + void onMonthWheeled(int param1Int, String param1String); + + void onYearWheeled(int param1Int, String param1String); + } + + public static interface OnYearMonthDayPickListener extends OnDatePickListener { + void onDatePicked(String param1String1, String param1String2, String param1String3); + } + + public static interface OnYearMonthPickListener extends OnDatePickListener { + void onDatePicked(String param1String1, String param1String2); + } + + public static interface OnYearPickListener extends OnDatePickListener { + void onDateTimePicked(String param1String); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\wheel\DatePicker.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/DateTimePicker.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/DateTimePicker.java new file mode 100644 index 0000000..f71d5e0 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/DateTimePicker.java @@ -0,0 +1,1090 @@ +package com.tt.miniapp.component.nativeview.picker.wheel; + +import android.app.Activity; +import android.content.Context; +import android.text.TextUtils; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; +import com.tt.miniapp.util.DateUtils; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.util.DebugUtil; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; + +public class DateTimePicker extends WheelPicker { + @Deprecated + public static final int HOUR = 4; + + @Deprecated + public static final int HOUR_OF_DAY = 3; + + public int dateMode = 0; + + public String dayLabel; + + public ArrayList days = new ArrayList(); + + private int endDay = 31; + + private int endHour; + + private int endMinute = 59; + + private int endMonth = 12; + + private int endYear = 2020; + + private String hourLabel; + + public ArrayList hours = new ArrayList(); + + private boolean mIsShowLable = false; + + public String minuteLabel; + + public ArrayList minutes = new ArrayList(); + + public String monthLabel; + + public ArrayList months = new ArrayList(); + + private OnDateTimePickListener onDateTimePickListener; + + public OnWheelListener onWheelListener; + + public boolean resetWhileWheel = true; + + public int selectedDayIndex = 0; + + public String selectedHour = ""; + + public String selectedMinute = ""; + + public int selectedMonthIndex = 0; + + public int selectedYearIndex = 0; + + private int startDay = 1; + + private int startHour; + + private int startMinute = 0; + + private int startMonth = 1; + + private int startYear = 2010; + + private int textSize = 17; + + private int timeMode = 3; + + private List> wheelViews = new ArrayList>(5); + + private String yearLabel; + + public ArrayList years = new ArrayList(); + + public DateTimePicker(Activity paramActivity, int paramInt) { + this(paramActivity, 0, paramInt); + } + + public DateTimePicker(Activity paramActivity, int paramInt1, int paramInt2) { + super(paramActivity); + this.yearLabel = paramActivity.getString(2097742059); + this.monthLabel = paramActivity.getString(2097741954); + this.dayLabel = paramActivity.getString(2097741882); + this.hourLabel = paramActivity.getString(2097741926); + this.minuteLabel = paramActivity.getString(2097741953); + if (paramInt1 != -1 || paramInt2 != -1) { + if (paramInt1 == 0 && paramInt2 != -1) + if (this.screenWidthPixels < 720) { + this.textSize = 14; + } else if (this.screenWidthPixels < 480) { + this.textSize = 12; + } + this.dateMode = paramInt1; + if (paramInt2 == 4) { + this.startHour = 1; + this.endHour = 12; + } else { + this.startHour = 0; + this.endHour = 23; + } + this.timeMode = paramInt2; + return; + } + throw new IllegalArgumentException("The modes are NONE at the same time"); + } + + private String addLable(String paramString1, String paramString2) { + if (this.mIsShowLable) + return paramString1; + String str = paramString2; + if (TextUtils.isEmpty(paramString2)) + str = ""; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramString1); + stringBuilder.append(str); + return stringBuilder.toString(); + } + + private int findItemIndex(ArrayList paramArrayList, int paramInt) { + int i = Collections.binarySearch(paramArrayList, Integer.valueOf(paramInt), new Comparator() { + public int compare(Object param1Object1, Object param1Object2) { + String str2 = param1Object1.toString(); + String str1 = param1Object2.toString(); + param1Object1 = str2; + if (str2.startsWith("0")) + param1Object1 = str2.substring(1); + param1Object2 = str1; + if (str1.startsWith("0")) + param1Object2 = str1.substring(1); + try { + int i = Integer.parseInt((String)param1Object1); + int j = Integer.parseInt((String)param1Object2); + return i - j; + } catch (NumberFormatException numberFormatException) { + AppBrandLogger.stacktrace(6, "DateTimePicker", numberFormatException.getStackTrace()); + return 0; + } + } + }); + paramInt = i; + if (i < 0) + paramInt = 0; + return paramInt; + } + + private void initHourData() { + byte b; + this.hours.clear(); + if (!this.resetWhileWheel) { + if (this.timeMode == 3) { + b = Calendar.getInstance().get(11); + } else { + b = Calendar.getInstance().get(10); + } + } else { + b = 0; + } + for (int i = this.startHour; i <= this.endHour; i++) { + String str = DateUtils.fillZero(i); + if (!this.resetWhileWheel && i == b) + this.selectedHour = str; + this.hours.add(str); + } + if (this.hours.indexOf(this.selectedHour) == -1) + this.selectedHour = this.hours.get(0); + if (!this.resetWhileWheel) + this.selectedMinute = DateUtils.fillZero(Calendar.getInstance().get(12)); + } + + private void initYearData() { + this.years.clear(); + int i = this.startYear; + int j = this.endYear; + if (i == j) { + this.years.add(String.valueOf(i)); + } else { + int k = i; + if (i < j) { + while (i <= this.endYear) { + this.years.add(String.valueOf(i)); + i++; + } + } else { + while (k >= this.endYear) { + this.years.add(String.valueOf(k)); + k--; + } + } + } + if (!this.resetWhileWheel) { + i = this.dateMode; + if (i == 0 || i == 1) { + i = this.years.indexOf(DateUtils.fillZero(Calendar.getInstance().get(1))); + if (i == -1) { + this.selectedYearIndex = 0; + return; + } + this.selectedYearIndex = i; + } + } + } + + public ArrayList addLable(ArrayList paramArrayList, String paramString) { + if (this.mIsShowLable) + return paramArrayList; + String str = paramString; + if (TextUtils.isEmpty(paramString)) + str = ""; + ArrayList arrayList = new ArrayList(); + for (String str1 : paramArrayList) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(str1); + stringBuilder.append(str); + arrayList.add(stringBuilder.toString()); + } + return arrayList; + } + + public void changeDayData(int paramInt1, int paramInt2) { + // Byte code: + // 0: iload_1 + // 1: iload_2 + // 2: invokestatic calculateDaysInMonth : (II)I + // 5: istore #6 + // 7: aload_0 + // 8: getfield resetWhileWheel : Z + // 11: ifne -> 83 + // 14: aload_0 + // 15: getfield selectedDayIndex : I + // 18: iload #6 + // 20: if_icmplt -> 31 + // 23: aload_0 + // 24: iload #6 + // 26: iconst_1 + // 27: isub + // 28: putfield selectedDayIndex : I + // 31: aload_0 + // 32: getfield days : Ljava/util/ArrayList; + // 35: invokevirtual size : ()I + // 38: istore_3 + // 39: aload_0 + // 40: getfield selectedDayIndex : I + // 43: istore #4 + // 45: iload_3 + // 46: iload #4 + // 48: if_icmple -> 68 + // 51: aload_0 + // 52: getfield days : Ljava/util/ArrayList; + // 55: iload #4 + // 57: invokevirtual get : (I)Ljava/lang/Object; + // 60: checkcast java/lang/String + // 63: astore #8 + // 65: goto -> 87 + // 68: invokestatic getInstance : ()Ljava/util/Calendar; + // 71: iconst_5 + // 72: invokevirtual get : (I)I + // 75: invokestatic fillZero : (I)Ljava/lang/String; + // 78: astore #8 + // 80: goto -> 87 + // 83: ldc '' + // 85: astore #8 + // 87: aload_0 + // 88: getfield days : Ljava/util/ArrayList; + // 91: invokevirtual clear : ()V + // 94: iload_1 + // 95: aload_0 + // 96: getfield startYear : I + // 99: if_icmpne -> 158 + // 102: iload_2 + // 103: aload_0 + // 104: getfield startMonth : I + // 107: if_icmpne -> 158 + // 110: iload_1 + // 111: aload_0 + // 112: getfield endYear : I + // 115: if_icmpne -> 158 + // 118: iload_2 + // 119: aload_0 + // 120: getfield endMonth : I + // 123: if_icmpne -> 158 + // 126: aload_0 + // 127: getfield startDay : I + // 130: istore_1 + // 131: iload_1 + // 132: aload_0 + // 133: getfield endDay : I + // 136: if_icmpgt -> 291 + // 139: aload_0 + // 140: getfield days : Ljava/util/ArrayList; + // 143: iload_1 + // 144: invokestatic fillZero : (I)Ljava/lang/String; + // 147: invokevirtual add : (Ljava/lang/Object;)Z + // 150: pop + // 151: iload_1 + // 152: iconst_1 + // 153: iadd + // 154: istore_1 + // 155: goto -> 131 + // 158: iload_1 + // 159: aload_0 + // 160: getfield startYear : I + // 163: if_icmpne -> 204 + // 166: iload_2 + // 167: aload_0 + // 168: getfield startMonth : I + // 171: if_icmpne -> 204 + // 174: aload_0 + // 175: getfield startDay : I + // 178: istore_1 + // 179: iload_1 + // 180: iload #6 + // 182: if_icmpgt -> 291 + // 185: aload_0 + // 186: getfield days : Ljava/util/ArrayList; + // 189: iload_1 + // 190: invokestatic fillZero : (I)Ljava/lang/String; + // 193: invokevirtual add : (Ljava/lang/Object;)Z + // 196: pop + // 197: iload_1 + // 198: iconst_1 + // 199: iadd + // 200: istore_1 + // 201: goto -> 179 + // 204: aload_0 + // 205: getfield endYear : I + // 208: istore #7 + // 210: iconst_1 + // 211: istore #5 + // 213: iconst_1 + // 214: istore #4 + // 216: iload #5 + // 218: istore_3 + // 219: iload_1 + // 220: iload #7 + // 222: if_icmpne -> 266 + // 225: iload #5 + // 227: istore_3 + // 228: iload_2 + // 229: aload_0 + // 230: getfield endMonth : I + // 233: if_icmpne -> 266 + // 236: iload #4 + // 238: istore_1 + // 239: iload_1 + // 240: aload_0 + // 241: getfield endDay : I + // 244: if_icmpgt -> 291 + // 247: aload_0 + // 248: getfield days : Ljava/util/ArrayList; + // 251: iload_1 + // 252: invokestatic fillZero : (I)Ljava/lang/String; + // 255: invokevirtual add : (Ljava/lang/Object;)Z + // 258: pop + // 259: iload_1 + // 260: iconst_1 + // 261: iadd + // 262: istore_1 + // 263: goto -> 239 + // 266: iload_3 + // 267: iload #6 + // 269: if_icmpgt -> 291 + // 272: aload_0 + // 273: getfield days : Ljava/util/ArrayList; + // 276: iload_3 + // 277: invokestatic fillZero : (I)Ljava/lang/String; + // 280: invokevirtual add : (Ljava/lang/Object;)Z + // 283: pop + // 284: iload_3 + // 285: iconst_1 + // 286: iadd + // 287: istore_3 + // 288: goto -> 266 + // 291: aload_0 + // 292: getfield resetWhileWheel : Z + // 295: ifne -> 322 + // 298: aload_0 + // 299: getfield days : Ljava/util/ArrayList; + // 302: aload #8 + // 304: invokevirtual indexOf : (Ljava/lang/Object;)I + // 307: istore_2 + // 308: iload_2 + // 309: istore_1 + // 310: iload_2 + // 311: iconst_m1 + // 312: if_icmpne -> 317 + // 315: iconst_0 + // 316: istore_1 + // 317: aload_0 + // 318: iload_1 + // 319: putfield selectedDayIndex : I + // 322: return + } + + public void changeMinuteData(int paramInt) { + this.minutes.clear(); + int i = this.startHour; + int j = this.endHour; + if (i == j) { + paramInt = this.startMinute; + i = this.endMinute; + if (paramInt > i) { + this.startMinute = i; + this.endMinute = paramInt; + } + for (paramInt = this.startMinute; paramInt <= this.endMinute; paramInt++) + this.minutes.add(DateUtils.fillZero(paramInt)); + } else if (paramInt == i) { + for (paramInt = this.startMinute; paramInt <= 59; paramInt++) + this.minutes.add(DateUtils.fillZero(paramInt)); + } else if (paramInt == j) { + for (paramInt = 0; paramInt <= this.endMinute; paramInt++) + this.minutes.add(DateUtils.fillZero(paramInt)); + } else { + for (paramInt = 0; paramInt <= 59; paramInt++) + this.minutes.add(DateUtils.fillZero(paramInt)); + } + if (this.minutes.indexOf(this.selectedMinute) == -1) + this.selectedMinute = this.minutes.get(0); + } + + public void changeMonthData(int paramInt) { + String str; + boolean bool = this.resetWhileWheel; + boolean bool2 = true; + boolean bool1 = true; + if (!bool) { + int j = this.months.size(); + int k = this.selectedMonthIndex; + if (j > k) { + str = this.months.get(k); + } else { + str = DateUtils.fillZero(Calendar.getInstance().get(2) + 1); + } + } else { + str = ""; + } + this.months.clear(); + int i = this.startMonth; + if (i > 0) { + int j = this.endMonth; + if (j > 0 && i <= 12 && j <= 12) { + int m = this.startYear; + int k = this.endYear; + if (m == k) { + paramInt = i; + if (i > j) { + for (paramInt = j; paramInt >= this.startMonth; paramInt--) + this.months.add(DateUtils.fillZero(paramInt)); + } else { + while (paramInt <= this.endMonth) { + this.months.add(DateUtils.fillZero(paramInt)); + paramInt++; + } + } + } else if (paramInt == m) { + while (i <= 12) { + this.months.add(DateUtils.fillZero(i)); + i++; + } + } else { + i = bool2; + if (paramInt == k) { + for (paramInt = bool1; paramInt <= this.endMonth; paramInt++) + this.months.add(DateUtils.fillZero(paramInt)); + } else { + while (i <= 12) { + this.months.add(DateUtils.fillZero(i)); + i++; + } + } + } + if (!this.resetWhileWheel) { + i = this.months.indexOf(str); + paramInt = i; + if (i == -1) + paramInt = 0; + this.selectedMonthIndex = paramInt; + } + return; + } + } + IllegalArgumentException illegalArgumentException = new IllegalArgumentException("Month out of range [1-12]"); + throw illegalArgumentException; + } + + public int getAdapterIndex(int paramInt1, int paramInt2) { + return (paramInt1 >= paramInt2) ? (paramInt2 - 1) : paramInt1; + } + + public String getSelectedDay() { + int i = this.dateMode; + if (i == 0 || i == 2) { + if (this.days.size() <= this.selectedDayIndex) + this.selectedDayIndex = this.days.size() - 1; + return this.days.get(this.selectedDayIndex); + } + return ""; + } + + public String getSelectedHour() { + return (this.timeMode != -1) ? this.selectedHour : ""; + } + + public String getSelectedMinute() { + return (this.timeMode != -1) ? this.selectedMinute : ""; + } + + public String getSelectedMonth() { + if (this.dateMode != -1) { + if (this.months.size() <= this.selectedMonthIndex) + this.selectedMonthIndex = this.months.size() - 1; + return this.months.get(this.selectedMonthIndex); + } + return ""; + } + + public String getSelectedYear() { + int i = this.dateMode; + if (i == 0 || i == 1 || i == 5) { + if (this.years.size() <= this.selectedYearIndex) + this.selectedYearIndex = this.years.size() - 1; + return this.years.get(this.selectedYearIndex); + } + return ""; + } + + public View makeCenterView() { + int i = this.dateMode; + if ((i == 0 || i == 1 || i == 5) && this.years.size() == 0) + initYearData(); + i = this.dateMode; + if (i == 0 || (i == 1 && this.months.size() == 0)) + changeMonthData(DateUtils.trimZero(getSelectedYear())); + i = this.dateMode; + if ((i == 0 || i == 2) && this.days.size() == 0) { + if (this.dateMode == 0) { + i = DateUtils.trimZero(getSelectedYear()); + } else { + i = Calendar.getInstance(Locale.CHINA).get(1); + } + changeDayData(i, DateUtils.trimZero(getSelectedMonth())); + } + if (this.timeMode != -1 && this.hours.size() == 0) + initHourData(); + if (this.timeMode != -1 && this.minutes.size() == 0) + changeMinuteData(DateUtils.trimZero(this.selectedHour)); + LinearLayout linearLayout = new LinearLayout((Context)this.activity); + linearLayout.setOrientation(0); + linearLayout.setGravity(17); + WheelView wheelView5 = createWheelView(); + final WheelView monthView = createWheelView(); + final WheelView dayView = createWheelView(); + WheelView wheelView2 = createWheelView(); + final WheelView minuteView = createWheelView(); + this.wheelViews.add(new WeakReference(wheelView5)); + this.wheelViews.add(new WeakReference(wheelView4)); + this.wheelViews.add(new WeakReference(wheelView3)); + this.wheelViews.add(new WeakReference(wheelView2)); + this.wheelViews.add(new WeakReference(wheelView1)); + i = this.dateMode; + if (i == 0 || i == 1 || i == 5) { + wheelView5.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(0, -2, 1.0F)); + wheelView5.setItems(addLable(this.years, this.yearLabel), this.selectedYearIndex); + wheelView5.setOnItemSelectListener(new WheelView.OnItemSelectListener() { + public void onSelected(int param1Int) { + DateTimePicker dateTimePicker2 = DateTimePicker.this; + dateTimePicker2.selectedYearIndex = param1Int; + String str = dateTimePicker2.years.get(DateTimePicker.this.selectedYearIndex); + if (DateTimePicker.this.onWheelListener != null) + DateTimePicker.this.onWheelListener.onYearWheeled(DateTimePicker.this.selectedYearIndex, str); + if (DateTimePicker.this.resetWhileWheel) { + DateTimePicker dateTimePicker = DateTimePicker.this; + dateTimePicker.selectedMonthIndex = 0; + dateTimePicker.selectedDayIndex = 0; + } + param1Int = DateUtils.trimZero(str); + DateTimePicker.this.changeMonthData(param1Int); + WheelView wheelView2 = monthView; + DateTimePicker dateTimePicker3 = DateTimePicker.this; + wheelView2.setItems(dateTimePicker3.addLable(dateTimePicker3.months, DateTimePicker.this.monthLabel), DateTimePicker.this.selectedMonthIndex); + if (DateTimePicker.this.onWheelListener != null) + DateTimePicker.this.onWheelListener.onMonthWheeled(DateTimePicker.this.selectedMonthIndex, DateTimePicker.this.months.get(DateTimePicker.this.selectedMonthIndex)); + DateTimePicker dateTimePicker1 = DateTimePicker.this; + dateTimePicker1.changeDayData(param1Int, DateUtils.trimZero(dateTimePicker1.months.get(DateTimePicker.this.selectedMonthIndex))); + WheelView wheelView1 = dayView; + dateTimePicker3 = DateTimePicker.this; + wheelView1.setItems(dateTimePicker3.addLable(dateTimePicker3.days, DateTimePicker.this.dayLabel), DateTimePicker.this.selectedDayIndex); + if (DateTimePicker.this.onWheelListener != null) + DateTimePicker.this.onWheelListener.onDayWheeled(DateTimePicker.this.selectedDayIndex, DateTimePicker.this.days.get(DateTimePicker.this.selectedDayIndex)); + } + }); + linearLayout.addView(wheelView5); + if (this.mIsShowLable && !TextUtils.isEmpty(this.yearLabel)) { + TextView textView = createLabelView(); + textView.setTextSize(this.textSize); + textView.setText(this.yearLabel); + linearLayout.addView((View)textView); + } + } + i = this.dateMode; + if (i == 0 || i == 1) { + wheelView4.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(0, -2, 1.0F)); + wheelView4.setItems(addLable(this.months, this.monthLabel), this.selectedMonthIndex); + wheelView4.setOnItemSelectListener(new WheelView.OnItemSelectListener() { + public void onSelected(int param1Int) { + DateTimePicker dateTimePicker = DateTimePicker.this; + int i = dateTimePicker.getAdapterIndex(param1Int, dateTimePicker.months.size()); + if (i < 0) { + DebugUtil.outputError("DateTimePicker", new Object[] { "invalid Index. index:", Integer.valueOf(i), "months.size():", Integer.valueOf(this.this$0.months.size()), "originIndex:", Integer.valueOf(param1Int) }); + return; + } + dateTimePicker = DateTimePicker.this; + dateTimePicker.selectedMonthIndex = i; + String str = dateTimePicker.months.get(DateTimePicker.this.selectedMonthIndex); + if (DateTimePicker.this.onWheelListener != null) + DateTimePicker.this.onWheelListener.onMonthWheeled(DateTimePicker.this.selectedMonthIndex, str); + if (DateTimePicker.this.dateMode == 0 || DateTimePicker.this.dateMode == 2) { + if (DateTimePicker.this.resetWhileWheel) + DateTimePicker.this.selectedDayIndex = 0; + if (DateTimePicker.this.dateMode == 0) { + param1Int = DateUtils.trimZero(DateTimePicker.this.getSelectedYear()); + } else { + param1Int = Calendar.getInstance(Locale.CHINA).get(1); + } + DateTimePicker.this.changeDayData(param1Int, DateUtils.trimZero(str)); + WheelView wheelView = dayView; + DateTimePicker dateTimePicker1 = DateTimePicker.this; + wheelView.setItems(dateTimePicker1.addLable(dateTimePicker1.days, DateTimePicker.this.dayLabel), DateTimePicker.this.selectedDayIndex); + if (DateTimePicker.this.onWheelListener != null) + DateTimePicker.this.onWheelListener.onDayWheeled(DateTimePicker.this.selectedDayIndex, DateTimePicker.this.days.get(DateTimePicker.this.selectedDayIndex)); + } + } + }); + linearLayout.addView(wheelView4); + if (this.mIsShowLable && !TextUtils.isEmpty(this.monthLabel)) { + TextView textView = createLabelView(); + textView.setTextSize(this.textSize); + textView.setText(this.monthLabel); + linearLayout.addView((View)textView); + } + } + if (this.dateMode == 0) { + wheelView3.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(0, -2, 1.0F)); + wheelView3.setItems(addLable(this.days, this.dayLabel), this.selectedDayIndex); + wheelView3.setOnItemSelectListener(new WheelView.OnItemSelectListener() { + public void onSelected(int param1Int) { + DateTimePicker dateTimePicker = DateTimePicker.this; + int i = dateTimePicker.getAdapterIndex(param1Int, dateTimePicker.days.size()); + if (i < 0) { + DebugUtil.outputError("DateTimePicker", new Object[] { "invalid Index. index:", Integer.valueOf(i), "days.size():", Integer.valueOf(this.this$0.days.size()), "originIndex:", Integer.valueOf(param1Int) }); + return; + } + dateTimePicker = DateTimePicker.this; + dateTimePicker.selectedDayIndex = i; + if (dateTimePicker.onWheelListener != null) + DateTimePicker.this.onWheelListener.onDayWheeled(DateTimePicker.this.selectedDayIndex, DateTimePicker.this.days.get(DateTimePicker.this.selectedDayIndex)); + } + }); + linearLayout.addView(wheelView3); + if (this.mIsShowLable && !TextUtils.isEmpty(this.dayLabel)) { + TextView textView = createLabelView(); + textView.setTextSize(this.textSize); + textView.setText(this.dayLabel); + linearLayout.addView((View)textView); + } + } + if (this.timeMode != -1) { + wheelView2.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(0, -2, 1.0F)); + wheelView2.setItems(addLable(this.hours, this.hourLabel), addLable(this.selectedHour, this.hourLabel)); + wheelView2.setOnItemSelectListener(new WheelView.OnItemSelectListener() { + public void onSelected(int param1Int) { + DateTimePicker dateTimePicker1 = DateTimePicker.this; + dateTimePicker1.selectedHour = dateTimePicker1.hours.get(param1Int); + if (DateTimePicker.this.onWheelListener != null) + DateTimePicker.this.onWheelListener.onHourWheeled(param1Int, DateTimePicker.this.selectedHour); + dateTimePicker1 = DateTimePicker.this; + dateTimePicker1.changeMinuteData(DateUtils.trimZero(dateTimePicker1.selectedHour)); + WheelView wheelView = minuteView; + DateTimePicker dateTimePicker2 = DateTimePicker.this; + wheelView.setItems(dateTimePicker2.addLable(dateTimePicker2.minutes, DateTimePicker.this.minuteLabel), DateTimePicker.this.selectedMinute); + } + }); + linearLayout.addView(wheelView2); + if (this.mIsShowLable && !TextUtils.isEmpty(this.hourLabel)) { + TextView textView = createLabelView(); + textView.setTextSize(this.textSize); + textView.setText(this.hourLabel); + linearLayout.addView((View)textView); + } + wheelView1.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(0, -2, 1.0F)); + wheelView1.setItems(addLable(this.minutes, this.minuteLabel), addLable(this.selectedMinute, this.minuteLabel)); + wheelView1.setOnItemSelectListener(new WheelView.OnItemSelectListener() { + public void onSelected(int param1Int) { + DateTimePicker dateTimePicker = DateTimePicker.this; + int i = dateTimePicker.getAdapterIndex(param1Int, dateTimePicker.minutes.size()); + if (i < 0) { + DebugUtil.outputError("DateTimePicker", new Object[] { "invalid Index. index:", Integer.valueOf(i), "minutes.size():", Integer.valueOf(this.this$0.minutes.size()), "originIndex:", Integer.valueOf(param1Int) }); + return; + } + dateTimePicker = DateTimePicker.this; + dateTimePicker.selectedMinute = dateTimePicker.minutes.get(i); + if (DateTimePicker.this.onWheelListener != null) + DateTimePicker.this.onWheelListener.onMinuteWheeled(i, DateTimePicker.this.selectedMinute); + } + }); + linearLayout.addView(wheelView1); + if (this.mIsShowLable && !TextUtils.isEmpty(this.minuteLabel)) { + TextView textView = createLabelView(); + textView.setTextSize(this.textSize); + textView.setText(this.minuteLabel); + linearLayout.addView((View)textView); + } + } + return (View)linearLayout; + } + + public void onSubmit() { + if (this.onDateTimePickListener == null) + return; + Iterator> iterator = this.wheelViews.iterator(); + while (iterator.hasNext()) { + WheelView wheelView = ((WeakReference)iterator.next()).get(); + if (wheelView != null) + wheelView.stopScroll(); + } + this.wheelViews.clear(); + String str1 = getSelectedYear(); + String str2 = getSelectedMonth(); + String str3 = getSelectedDay(); + String str4 = getSelectedHour(); + String str5 = getSelectedMinute(); + int i = this.dateMode; + if (i != -1) { + if (i != 0) { + if (i != 1) { + if (i != 2) { + if (i != 5) + return; + ((OnYearMonthDayTimePickListener)this.onDateTimePickListener).onDateTimePicked(str1, str2, str3, str4, str5); + return; + } + ((OnMonthDayTimePickListener)this.onDateTimePickListener).onDateTimePicked(str2, str3, str4, str5); + return; + } + ((OnYearMonthTimePickListener)this.onDateTimePickListener).onDateTimePicked(str1, str2, str4, str5); + return; + } + ((OnYearMonthDayTimePickListener)this.onDateTimePickListener).onDateTimePicked(str1, str2, str3, str4, str5); + return; + } + ((OnTimePickListener)this.onDateTimePickListener).onDateTimePicked(str4, str5); + } + + public void setDateRangeEnd(int paramInt1, int paramInt2) { + int i = this.dateMode; + if (i != -1) { + if (i != 0) { + if (i == 1) { + this.endYear = paramInt1; + this.endMonth = paramInt2; + } else if (i == 2) { + this.endMonth = paramInt1; + this.endDay = paramInt2; + } + initYearData(); + return; + } + throw new IllegalArgumentException("Not support year/month/day mode"); + } + throw new IllegalArgumentException("Date mode invalid"); + } + + public void setDateRangeEnd(int paramInt1, int paramInt2, int paramInt3) { + if (this.dateMode != -1) { + this.endYear = paramInt1; + this.endMonth = paramInt2; + this.endDay = paramInt3; + initYearData(); + return; + } + throw new IllegalArgumentException("Date mode invalid"); + } + + public void setDateRangeStart(int paramInt1, int paramInt2) { + int i = this.dateMode; + if (i != -1) { + if (i != 0) { + if (i == 1) { + this.startYear = paramInt1; + this.startMonth = paramInt2; + } else if (i == 2) { + i = Calendar.getInstance(Locale.CHINA).get(1); + this.endYear = i; + this.startYear = i; + this.startMonth = paramInt1; + this.startDay = paramInt2; + } + initYearData(); + return; + } + throw new IllegalArgumentException("Not support year/month/day mode"); + } + throw new IllegalArgumentException("Date mode invalid"); + } + + public void setDateRangeStart(int paramInt1, int paramInt2, int paramInt3) { + if (this.dateMode != -1) { + this.startYear = paramInt1; + this.startMonth = paramInt2; + this.startDay = paramInt3; + initYearData(); + return; + } + throw new IllegalArgumentException("Date mode invalid"); + } + + public void setLabel(String paramString1, String paramString2, String paramString3, String paramString4, String paramString5) { + this.yearLabel = paramString1; + this.monthLabel = paramString2; + this.dayLabel = paramString3; + this.hourLabel = paramString4; + this.minuteLabel = paramString5; + } + + public void setOnDateTimePickListener(OnDateTimePickListener paramOnDateTimePickListener) { + this.onDateTimePickListener = paramOnDateTimePickListener; + } + + public void setOnWheelListener(OnWheelListener paramOnWheelListener) { + this.onWheelListener = paramOnWheelListener; + } + + @Deprecated + public void setRange(int paramInt1, int paramInt2) { + if (this.dateMode != -1) { + this.startYear = paramInt1; + this.endYear = paramInt2; + initYearData(); + return; + } + throw new IllegalArgumentException("Date mode invalid"); + } + + public void setResetWhileWheel(boolean paramBoolean) { + this.resetWhileWheel = paramBoolean; + } + + public void setSelectedItem(int paramInt1, int paramInt2, int paramInt3, int paramInt4) { + int i = this.dateMode; + if (i != 0) { + if (i == 2) { + i = Calendar.getInstance(Locale.CHINA).get(1); + this.endYear = i; + this.startYear = i; + changeMonthData(i); + changeDayData(i, paramInt1); + this.selectedMonthIndex = findItemIndex(this.months, paramInt1); + this.selectedDayIndex = findItemIndex(this.days, paramInt2); + } else if (i == 1) { + changeMonthData(paramInt1); + this.selectedYearIndex = findItemIndex(this.years, paramInt1); + this.selectedMonthIndex = findItemIndex(this.months, paramInt2); + } + if (this.timeMode != -1) { + this.selectedHour = DateUtils.fillZero(paramInt3); + this.selectedMinute = DateUtils.fillZero(paramInt4); + } + return; + } + throw new IllegalArgumentException("Date mode invalid"); + } + + public void setSelectedItem(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5) { + changeMonthData(paramInt1); + changeDayData(paramInt1, paramInt2); + this.selectedYearIndex = findItemIndex(this.years, paramInt1); + this.selectedMonthIndex = findItemIndex(this.months, paramInt2); + this.selectedDayIndex = findItemIndex(this.days, paramInt3); + if (this.timeMode != -1) { + this.selectedHour = DateUtils.fillZero(paramInt4); + this.selectedMinute = DateUtils.fillZero(paramInt5); + } + } + + public void setTimeRangeEnd(int paramInt1, int paramInt2) { + // Byte code: + // 0: aload_0 + // 1: getfield timeMode : I + // 4: iconst_m1 + // 5: if_icmpeq -> 108 + // 8: iconst_0 + // 9: istore #4 + // 11: iload_1 + // 12: iflt -> 25 + // 15: iload_2 + // 16: iflt -> 25 + // 19: iload_2 + // 20: bipush #59 + // 22: if_icmple -> 28 + // 25: iconst_1 + // 26: istore #4 + // 28: iload #4 + // 30: istore_3 + // 31: aload_0 + // 32: getfield timeMode : I + // 35: iconst_4 + // 36: if_icmpne -> 54 + // 39: iload_1 + // 40: ifeq -> 52 + // 43: iload #4 + // 45: istore_3 + // 46: iload_1 + // 47: bipush #12 + // 49: if_icmple -> 54 + // 52: iconst_1 + // 53: istore_3 + // 54: iload_3 + // 55: istore #4 + // 57: aload_0 + // 58: getfield timeMode : I + // 61: iconst_3 + // 62: if_icmpne -> 77 + // 65: iload_3 + // 66: istore #4 + // 68: iload_1 + // 69: bipush #24 + // 71: if_icmplt -> 77 + // 74: iconst_1 + // 75: istore #4 + // 77: iload #4 + // 79: ifne -> 97 + // 82: aload_0 + // 83: iload_1 + // 84: putfield endHour : I + // 87: aload_0 + // 88: iload_2 + // 89: putfield endMinute : I + // 92: aload_0 + // 93: invokespecial initHourData : ()V + // 96: return + // 97: new java/lang/IllegalArgumentException + // 100: dup + // 101: ldc_w 'Time out of range' + // 104: invokespecial : (Ljava/lang/String;)V + // 107: athrow + // 108: new java/lang/IllegalArgumentException + // 111: dup + // 112: ldc_w 'Time mode invalid' + // 115: invokespecial : (Ljava/lang/String;)V + // 118: athrow + } + + public void setTimeRangeStart(int paramInt1, int paramInt2) { + // Byte code: + // 0: aload_0 + // 1: getfield timeMode : I + // 4: iconst_m1 + // 5: if_icmpeq -> 108 + // 8: iconst_0 + // 9: istore #4 + // 11: iload_1 + // 12: iflt -> 25 + // 15: iload_2 + // 16: iflt -> 25 + // 19: iload_2 + // 20: bipush #59 + // 22: if_icmple -> 28 + // 25: iconst_1 + // 26: istore #4 + // 28: iload #4 + // 30: istore_3 + // 31: aload_0 + // 32: getfield timeMode : I + // 35: iconst_4 + // 36: if_icmpne -> 54 + // 39: iload_1 + // 40: ifeq -> 52 + // 43: iload #4 + // 45: istore_3 + // 46: iload_1 + // 47: bipush #12 + // 49: if_icmple -> 54 + // 52: iconst_1 + // 53: istore_3 + // 54: iload_3 + // 55: istore #4 + // 57: aload_0 + // 58: getfield timeMode : I + // 61: iconst_3 + // 62: if_icmpne -> 77 + // 65: iload_3 + // 66: istore #4 + // 68: iload_1 + // 69: bipush #24 + // 71: if_icmplt -> 77 + // 74: iconst_1 + // 75: istore #4 + // 77: iload #4 + // 79: ifne -> 97 + // 82: aload_0 + // 83: iload_1 + // 84: putfield startHour : I + // 87: aload_0 + // 88: iload_2 + // 89: putfield startMinute : I + // 92: aload_0 + // 93: invokespecial initHourData : ()V + // 96: return + // 97: new java/lang/IllegalArgumentException + // 100: dup + // 101: ldc_w 'Time out of range' + // 104: invokespecial : (Ljava/lang/String;)V + // 107: athrow + // 108: new java/lang/IllegalArgumentException + // 111: dup + // 112: ldc_w 'Time mode invalid' + // 115: invokespecial : (Ljava/lang/String;)V + // 118: athrow + } + + @Retention(RetentionPolicy.SOURCE) + public static @interface DateMode {} + + protected static interface OnDateTimePickListener {} + + @Deprecated + public static interface OnMonthDayPickListener extends OnMonthDayTimePickListener {} + + public static interface OnMonthDayTimePickListener extends OnDateTimePickListener { + void onDateTimePicked(String param1String1, String param1String2, String param1String3, String param1String4); + } + + public static interface OnTimePickListener extends OnDateTimePickListener { + void onDateTimePicked(String param1String1, String param1String2); + } + + public static interface OnWheelListener { + void onDayWheeled(int param1Int, String param1String); + + void onHourWheeled(int param1Int, String param1String); + + void onMinuteWheeled(int param1Int, String param1String); + + void onMonthWheeled(int param1Int, String param1String); + + void onYearWheeled(int param1Int, String param1String); + } + + public static interface OnYearMonthDayTimePickListener extends OnDateTimePickListener { + void onDateTimePicked(String param1String1, String param1String2, String param1String3, String param1String4, String param1String5); + } + + @Deprecated + public static interface OnYearMonthPickListener extends OnYearMonthTimePickListener {} + + public static interface OnYearMonthTimePickListener extends OnDateTimePickListener { + void onDateTimePicked(String param1String1, String param1String2, String param1String3, String param1String4); + } + + @Retention(RetentionPolicy.SOURCE) + public static @interface TimeMode {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\wheel\DateTimePicker.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/MultiPicker.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/MultiPicker.java new file mode 100644 index 0000000..18f25a5 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/MultiPicker.java @@ -0,0 +1,228 @@ +package com.tt.miniapp.component.nativeview.picker.wheel; + +import android.app.Activity; +import android.content.Context; +import android.text.TextUtils; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import com.tt.miniapp.component.nativeview.picker.wheel.entity.MultiPickerManager; +import com.tt.miniapphost.util.UIUtils; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class MultiPicker extends WheelPicker { + private List> itemStrings = new ArrayList>(); + + private int itemWidth = -99; + + protected List> items = new ArrayList>(); + + private String label = ""; + + private onConfirmListener mOnComfimListener; + + protected OnWheelListener mOnWheelListener; + + protected List mWheelViews; + + private int[] selectedItemIndex; + + public MultiPicker(Activity paramActivity, List> paramList) { + super(paramActivity); + setItems(paramList); + MultiPickerManager.getInst().setMultiPicker(this); + } + + private String formatToString(T paramT, int paramInt) { + return this.textSizeAutoFit ? paramT.toString() : ((paramT instanceof Float || paramT instanceof Double) ? (new DecimalFormat("0.00")).format(paramT) : paramT.toString()); + } + + public View makeCenterView() { + if (this.items.size() != 0) { + LinearLayout linearLayout = new LinearLayout((Context)this.activity); + linearLayout.setLayoutParams(new ViewGroup.LayoutParams(-1, -2)); + linearLayout.setOrientation(0); + linearLayout.setGravity(17); + int j = this.items.size(); + this.mWheelViews = new ArrayList(); + int k = (int)(UIUtils.getScreenWidth(getContext()) / 1.0F / j); + for (int i = 0; i < j; i++) { + boolean bool; + final WheelView wheelView = createWheelView(); + this.mWheelViews.add(wheelView); + linearLayout.addView(wheelView); + if (TextUtils.isEmpty(this.label)) + wheelView.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(k, -2)); + int[] arrayOfInt = this.selectedItemIndex; + if (arrayOfInt != null) { + bool = arrayOfInt[i]; + } else { + bool = false; + } + wheelView.setItems(this.itemStrings.get(i), bool); + wheelView.setTag(Integer.valueOf(i)); + wheelView.setOnItemSelectListener(new WheelView.OnItemSelectListener() { + public void onSelected(int param1Int) { + MultiPicker.this.onOneWheelSelected(wheelView, param1Int); + } + }); + } + return (View)linearLayout; + } + IllegalArgumentException illegalArgumentException = new IllegalArgumentException("Items can't be empty"); + throw illegalArgumentException; + } + + protected void onOneWheelSelected(WheelView paramWheelView, int paramInt) { + int i = ((Integer)paramWheelView.getTag()).intValue(); + if (this.mOnWheelListener != null) { + List list = this.items.get(i); + if (list != null && list.size() != 0) { + if (list.size() <= paramInt) + return; + this.mOnWheelListener.onWheeled(i, paramInt, ((List)this.items.get(i)).get(paramInt)); + } + } + } + + public void onSubmit() { + if (this.mOnComfimListener != null) { + List list = this.mWheelViews; + if (list != null) { + int j = list.size(); + int[] arrayOfInt = new int[j]; + for (int i = 0; i < j; i++) + arrayOfInt[i] = ((WheelView)this.mWheelViews.get(i)).getSelectedIndex(); + this.mOnComfimListener.onConfirm(arrayOfInt); + } + } + } + + public void setItems(List> paramList) { + if (paramList != null) { + if (paramList.size() == 0) + return; + this.items = paramList; + this.itemStrings.clear(); + for (List list : paramList) { + ArrayList arrayList = new ArrayList(); + Iterator iterator = list.iterator(); + while (iterator.hasNext()) + arrayList.add(formatToString(iterator.next(), paramList.size())); + this.itemStrings.add(arrayList); + } + } + } + + public void setLabel(String paramString) { + this.label = paramString; + } + + public void setOnComfimListener(onConfirmListener paramonConfirmListener) { + this.mOnComfimListener = paramonConfirmListener; + } + + public void setOnWheelListener(OnWheelListener paramOnWheelListener) { + this.mOnWheelListener = paramOnWheelListener; + } + + public void setSelectedItem(int[] paramArrayOfint) { + this.selectedItemIndex = paramArrayOfint; + } + + public void updateMultiPickerView(int paramInt1, List paramList, int paramInt2) { + // Byte code: + // 0: aload_0 + // 1: getfield mWheelViews : Ljava/util/List; + // 4: astore #4 + // 6: aload #4 + // 8: ifnull -> 186 + // 11: aload #4 + // 13: invokeinterface size : ()I + // 18: iload_1 + // 19: iconst_1 + // 20: iadd + // 21: if_icmplt -> 186 + // 24: aload_0 + // 25: getfield mWheelViews : Ljava/util/List; + // 28: iload_1 + // 29: invokeinterface get : (I)Ljava/lang/Object; + // 34: checkcast com/tt/miniapp/component/nativeview/picker/wheel/WheelView + // 37: astore #4 + // 39: new java/util/ArrayList + // 42: dup + // 43: invokespecial : ()V + // 46: astore #5 + // 48: aload_2 + // 49: invokeinterface iterator : ()Ljava/util/Iterator; + // 54: astore #6 + // 56: aload #6 + // 58: invokeinterface hasNext : ()Z + // 63: ifeq -> 113 + // 66: aload #6 + // 68: invokeinterface next : ()Ljava/lang/Object; + // 73: astore #7 + // 75: aload #7 + // 77: instanceof java/lang/String + // 80: ifeq -> 56 + // 83: aload_0 + // 84: getfield items : Ljava/util/List; + // 87: ifnull -> 56 + // 90: aload_0 + // 91: getfield textSizeAutoFit : Z + // 94: ifne -> 56 + // 97: aload #5 + // 99: aload #7 + // 101: invokevirtual toString : ()Ljava/lang/String; + // 104: invokeinterface add : (Ljava/lang/Object;)Z + // 109: pop + // 110: goto -> 56 + // 113: aload_0 + // 114: getfield items : Ljava/util/List; + // 117: iload_1 + // 118: invokeinterface get : (I)Ljava/lang/Object; + // 123: checkcast java/util/List + // 126: astore #6 + // 128: aload #6 + // 130: invokeinterface clear : ()V + // 135: aload #5 + // 137: invokeinterface isEmpty : ()Z + // 142: ifne -> 165 + // 145: aload #6 + // 147: aload #5 + // 149: invokeinterface addAll : (Ljava/util/Collection;)Z + // 154: pop + // 155: aload #4 + // 157: aload #5 + // 159: invokevirtual setItems : (Ljava/util/List;)V + // 162: goto -> 180 + // 165: aload #6 + // 167: aload_2 + // 168: invokeinterface addAll : (Ljava/util/Collection;)Z + // 173: pop + // 174: aload #4 + // 176: aload_2 + // 177: invokevirtual setItems : (Ljava/util/List;)V + // 180: aload #4 + // 182: iload_3 + // 183: invokevirtual setSelectedIndex : (I)V + // 186: return + } + + public static interface OnWheelListener { + void onWheeled(int param1Int1, int param1Int2, T param1T); + } + + public static interface onConfirmListener { + void onConfirm(int[] param1ArrayOfint); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\wheel\MultiPicker.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/RegionPicker.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/RegionPicker.java new file mode 100644 index 0000000..e310da6 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/RegionPicker.java @@ -0,0 +1,341 @@ +package com.tt.miniapp.component.nativeview.picker.wheel; + +import android.app.Activity; +import android.content.Context; +import android.text.TextUtils; +import com.tt.miniapp.address.AddressInfo; +import com.tt.miniapp.address.LoadAddressTask; +import com.tt.miniapp.offlinezip.OfflineZipManager; +import com.tt.miniapp.offlinezip.OnOfflineZipCheckUpdateResultListener; +import java.util.ArrayList; +import java.util.List; + +public class RegionPicker extends MultiPicker implements LoadAddressTask.LoadCallBack { + public AddressInfo mCityName = new AddressInfo("", "", ""); + + public AddressInfo mDistrictName = new AddressInfo("", "", ""); + + public AddressInfo mHeads; + + private int mLastColumn = -2; + + private int mLastIndex = -2; + + public AddressInfo mRegionName = new AddressInfo("", "", ""); + + public String[] mSelectedStrings; + + public RegionPicker(Activity paramActivity) { + super(paramActivity, (List>)null); + ArrayList arrayList = new ArrayList(); + this.items.add(arrayList); + arrayList = new ArrayList(); + this.items.add(arrayList); + arrayList = new ArrayList(); + this.items.add(arrayList); + setItems(this.items); + } + + private void loadItem(final int province, final int city, final int district) { + final LoadAddressTask task = new LoadAddressTask((Context)this.activity, new LoadAddressTask.LoadCallBack() { + public void onLoaded(String param1String, List param1List, int param1Int) { + // Byte code: + // 0: aload_0 + // 1: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 4: aload_2 + // 5: invokevirtual addHeadIfExist : (Ljava/util/List;)Ljava/util/List; + // 8: astore_1 + // 9: aload_0 + // 10: getfield val$province : I + // 13: istore #5 + // 15: iconst_0 + // 16: istore #4 + // 18: iload #5 + // 20: istore_3 + // 21: iload #4 + // 23: aload_1 + // 24: invokeinterface size : ()I + // 29: if_icmpge -> 124 + // 32: iload #5 + // 34: istore_3 + // 35: aload_0 + // 36: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 39: invokevirtual hasSelectedProvince : ()Z + // 42: ifeq -> 124 + // 45: aload_1 + // 46: iload #4 + // 48: invokeinterface get : (I)Ljava/lang/Object; + // 53: checkcast com/tt/miniapp/address/AddressInfo + // 56: getfield name : Ljava/lang/String; + // 59: aload_0 + // 60: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 63: getfield mSelectedStrings : [Ljava/lang/String; + // 66: iconst_0 + // 67: aaload + // 68: invokevirtual equals : (Ljava/lang/Object;)Z + // 71: ifeq -> 98 + // 74: aload_0 + // 75: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 78: aload_1 + // 79: iload #4 + // 81: invokeinterface get : (I)Ljava/lang/Object; + // 86: checkcast com/tt/miniapp/address/AddressInfo + // 89: putfield mRegionName : Lcom/tt/miniapp/address/AddressInfo; + // 92: iload #4 + // 94: istore_3 + // 95: goto -> 124 + // 98: aload_0 + // 99: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 102: aload_1 + // 103: iconst_0 + // 104: invokeinterface get : (I)Ljava/lang/Object; + // 109: checkcast com/tt/miniapp/address/AddressInfo + // 112: putfield mRegionName : Lcom/tt/miniapp/address/AddressInfo; + // 115: iload #4 + // 117: iconst_1 + // 118: iadd + // 119: istore #4 + // 121: goto -> 18 + // 124: iload_3 + // 125: istore #4 + // 127: aload_0 + // 128: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 131: getfield mHeads : Lcom/tt/miniapp/address/AddressInfo; + // 134: ifnull -> 196 + // 137: aload_0 + // 138: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 141: getfield mHeads : Lcom/tt/miniapp/address/AddressInfo; + // 144: getfield name : Ljava/lang/String; + // 147: aload_0 + // 148: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 151: getfield mSelectedStrings : [Ljava/lang/String; + // 154: iconst_0 + // 155: aaload + // 156: invokevirtual equals : (Ljava/lang/Object;)Z + // 159: ifne -> 177 + // 162: iload_3 + // 163: istore #4 + // 165: aload_0 + // 166: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 169: getfield mSelectedStrings : [Ljava/lang/String; + // 172: iconst_0 + // 173: aaload + // 174: ifnonnull -> 196 + // 177: aload_0 + // 178: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 181: astore #6 + // 183: aload #6 + // 185: aload #6 + // 187: getfield mHeads : Lcom/tt/miniapp/address/AddressInfo; + // 190: putfield mRegionName : Lcom/tt/miniapp/address/AddressInfo; + // 193: iconst_0 + // 194: istore #4 + // 196: aload_0 + // 197: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 200: iconst_0 + // 201: aload_1 + // 202: iload #4 + // 204: invokevirtual updateMultiPickerView : (ILjava/util/List;I)V + // 207: aload_0 + // 208: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 211: invokevirtual hasSelectedCity : ()Z + // 214: ifeq -> 335 + // 217: new com/tt/miniapp/address/LoadAddressTask + // 220: dup + // 221: aload_0 + // 222: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 225: getfield activity : Landroid/app/Activity; + // 228: new com/tt/miniapp/component/nativeview/picker/wheel/RegionPicker$1$1 + // 231: dup + // 232: aload_0 + // 233: invokespecial : (Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker$1;)V + // 236: invokespecial : (Landroid/content/Context;Lcom/tt/miniapp/address/LoadAddressTask$LoadCallBack;)V + // 239: astore_1 + // 240: iload #4 + // 242: istore_3 + // 243: aload_0 + // 244: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 247: getfield mHeads : Lcom/tt/miniapp/address/AddressInfo; + // 250: ifnull -> 310 + // 253: iload #4 + // 255: iconst_1 + // 256: isub + // 257: istore #4 + // 259: iload #4 + // 261: istore_3 + // 262: iload #4 + // 264: ifge -> 310 + // 267: new java/util/ArrayList + // 270: dup + // 271: invokespecial : ()V + // 274: astore_1 + // 275: aload_1 + // 276: aload_0 + // 277: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 280: getfield mHeads : Lcom/tt/miniapp/address/AddressInfo; + // 283: invokeinterface add : (Ljava/lang/Object;)Z + // 288: pop + // 289: aload_0 + // 290: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 293: iconst_1 + // 294: aload_1 + // 295: iconst_0 + // 296: invokevirtual updateMultiPickerView : (ILjava/util/List;I)V + // 299: aload_0 + // 300: getfield this$0 : Lcom/tt/miniapp/component/nativeview/picker/wheel/RegionPicker; + // 303: iconst_2 + // 304: aload_1 + // 305: iconst_0 + // 306: invokevirtual updateMultiPickerView : (ILjava/util/List;I)V + // 309: return + // 310: aload_1 + // 311: iconst_1 + // 312: anewarray java/lang/String + // 315: dup + // 316: iconst_0 + // 317: aload_2 + // 318: iload_3 + // 319: invokeinterface get : (I)Ljava/lang/Object; + // 324: checkcast com/tt/miniapp/address/AddressInfo + // 327: invokevirtual getAddrHashCode : ()Ljava/lang/String; + // 330: aastore + // 331: invokevirtual execute : ([Ljava/lang/Object;)Landroid/os/AsyncTask; + // 334: pop + // 335: return + } + }); + if (TextUtils.isEmpty(OfflineZipManager.INSTANCE.getSpecifiedOfflineModuleVersion((Context)this.activity, "address"))) { + OfflineZipManager.INSTANCE.checkUpdateOfflineZip((Context)this.activity, new OnOfflineZipCheckUpdateResultListener() { + public void onComplete(boolean param1Boolean) { + if (param1Boolean) + task.execute((Object[])new String[] { "province" }, ); + } + }, new String[] { "address" }); + return; + } + loadAddressTask.execute((Object[])new String[] { "province" }); + } + + public List addHeadIfExist(List paramList) { + if (this.mHeads != null) { + ArrayList arrayList = new ArrayList(); + arrayList.add(this.mHeads); + if (paramList != null) + arrayList.addAll(paramList); + return arrayList; + } + return paramList; + } + + public AddressInfo[] getSelectedRegionArray() { + return new AddressInfo[] { this.mRegionName, this.mCityName, this.mDistrictName }; + } + + public boolean hasSelectedCity() { + String[] arrayOfString = this.mSelectedStrings; + return (arrayOfString != null && arrayOfString.length >= 2); + } + + public boolean hasSelectedDistrict() { + String[] arrayOfString = this.mSelectedStrings; + return (arrayOfString != null && arrayOfString.length >= 3); + } + + public boolean hasSelectedProvince() { + String[] arrayOfString = this.mSelectedStrings; + return (arrayOfString != null && arrayOfString.length > 0); + } + + public void loadItems() { + loadItem(0, 0, 0); + } + + public void onLoaded(String paramString, List paramList, int paramInt) { + updateMultiPickerView(paramInt, (List)paramList, 0); + } + + protected void onOneWheelSelected(WheelView paramWheelView, int paramInt) { + super.onOneWheelSelected(paramWheelView, paramInt); + int i = ((Integer)paramWheelView.getTag()).intValue(); + if (paramInt == this.mLastIndex && i == this.mLastColumn) + return; + this.mLastColumn = i; + this.mLastIndex = paramInt; + if (paramInt == 0 && this.mHeads != null) { + ArrayList arrayList = new ArrayList(); + arrayList.add(this.mHeads); + if (i == 0) { + AddressInfo addressInfo = this.mHeads; + this.mRegionName = addressInfo; + this.mCityName = addressInfo; + this.mDistrictName = addressInfo; + updateMultiPickerView(1, (List)arrayList, 0); + updateMultiPickerView(2, (List)arrayList, 0); + } + if (i == 1) { + AddressInfo addressInfo = this.mHeads; + this.mCityName = addressInfo; + this.mDistrictName = addressInfo; + updateMultiPickerView(2, (List)arrayList, 0); + } + if (i == 2) + this.mDistrictName = this.mHeads; + return; + } + null = new LoadAddressTask((Context)this.activity, this); + synchronized (this.items) { + List list1 = (List)this.items.get(i); + if (list1.isEmpty() || list1.size() < paramInt) + return; + AddressInfo addressInfo = list1.get(paramInt); + List list2 = addHeadIfExist(null.loadDivisionFromCache(addressInfo.getAddrHashCode())); + if (i != 0) { + if (i != 1) { + if (i == 2) + this.mDistrictName = addressInfo; + } else { + ((WheelView)this.mWheelViews.get(2)).setSelectedIndex(0); + this.mDistrictName = list2.get(0); + this.mCityName = addressInfo; + updateMultiPickerView(null.getLastDepth(), (List)list2, 0); + } + } else { + this.mRegionName = addressInfo; + ((WheelView)this.mWheelViews.get(1)).setSelectedIndex(0); + this.mCityName = list2.get(0); + paramInt = null.getLastDepth(); + updateMultiPickerView(paramInt, (List)list2, 0); + List list = addHeadIfExist(null.loadDivisionFromCache(this.mCityName.getAddrHashCode())); + this.mDistrictName = list.get(0); + updateMultiPickerView(paramInt + 1, (List)list, 0); + } + return; + } + } + + public void setSelectedRegionItem(String[] paramArrayOfString) { + this.mSelectedStrings = new String[3]; + int i = 0; + while (i < paramArrayOfString.length) { + String[] arrayOfString = this.mSelectedStrings; + if (i < arrayOfString.length) { + arrayOfString[i] = paramArrayOfString[i]; + i++; + } + } + } + + public void setWheelHead(String paramString) { + if (paramString != null) { + this.mHeads = new AddressInfo(paramString, "", ""); + this.mCityName = new AddressInfo(paramString, "", ""); + this.mDistrictName = new AddressInfo(paramString, "", ""); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\wheel\RegionPicker.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/SinglePicker.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/SinglePicker.java new file mode 100644 index 0000000..0fb4395 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/SinglePicker.java @@ -0,0 +1,203 @@ +package com.tt.miniapp.component.nativeview.picker.wheel; + +import android.app.Activity; +import android.content.Context; +import android.text.TextUtils; +import android.view.View; +import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.TextView; +import com.tt.miniapphost.util.UIUtils; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class SinglePicker extends WheelPicker { + private List itemStrings = new ArrayList(); + + private int itemWidth = -99; + + public List items = new ArrayList(); + + private String label = ""; + + private OnItemPickListener onItemPickListener; + + public OnWheelListener onWheelListener; + + public int selectedItemIndex = 0; + + private WheelView wheelView; + + public SinglePicker(Activity paramActivity, List paramList) { + super(paramActivity); + setItems(paramList); + } + + public SinglePicker(Activity paramActivity, T[] paramArrayOfT) { + this(paramActivity, Arrays.asList(paramArrayOfT)); + } + + private String formatToString(T paramT) { + return (paramT instanceof Float || paramT instanceof Double) ? (new DecimalFormat("0.00")).format(paramT) : paramT.toString(); + } + + public void addItem(T paramT) { + this.items.add(paramT); + this.itemStrings.add(formatToString(paramT)); + } + + public int getSelectedIndex() { + return this.selectedItemIndex; + } + + public T getSelectedItem() { + return this.items.get(this.selectedItemIndex); + } + + public WheelView getWheelView() { + return this.wheelView; + } + + public View makeCenterView() { + if (this.items.size() != 0) { + LinearLayout linearLayout = new LinearLayout((Context)this.activity); + linearLayout.setLayoutParams(new ViewGroup.LayoutParams(-1, -2)); + linearLayout.setOrientation(0); + linearLayout.setGravity(17); + this.wheelView = createWheelView(); + linearLayout.addView(this.wheelView); + if (TextUtils.isEmpty(this.label)) { + this.wheelView.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(this.screenWidthPixels, -2)); + } else { + this.wheelView.setLayoutParams((ViewGroup.LayoutParams)new LinearLayout.LayoutParams(-2, -2)); + TextView textView = createLabelView(); + textView.setText(this.label); + linearLayout.addView((View)textView); + } + this.wheelView.setItems(this.itemStrings, this.selectedItemIndex); + this.wheelView.setOnItemSelectListener(new WheelView.OnItemSelectListener() { + public void onSelected(int param1Int) { + SinglePicker singlePicker = SinglePicker.this; + singlePicker.selectedItemIndex = param1Int; + if (singlePicker.onWheelListener != null) + SinglePicker.this.onWheelListener.onWheeled(SinglePicker.this.selectedItemIndex, SinglePicker.this.items.get(param1Int)); + } + }); + if (this.itemWidth != -99) { + ViewGroup.LayoutParams layoutParams = this.wheelView.getLayoutParams(); + layoutParams.width = (int)UIUtils.dip2Px((Context)this.activity, this.itemWidth); + this.wheelView.setLayoutParams(layoutParams); + } + return (View)linearLayout; + } + throw new IllegalArgumentException("Items can't be empty"); + } + + public void onSubmit() { + OnItemPickListener onItemPickListener = this.onItemPickListener; + if (onItemPickListener != null) + onItemPickListener.onItemPicked(this.wheelView.getSelectedIndex(), getSelectedItem()); + } + + public void removeItem(T paramT) { + this.items.remove(paramT); + this.itemStrings.remove(formatToString(paramT)); + } + + public void setItemWidth(int paramInt) { + WheelView wheelView = this.wheelView; + if (wheelView != null) { + ViewGroup.LayoutParams layoutParams = wheelView.getLayoutParams(); + layoutParams.width = (int)UIUtils.dip2Px((Context)this.activity, paramInt); + this.wheelView.setLayoutParams(layoutParams); + return; + } + this.itemWidth = paramInt; + } + + public void setItems(List paramList) { + // Byte code: + // 0: aload_1 + // 1: ifnull -> 90 + // 4: aload_1 + // 5: invokeinterface size : ()I + // 10: ifne -> 14 + // 13: return + // 14: aload_0 + // 15: aload_1 + // 16: putfield items : Ljava/util/List; + // 19: aload_0 + // 20: getfield itemStrings : Ljava/util/List; + // 23: invokeinterface clear : ()V + // 28: aload_1 + // 29: invokeinterface iterator : ()Ljava/util/Iterator; + // 34: astore_1 + // 35: aload_1 + // 36: invokeinterface hasNext : ()Z + // 41: ifeq -> 69 + // 44: aload_1 + // 45: invokeinterface next : ()Ljava/lang/Object; + // 50: astore_2 + // 51: aload_0 + // 52: getfield itemStrings : Ljava/util/List; + // 55: aload_0 + // 56: aload_2 + // 57: invokespecial formatToString : (Ljava/lang/Object;)Ljava/lang/String; + // 60: invokeinterface add : (Ljava/lang/Object;)Z + // 65: pop + // 66: goto -> 35 + // 69: aload_0 + // 70: getfield wheelView : Lcom/tt/miniapp/component/nativeview/picker/wheel/WheelView; + // 73: astore_1 + // 74: aload_1 + // 75: ifnull -> 90 + // 78: aload_1 + // 79: aload_0 + // 80: getfield itemStrings : Ljava/util/List; + // 83: aload_0 + // 84: getfield selectedItemIndex : I + // 87: invokevirtual setItems : (Ljava/util/List;I)V + // 90: return + } + + public void setItems(T[] paramArrayOfT) { + setItems(Arrays.asList(paramArrayOfT)); + } + + public void setLabel(String paramString) { + this.label = paramString; + } + + public void setOnItemPickListener(OnItemPickListener paramOnItemPickListener) { + this.onItemPickListener = paramOnItemPickListener; + } + + public void setOnWheelListener(OnWheelListener paramOnWheelListener) { + this.onWheelListener = paramOnWheelListener; + } + + public void setSelectedIndex(int paramInt) { + if (paramInt >= 0 && paramInt < this.items.size()) + this.selectedItemIndex = paramInt; + } + + public void setSelectedItem(T paramT) { + setSelectedIndex(this.itemStrings.indexOf(formatToString(paramT))); + } + + public static interface OnItemPickListener { + void onItemPicked(int param1Int, T param1T); + } + + public static interface OnWheelListener { + void onWheeled(int param1Int, T param1T); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\wheel\SinglePicker.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/TimePicker.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/TimePicker.java new file mode 100644 index 0000000..1abe6f5 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/TimePicker.java @@ -0,0 +1,136 @@ +package com.tt.miniapp.component.nativeview.picker.wheel; + +import android.app.Activity; + +public class TimePicker extends DateTimePicker { + public TimePicker(Activity paramActivity) { + this(paramActivity, 3); + } + + public TimePicker(Activity paramActivity, int paramInt) { + super(paramActivity, -1, paramInt); + } + + @Deprecated + public final void setDateRangeEnd(int paramInt1, int paramInt2) { + throw new UnsupportedOperationException("Data range nonsupport"); + } + + @Deprecated + public final void setDateRangeEnd(int paramInt1, int paramInt2, int paramInt3) { + throw new UnsupportedOperationException("Date range nonsupport"); + } + + @Deprecated + public final void setDateRangeStart(int paramInt1, int paramInt2) { + throw new UnsupportedOperationException("Date range nonsupport"); + } + + @Deprecated + public final void setDateRangeStart(int paramInt1, int paramInt2, int paramInt3) { + throw new UnsupportedOperationException("Date range nonsupport"); + } + + public void setLabel(String paramString1, String paramString2) { + super.setLabel("", "", "", paramString1, paramString2); + } + + @Deprecated + public final void setLabel(String paramString1, String paramString2, String paramString3, String paramString4, String paramString5) { + super.setLabel(paramString1, paramString2, paramString3, paramString4, paramString5); + } + + @Deprecated + public final void setOnDateTimePickListener(DateTimePicker.OnDateTimePickListener paramOnDateTimePickListener) { + super.setOnDateTimePickListener(paramOnDateTimePickListener); + } + + public void setOnTimePickListener(final OnTimePickListener listener) { + if (listener == null) + return; + super.setOnDateTimePickListener(new DateTimePicker.OnTimePickListener() { + public void onDateTimePicked(String param1String1, String param1String2) { + listener.onTimePicked(param1String1, param1String2); + } + }); + } + + @Deprecated + public final void setOnWheelListener(DateTimePicker.OnWheelListener paramOnWheelListener) { + super.setOnWheelListener(paramOnWheelListener); + } + + public void setOnWheelListener(final OnWheelListener listener) { + if (listener == null) + return; + super.setOnWheelListener(new DateTimePicker.OnWheelListener() { + public void onDayWheeled(int param1Int, String param1String) {} + + public void onHourWheeled(int param1Int, String param1String) { + listener.onHourWheeled(param1Int, param1String); + } + + public void onMinuteWheeled(int param1Int, String param1String) { + listener.onMinuteWheeled(param1Int, param1String); + } + + public void onMonthWheeled(int param1Int, String param1String) {} + + public void onYearWheeled(int param1Int, String param1String) {} + }); + } + + @Deprecated + public void setRange(int paramInt1, int paramInt2) { + super.setTimeRangeStart(paramInt1, 0); + super.setTimeRangeEnd(paramInt2, 59); + } + + public void setRangeEnd(int paramInt1, int paramInt2) { + super.setTimeRangeEnd(paramInt1, paramInt2); + } + + public void setRangeStart(int paramInt1, int paramInt2) { + super.setTimeRangeStart(paramInt1, paramInt2); + } + + public void setSelectedItem(int paramInt1, int paramInt2) { + super.setSelectedItem(0, 0, paramInt1, paramInt2); + } + + @Deprecated + public final void setSelectedItem(int paramInt1, int paramInt2, int paramInt3, int paramInt4) { + super.setSelectedItem(paramInt1, paramInt2, paramInt3, paramInt4); + } + + @Deprecated + public final void setSelectedItem(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5) { + super.setSelectedItem(paramInt1, paramInt2, paramInt3, paramInt4, paramInt5); + } + + @Deprecated + public void setTimeRangeEnd(int paramInt1, int paramInt2) { + super.setTimeRangeEnd(paramInt1, paramInt2); + } + + @Deprecated + public void setTimeRangeStart(int paramInt1, int paramInt2) { + super.setTimeRangeStart(paramInt1, paramInt2); + } + + public static interface OnTimePickListener { + void onTimePicked(String param1String1, String param1String2); + } + + public static interface OnWheelListener { + void onHourWheeled(int param1Int, String param1String); + + void onMinuteWheeled(int param1Int, String param1String); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\wheel\TimePicker.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/WheelPicker.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/WheelPicker.java new file mode 100644 index 0000000..36b4ec8 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/WheelPicker.java @@ -0,0 +1,184 @@ +package com.tt.miniapp.component.nativeview.picker.wheel; + +import android.app.Activity; +import android.content.Context; +import android.graphics.Typeface; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import com.tt.miniapp.component.nativeview.picker.framework.popup.ConfirmPopup; + +public abstract class WheelPicker extends ConfirmPopup { + protected boolean cycleDisable = true; + + protected WheelView.DividerConfig dividerConfig = new WheelView.DividerConfig(); + + protected int labelTextColor = -14540254; + + protected float lineSpaceMultiplier = 3.0F; + + protected int offset = 5; + + protected int outTextSize = 15; + + protected int textColorFocus = -14540254; + + protected int textColorNormal = -6710887; + + protected int textPadding = -1; + + protected int textSize = 17; + + protected boolean textSizeAutoFit = true; + + protected Typeface typeface = Typeface.DEFAULT; + + protected boolean useWeight = true; + + public WheelPicker(Activity paramActivity) { + super(paramActivity); + } + + protected TextView createLabelView() { + TextView textView = new TextView((Context)this.activity); + textView.setLayoutParams(new ViewGroup.LayoutParams(-2, -2)); + textView.setTextColor(this.labelTextColor); + textView.setTextSize(this.textSize); + return textView; + } + + protected WheelView createWheelView() { + WheelView wheelView = new WheelView((Context)this.activity); + wheelView.setLineSpaceMultiplier(this.lineSpaceMultiplier); + wheelView.setTextPadding(this.textPadding); + wheelView.setTextSize(this.textSize); + wheelView.setOutTextSize(this.outTextSize); + wheelView.setTypeface(this.typeface); + wheelView.setTextColor(this.textColorNormal, this.textColorFocus); + wheelView.setDividerConfig(this.dividerConfig); + wheelView.setOffset(this.offset); + wheelView.setCycleDisable(this.cycleDisable); + wheelView.setUseWeight(this.useWeight); + wheelView.setTextSizeAutoFit(this.textSizeAutoFit); + return wheelView; + } + + public View getContentView() { + if (this.centerView == null) + this.centerView = makeCenterView(); + return this.centerView; + } + + public void setCycleDisable(boolean paramBoolean) { + this.cycleDisable = paramBoolean; + } + + public void setDividerColor(int paramInt) { + if (this.dividerConfig == null) + this.dividerConfig = new WheelView.DividerConfig(); + this.dividerConfig.setVisible(true); + this.dividerConfig.setColor(paramInt); + } + + public void setDividerConfig(WheelView.DividerConfig paramDividerConfig) { + if (paramDividerConfig == null) { + this.dividerConfig = new WheelView.DividerConfig(); + this.dividerConfig.setVisible(false); + this.dividerConfig.setShadowVisible(false); + return; + } + this.dividerConfig = paramDividerConfig; + } + + public void setDividerRatio(float paramFloat) { + if (this.dividerConfig == null) + this.dividerConfig = new WheelView.DividerConfig(); + this.dividerConfig.setRatio(paramFloat); + } + + public void setDividerVisible(boolean paramBoolean) { + if (this.dividerConfig == null) + this.dividerConfig = new WheelView.DividerConfig(); + this.dividerConfig.setVisible(paramBoolean); + } + + public void setLabelTextColor(int paramInt) { + this.labelTextColor = paramInt; + } + + @Deprecated + public void setLineColor(int paramInt) { + setDividerColor(paramInt); + } + + @Deprecated + public void setLineConfig(WheelView.DividerConfig paramDividerConfig) { + setDividerConfig(paramDividerConfig); + } + + public final void setLineSpaceMultiplier(float paramFloat) { + this.lineSpaceMultiplier = paramFloat; + } + + @Deprecated + public void setLineVisible(boolean paramBoolean) { + setDividerVisible(paramBoolean); + } + + public void setOutTextSize(int paramInt) { + this.outTextSize = paramInt; + } + + @Deprecated + public void setPadding(int paramInt) { + this.textPadding = paramInt; + } + + public void setShadowColor(int paramInt) { + setShadowColor(paramInt, 100); + } + + public void setShadowColor(int paramInt1, int paramInt2) { + if (this.dividerConfig == null) + this.dividerConfig = new WheelView.DividerConfig(); + this.dividerConfig.setShadowColor(paramInt1); + this.dividerConfig.setShadowAlpha(paramInt2); + } + + public void setShadowVisible(boolean paramBoolean) { + if (this.dividerConfig == null) + this.dividerConfig = new WheelView.DividerConfig(); + this.dividerConfig.setShadowVisible(paramBoolean); + } + + public void setTextColor(int paramInt) { + this.textColorFocus = paramInt; + } + + public void setTextColor(int paramInt1, int paramInt2) { + this.textColorFocus = paramInt1; + this.textColorNormal = paramInt2; + } + + public void setTextPadding(int paramInt) { + this.textPadding = paramInt; + } + + public void setTextSize(int paramInt) { + this.textSize = paramInt; + } + + public void setTextSizeAutoFit(boolean paramBoolean) { + this.textSizeAutoFit = paramBoolean; + } + + public void setUseWeight(boolean paramBoolean) { + this.useWeight = paramBoolean; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\wheel\WheelPicker.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/WheelView.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/WheelView.java new file mode 100644 index 0000000..b53a767 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/WheelView.java @@ -0,0 +1,1095 @@ +package com.tt.miniapp.component.nativeview.picker.wheel; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.Typeface; +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.view.GestureDetector; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewParent; +import com.a; +import com.tt.miniapp.component.nativeview.picker.wheel.entity.WheelItem; +import com.tt.miniapphost.util.UIUtils; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.TimerTask; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; + +public class WheelView extends View { + private float centerContentOffset; + + private DividerConfig dividerConfig = new DividerConfig(); + + private int drawCenterContentStart = 0; + + private int drawOutContentStart = 0; + + private float firstLineY; + + private GestureDetector gestureDetector; + + private int gravity = 17; + + public MessageHandler handler; + + public int initPosition = -1; + + public boolean isLoop = true; + + public float itemHeight; + + public List items = new ArrayList(); + + private String label; + + private float lineSpaceMultiplier = 3.0F; + + private ScheduledFuture mFuture; + + private int maxTextHeight; + + private int maxTextWidth; + + private int measuredHeight; + + private int measuredWidth; + + private int offset = 0; + + public OnItemSelectListener onItemSelectListener; + + public OnWheelListener onWheelListener; + + private boolean onlyShowCenterLabel = true; + + private int outTextSize = 15; + + private Paint paintCenterText; + + private Paint paintIndicator; + + private Paint paintOuterText; + + private Paint paintShadow; + + private int preCurrentIndex; + + private float previousY = 0.0F; + + private int radius; + + private float secondLineY; + + public int selectedIndex; + + private long startTime = 0L; + + private int textColorCenter = -14540254; + + private int textColorOuter = -6710887; + + private int textPadding = -1; + + private int textSize = 17; + + private boolean textSizeAutoFit = true; + + private int textSizeAutoScaleMinimum = -1; + + private int textSkewXOffset = 0; + + public float totalScrollY = 0.0F; + + private Typeface typeface = Typeface.DEFAULT; + + private boolean useWeight = false; + + private int visibleItemCount = 11; + + private int widthMeasureSpec; + + public WheelView(Context paramContext) { + this(paramContext, (AttributeSet)null); + } + + public WheelView(Context paramContext, AttributeSet paramAttributeSet) { + super(paramContext, paramAttributeSet); + float f = (getResources().getDisplayMetrics()).density; + if (f < 1.0F) { + this.centerContentOffset = 2.4F; + } else if (1.0F <= f && f < 2.0F) { + this.centerContentOffset = 3.6F; + } else if (1.0F <= f && f < 2.0F) { + this.centerContentOffset = 4.5F; + } else if (2.0F <= f && f < 3.0F) { + this.centerContentOffset = 6.0F; + } else if (f >= 3.0F) { + this.centerContentOffset = f * 2.5F; + } + judgeLineSpace(); + initView(paramContext); + } + + public static float computeTextWidth(String paramString, float paramFloat) { + Paint paint = new Paint(); + paint.setTextSize(paramFloat); + return paint.measureText(paramString); + } + + public static String cutShortString(String paramString, int paramInt) { + // Byte code: + // 0: iload_1 + // 1: iconst_1 + // 2: if_icmpeq -> 17 + // 5: iload_1 + // 6: iconst_2 + // 7: if_icmpeq -> 58 + // 10: iload_1 + // 11: iconst_3 + // 12: if_icmpeq -> 99 + // 15: aload_0 + // 16: areturn + // 17: aload_0 + // 18: invokevirtual length : ()I + // 21: bipush #15 + // 23: if_icmple -> 58 + // 26: new java/lang/StringBuilder + // 29: dup + // 30: invokespecial : ()V + // 33: astore_2 + // 34: aload_2 + // 35: aload_0 + // 36: iconst_0 + // 37: bipush #15 + // 39: invokevirtual substring : (II)Ljava/lang/String; + // 42: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 45: pop + // 46: aload_2 + // 47: ldc '...' + // 49: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 52: pop + // 53: aload_2 + // 54: invokevirtual toString : ()Ljava/lang/String; + // 57: areturn + // 58: aload_0 + // 59: invokevirtual length : ()I + // 62: bipush #7 + // 64: if_icmple -> 99 + // 67: new java/lang/StringBuilder + // 70: dup + // 71: invokespecial : ()V + // 74: astore_2 + // 75: aload_2 + // 76: aload_0 + // 77: iconst_0 + // 78: bipush #7 + // 80: invokevirtual substring : (II)Ljava/lang/String; + // 83: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 86: pop + // 87: aload_2 + // 88: ldc '...' + // 90: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 93: pop + // 94: aload_2 + // 95: invokevirtual toString : ()Ljava/lang/String; + // 98: areturn + // 99: aload_0 + // 100: astore_2 + // 101: aload_0 + // 102: invokevirtual length : ()I + // 105: iconst_5 + // 106: if_icmple -> 140 + // 109: new java/lang/StringBuilder + // 112: dup + // 113: invokespecial : ()V + // 116: astore_2 + // 117: aload_2 + // 118: aload_0 + // 119: iconst_0 + // 120: iconst_5 + // 121: invokevirtual substring : (II)Ljava/lang/String; + // 124: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 127: pop + // 128: aload_2 + // 129: ldc '...' + // 131: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuilder; + // 134: pop + // 135: aload_2 + // 136: invokevirtual toString : ()Ljava/lang/String; + // 139: astore_2 + // 140: aload_2 + // 141: areturn + } + + private int getLoopMappingIndex(int paramInt) { + if (paramInt < 0) + return getLoopMappingIndex(paramInt + this.items.size()); + int i = paramInt; + if (paramInt > this.items.size() - 1) + i = getLoopMappingIndex(paramInt - this.items.size()); + return i; + } + + private void initDataForIDE() { + if (isInEditMode()) + setItems(new String[] { "李玉江", "男", "贵州", "穿青人" }); + } + + private void initPaints() { + this.paintOuterText = new Paint(); + this.paintOuterText.setAntiAlias(true); + this.paintOuterText.setColor(this.textColorOuter); + this.paintOuterText.setTypeface(this.typeface); + this.paintOuterText.setTextSize(this.outTextSize); + this.paintCenterText = new Paint(); + this.paintCenterText.setAntiAlias(true); + this.paintCenterText.setColor(this.textColorCenter); + this.paintCenterText.setTextScaleX(1.0F); + this.paintCenterText.setTypeface(this.typeface); + this.paintCenterText.setTextSize(this.textSize); + this.paintIndicator = new Paint(); + this.paintIndicator.setAntiAlias(true); + this.paintIndicator.setColor(this.dividerConfig.color); + this.paintIndicator.setStrokeWidth(this.dividerConfig.thick); + this.paintIndicator.setAlpha(this.dividerConfig.alpha); + this.paintShadow = new Paint(); + this.paintShadow.setAntiAlias(true); + this.paintShadow.setColor(this.dividerConfig.shadowColor); + this.paintShadow.setAlpha(this.dividerConfig.shadowAlpha); + setLayerType(1, null); + } + + private void initView(Context paramContext) { + this.handler = new MessageHandler(this); + this.gestureDetector = new GestureDetector(paramContext, (GestureDetector.OnGestureListener)new GestureDetector.SimpleOnGestureListener() { + public final boolean onFling(MotionEvent param1MotionEvent1, MotionEvent param1MotionEvent2, float param1Float1, float param1Float2) { + WheelView.this.scrollBy(param1Float2); + return true; + } + }); + this.gestureDetector.setIsLongpressEnabled(false); + initPaints(); + initDataForIDE(); + } + + private void judgeLineSpace() { + float f = this.lineSpaceMultiplier; + if (f < 1.5F) { + this.lineSpaceMultiplier = 1.5F; + return; + } + if (f > 4.0F) + this.lineSpaceMultiplier = 4.0F; + } + + private void measureTextWidthHeight() { + Rect rect = new Rect(); + for (int i = 0; i < this.items.size(); i++) { + String str = obtainContentText(this.items.get(i)); + this.paintCenterText.getTextBounds(str, 0, str.length(), rect); + int j = rect.width(); + if (j > this.maxTextWidth) + this.maxTextWidth = j; + } + this.paintCenterText.getTextBounds("测试", 0, 2, rect); + this.maxTextHeight = rect.height() + 2; + this.itemHeight = (int)UIUtils.dip2Px(getContext(), 48.0F); + } + + private void measuredCenterContentStart(String paramString) { + Rect rect = new Rect(); + this.paintCenterText.getTextBounds(paramString, 0, paramString.length(), rect); + int i = this.gravity; + if (i != 3) { + if (i != 5) { + if (i != 17) + return; + double d = (this.measuredWidth - rect.width()); + Double.isNaN(d); + this.drawCenterContentStart = (int)(d * 0.5D); + return; + } + this.drawCenterContentStart = this.measuredWidth - rect.width() - (int)this.centerContentOffset; + return; + } + this.drawCenterContentStart = (int)UIUtils.dip2Px(getContext(), 8.0F); + } + + private void measuredOutContentStart(String paramString) { + Rect rect = new Rect(); + this.paintOuterText.getTextBounds(paramString, 0, paramString.length(), rect); + int i = this.gravity; + if (i != 3) { + if (i != 5) { + if (i != 17) + return; + double d = (this.measuredWidth - rect.width()); + Double.isNaN(d); + this.drawOutContentStart = (int)(d * 0.5D); + return; + } + this.drawOutContentStart = this.measuredWidth - rect.width() - (int)this.centerContentOffset; + return; + } + this.drawOutContentStart = (int)UIUtils.dip2Px(getContext(), 8.0F); + } + + private String obtainContentText(Object paramObject) { + return (paramObject == null) ? "" : ((paramObject instanceof WheelItem) ? ((WheelItem)paramObject).getName() : ((paramObject instanceof Integer) ? a.a(Locale.getDefault(), "%02d", new Object[] { Integer.valueOf(((Integer)paramObject).intValue()) }) : paramObject.toString())); + } + + private int obtainTextWidth(Paint paramPaint, String paramString) { + boolean bool; + int i = 0; + if (paramString != null && paramString.length() > 0) { + int k = paramString.length(); + float[] arrayOfFloat = new float[k]; + paramPaint.getTextWidths(paramString, arrayOfFloat); + int j = 0; + while (true) { + bool = j; + if (i < k) { + j += (int)Math.ceil(arrayOfFloat[i]); + i++; + continue; + } + break; + } + } else { + bool = false; + } + return bool; + } + + private void remeasure() { + if (this.items == null) + return; + measureTextWidthHeight(); + int i = (int)(this.itemHeight * (this.visibleItemCount - 1)); + double d = (i * 2); + Double.isNaN(d); + this.measuredHeight = (int)(d / Math.PI); + d = i; + Double.isNaN(d); + this.radius = (int)(d / Math.PI); + ViewGroup.LayoutParams layoutParams = getLayoutParams(); + if (this.useWeight) { + this.measuredWidth = View.MeasureSpec.getSize(this.widthMeasureSpec); + } else if (layoutParams != null && layoutParams.width > 0) { + this.measuredWidth = layoutParams.width; + } else { + this.measuredWidth = this.maxTextWidth; + if (this.textPadding < 0) + this.textPadding = (int)UIUtils.dip2Px(getContext(), 13.0F); + this.measuredWidth += this.textPadding * 2; + if (!TextUtils.isEmpty(this.label)) + this.measuredWidth += obtainTextWidth(this.paintCenterText, this.label); + } + i = this.measuredHeight; + float f1 = i; + float f2 = this.itemHeight; + this.firstLineY = (f1 - f2) / 2.0F; + this.secondLineY = (i + f2) / 2.0F; + if (this.initPosition == -1) + if (this.isLoop) { + this.initPosition = (this.items.size() + 1) / 2; + } else { + this.initPosition = 0; + } + this.preCurrentIndex = this.initPosition; + this.textSizeAutoScaleMinimum = UIUtils.sp2px(getContext(), 8.0F); + } + + private boolean remeasureTextSize(String paramString) { + Rect rect = new Rect(); + this.paintCenterText.getTextBounds(paramString, 0, paramString.length(), rect); + float f = computeTextWidth(paramString, this.textSize); + int i = this.textSize; + if (f > this.measuredWidth) { + this.paintOuterText.setTextSize(this.outTextSize); + this.paintCenterText.setTextSize(i); + this.paintCenterText.getTextBounds(paramString, 0, paramString.length(), rect); + return false; + } + return true; + } + + public void cancelFuture() { + ScheduledFuture scheduledFuture = this.mFuture; + if (scheduledFuture != null && !scheduledFuture.isCancelled()) { + this.mFuture.cancel(true); + this.mFuture = null; + } + } + + protected int getItemCount() { + List list = this.items; + return (list != null) ? list.size() : 0; + } + + public final int getSelectedIndex() { + return this.selectedIndex; + } + + public void itemSelectedCallback() { + if (this.onItemSelectListener == null && this.onWheelListener == null) + return; + postDelayed(new Runnable() { + public void run() { + if (WheelView.this.onItemSelectListener != null) + WheelView.this.onItemSelectListener.onSelected(WheelView.this.selectedIndex); + if (WheelView.this.onWheelListener != null) + WheelView.this.onWheelListener.onSelected(true, WheelView.this.selectedIndex, ((WheelItem)WheelView.this.items.get(WheelView.this.selectedIndex)).getName()); + } + }200L); + } + + protected void onDraw(Canvas paramCanvas) { + List list = this.items; + if (list != null) { + if (list.size() == 0) + return; + String[] arrayOfString = new String[this.visibleItemCount]; + int i = (int)(this.totalScrollY / this.itemHeight); + this.preCurrentIndex = this.initPosition + i % this.items.size(); + if (!this.isLoop) { + if (this.preCurrentIndex < 0) + this.preCurrentIndex = 0; + if (this.preCurrentIndex > this.items.size() - 1) + this.preCurrentIndex = this.items.size() - 1; + } else { + if (this.preCurrentIndex < 0) + this.preCurrentIndex = this.items.size() + this.preCurrentIndex; + if (this.preCurrentIndex > this.items.size() - 1) + this.preCurrentIndex -= this.items.size(); + } + float f = this.totalScrollY % this.itemHeight; + for (i = 0;; i++) { + int j = this.visibleItemCount; + if (i < j) { + int k = this.preCurrentIndex - j / 2 - i; + if (this.isLoop) { + j = getLoopMappingIndex(k); + } else { + if (k < 0) { + arrayOfString[i] = ""; + continue; + } + j = k; + if (k > this.items.size() - 1) { + arrayOfString[i] = ""; + continue; + } + } + arrayOfString[i] = ((WheelItem)this.items.get(j)).getName(); + continue; + } + if (this.dividerConfig.visible) { + float f1 = this.dividerConfig.ratio; + i = this.measuredWidth; + float f3 = i; + float f4 = this.firstLineY; + float f5 = i; + float f2 = 1.0F - f1; + paramCanvas.drawLine(f3 * f1, f4, f5 * f2, f4, this.paintIndicator); + i = this.measuredWidth; + f3 = i; + f4 = this.secondLineY; + paramCanvas.drawLine(f3 * f1, f4, i * f2, f4, this.paintIndicator); + } + if (this.dividerConfig.shadowVisible) { + this.paintShadow.setColor(this.dividerConfig.shadowColor); + this.paintShadow.setAlpha(this.dividerConfig.shadowAlpha); + paramCanvas.drawRect(0.0F, this.firstLineY, this.measuredWidth, this.secondLineY, this.paintShadow); + } + i = 0; + while (true) { + i++; + this.paintOuterText.setTextSize(this.outTextSize); + } + break; + } + } + } + + protected void onMeasure(int paramInt1, int paramInt2) { + this.widthMeasureSpec = paramInt1; + remeasure(); + setMeasuredDimension(this.measuredWidth, this.measuredHeight); + } + + public boolean onTouchEvent(MotionEvent paramMotionEvent) { + boolean bool = this.gestureDetector.onTouchEvent(paramMotionEvent); + ViewParent viewParent = getParent(); + int i = paramMotionEvent.getAction(); + if (i != 0) { + if (i != 2) { + if (!bool) { + float f1 = paramMotionEvent.getY(); + i = this.radius; + double d1 = Math.acos(((i - f1) / i)); + double d2 = this.radius; + Double.isNaN(d2); + f1 = this.itemHeight; + double d3 = (f1 / 2.0F); + Double.isNaN(d3); + double d4 = f1; + Double.isNaN(d4); + i = (int)((d1 * d2 + d3) / d4); + float f2 = this.totalScrollY; + this.offset = (int)((i - this.visibleItemCount / 2) * f1 - (f2 % f1 + f1) % f1); + if (System.currentTimeMillis() - this.startTime > 120L) { + smoothScroll(3); + } else { + smoothScroll(1); + } + } + if (viewParent != null) + viewParent.requestDisallowInterceptTouchEvent(false); + } else { + float f = this.previousY - paramMotionEvent.getRawY(); + this.previousY = paramMotionEvent.getRawY(); + this.totalScrollY += f; + if (!this.isLoop) { + float f3 = -this.initPosition * this.itemHeight; + float f2 = (this.items.size() - 1 - this.initPosition); + float f1 = this.itemHeight; + float f4 = f2 * f1; + float f5 = this.totalScrollY; + double d1 = f5; + double d2 = f1; + Double.isNaN(d2); + Double.isNaN(d1); + if (d1 - d2 * 0.25D < f3) { + f2 = f5 - f; + f1 = f4; + } else { + d1 = f5; + d2 = f1; + Double.isNaN(d2); + Double.isNaN(d1); + f1 = f4; + f2 = f3; + if (d1 + d2 * 0.25D > f4) { + f1 = f5 - f; + f2 = f3; + } + } + f3 = this.totalScrollY; + if (f3 < f2) { + this.totalScrollY = (int)f2; + } else if (f3 > f1) { + this.totalScrollY = (int)f1; + } + } + } + } else { + this.startTime = System.currentTimeMillis(); + cancelFuture(); + this.previousY = paramMotionEvent.getRawY(); + if (viewParent != null) + viewParent.requestDisallowInterceptTouchEvent(true); + } + invalidate(); + return true; + } + + public void scrollBy(float paramFloat) { + cancelFuture(); + InertiaTimerTask inertiaTimerTask = new InertiaTimerTask(this, paramFloat); + this.mFuture = _lancet.com_ss_android_ugc_aweme_lancet_ThreadPoolLancet_newSingleThreadScheduledExecutor().scheduleWithFixedDelay(inertiaTimerTask, 0L, 5L, TimeUnit.MILLISECONDS); + } + + public final void setCycleDisable(boolean paramBoolean) { + this.isLoop = paramBoolean ^ true; + } + + public void setDividerColor(int paramInt) { + this.dividerConfig.setColor(paramInt); + this.paintIndicator.setColor(paramInt); + } + + public void setDividerConfig(DividerConfig paramDividerConfig) { + if (paramDividerConfig == null) { + this.dividerConfig.setVisible(false); + this.dividerConfig.setShadowVisible(false); + return; + } + this.dividerConfig = paramDividerConfig; + this.paintIndicator.setColor(paramDividerConfig.color); + this.paintIndicator.setStrokeWidth(paramDividerConfig.thick); + this.paintIndicator.setAlpha(paramDividerConfig.alpha); + this.paintShadow.setColor(paramDividerConfig.shadowColor); + this.paintShadow.setAlpha(paramDividerConfig.shadowAlpha); + } + + public final void setGravity(int paramInt) { + this.gravity = paramInt; + } + + public final void setItems(List paramList) { + this.items.clear(); + Iterator iterator = paramList.iterator(); + while (iterator.hasNext()) { + Object object = iterator.next(); + if (object instanceof WheelItem) { + this.items.add((WheelItem)object); + continue; + } + if (object instanceof CharSequence || object instanceof Number) { + this.items.add(new StringItem(object.toString())); + continue; + } + StringBuilder stringBuilder = new StringBuilder("please implements "); + stringBuilder.append(WheelItem.class.getName()); + throw new IllegalArgumentException(stringBuilder.toString()); + } + remeasure(); + invalidate(); + } + + public final void setItems(List paramList, int paramInt) { + setItems(paramList); + setSelectedIndex(paramInt); + } + + public final void setItems(List paramList, String paramString) { + int j = paramList.indexOf(paramString); + int i = j; + if (j == -1) + i = 0; + setItems(paramList, i); + } + + public final void setItems(String[] paramArrayOfString) { + setItems(Arrays.asList((Object[])paramArrayOfString)); + } + + public final void setItems(String[] paramArrayOfString, int paramInt) { + setItems(Arrays.asList((Object[])paramArrayOfString), paramInt); + } + + public final void setItems(String[] paramArrayOfString, String paramString) { + setItems(Arrays.asList(paramArrayOfString), paramString); + } + + public final void setLabel(String paramString) { + setLabel(paramString, true); + } + + public final void setLabel(String paramString, boolean paramBoolean) { + this.label = paramString; + this.onlyShowCenterLabel = paramBoolean; + } + + @Deprecated + public void setLineConfig(DividerConfig paramDividerConfig) { + setDividerConfig(paramDividerConfig); + } + + public final void setLineSpaceMultiplier(float paramFloat) { + this.lineSpaceMultiplier = paramFloat; + judgeLineSpace(); + } + + public final void setOffset(int paramInt) { + if (paramInt > 0 && paramInt <= 5) { + int i; + if (paramInt % 2 == 0) { + i = paramInt; + } else { + i = paramInt - 1; + } + setVisibleItemCount(paramInt * 2 + 1 + i); + return; + } + throw new IllegalArgumentException("must between 1 and 5"); + } + + public final void setOnItemSelectListener(OnItemSelectListener paramOnItemSelectListener) { + this.onItemSelectListener = paramOnItemSelectListener; + } + + @Deprecated + public final void setOnWheelListener(OnWheelListener paramOnWheelListener) { + this.onWheelListener = paramOnWheelListener; + } + + public final void setOutTextSize(float paramFloat) { + if (paramFloat > 0.0F) { + this.outTextSize = (int)((getContext().getResources().getDisplayMetrics()).density * paramFloat); + this.paintOuterText.setTextSize(this.outTextSize); + } + } + + @Deprecated + public void setPadding(int paramInt) { + setTextPadding(paramInt); + } + + public final void setSelectedIndex(int paramInt) { + List list = this.items; + if (list != null) { + if (list.isEmpty()) + return; + int i = this.items.size(); + if (paramInt == 0 || (paramInt > 0 && paramInt < i && paramInt != this.selectedIndex)) { + this.initPosition = paramInt; + this.totalScrollY = 0.0F; + this.offset = 0; + invalidate(); + } + } + } + + public void setTextColor(int paramInt) { + this.textColorOuter = paramInt; + this.textColorCenter = paramInt; + this.paintOuterText.setColor(paramInt); + this.paintCenterText.setColor(paramInt); + } + + public void setTextColor(int paramInt1, int paramInt2) { + this.textColorOuter = paramInt1; + this.textColorCenter = paramInt2; + this.paintOuterText.setColor(paramInt1); + this.paintCenterText.setColor(paramInt2); + } + + public void setTextPadding(int paramInt) { + this.textPadding = (int)UIUtils.dip2Px(getContext(), paramInt); + } + + public final void setTextSize(float paramFloat) { + if (paramFloat > 0.0F) { + this.textSize = (int)((getContext().getResources().getDisplayMetrics()).density * paramFloat); + this.paintCenterText.setTextSize(this.textSize); + } + } + + public void setTextSizeAutoFit(boolean paramBoolean) { + this.textSizeAutoFit = paramBoolean; + } + + public void setTextSkewXOffset(int paramInt) { + this.textSkewXOffset = paramInt; + if (paramInt != 0) + this.paintCenterText.setTextScaleX(1.0F); + } + + public final void setTypeface(Typeface paramTypeface) { + this.typeface = paramTypeface; + this.paintOuterText.setTypeface(this.typeface); + this.paintCenterText.setTypeface(this.typeface); + } + + public void setUseWeight(boolean paramBoolean) { + this.useWeight = paramBoolean; + } + + public final void setVisibleItemCount(int paramInt) { + if (paramInt % 2 != 0) { + if (paramInt != this.visibleItemCount) + this.visibleItemCount = paramInt; + return; + } + throw new IllegalArgumentException("must be odd"); + } + + public void smoothScroll(int paramInt) { + cancelFuture(); + if (paramInt == 2 || paramInt == 3) { + float f1 = this.totalScrollY; + float f2 = this.itemHeight; + this.offset = (int)((f1 % f2 + f2) % f2); + paramInt = this.offset; + if (paramInt > f2 / 2.0F) { + this.offset = (int)(f2 - paramInt); + } else { + this.offset = -paramInt; + } + } + SmoothScrollTimerTask smoothScrollTimerTask = new SmoothScrollTimerTask(this, this.offset); + this.mFuture = _lancet.com_ss_android_ugc_aweme_lancet_ThreadPoolLancet_newSingleThreadScheduledExecutor().scheduleWithFixedDelay(smoothScrollTimerTask, 0L, 10L, TimeUnit.MILLISECONDS); + } + + public void stopScroll() { + cancelFuture(); + OnItemSelectListener onItemSelectListener = this.onItemSelectListener; + if (onItemSelectListener != null) + onItemSelectListener.onSelected(this.selectedIndex); + } + + public static class DividerConfig { + protected int alpha = 220; + + protected int color = -1513240; + + protected float ratio; + + protected int shadowAlpha = 100; + + protected int shadowColor = -6710887; + + protected boolean shadowVisible; + + protected float thick = 2.0F; + + protected boolean visible = true; + + public DividerConfig() {} + + public DividerConfig(float param1Float) { + this.ratio = param1Float; + } + + public DividerConfig setAlpha(int param1Int) { + this.alpha = param1Int; + return this; + } + + public DividerConfig setColor(int param1Int) { + this.color = param1Int; + return this; + } + + public DividerConfig setRatio(float param1Float) { + this.ratio = param1Float; + return this; + } + + public DividerConfig setShadowAlpha(int param1Int) { + this.shadowAlpha = param1Int; + return this; + } + + public DividerConfig setShadowColor(int param1Int) { + this.shadowVisible = true; + this.shadowColor = param1Int; + return this; + } + + public DividerConfig setShadowVisible(boolean param1Boolean) { + this.shadowVisible = param1Boolean; + if (param1Boolean && this.color == -1513240) { + this.color = this.shadowColor; + this.alpha = 255; + } + return this; + } + + public DividerConfig setThick(float param1Float) { + this.thick = param1Float; + return this; + } + + public DividerConfig setVisible(boolean param1Boolean) { + this.visible = param1Boolean; + return this; + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("visible="); + stringBuilder.append(this.visible); + stringBuilder.append(",color="); + stringBuilder.append(this.color); + stringBuilder.append(",alpha="); + stringBuilder.append(this.alpha); + stringBuilder.append(",thick="); + stringBuilder.append(this.thick); + return stringBuilder.toString(); + } + } + + static class InertiaTimerTask extends TimerTask { + float a = 2.14748365E9F; + + final float velocityY; + + final WheelView view; + + InertiaTimerTask(WheelView param1WheelView, float param1Float) { + this.view = param1WheelView; + this.velocityY = param1Float; + } + + public final void run() { + if (this.a == 2.14748365E9F) + if (Math.abs(this.velocityY) > 2000.0F) { + if (this.velocityY > 0.0F) { + this.a = 2000.0F; + } else { + this.a = -2000.0F; + } + } else { + this.a = this.velocityY; + } + if (Math.abs(this.a) >= 0.0F && Math.abs(this.a) <= 20.0F) { + this.view.cancelFuture(); + this.view.handler.sendEmptyMessage(2000); + return; + } + int i = (int)(this.a * 10.0F / 1000.0F); + WheelView wheelView = this.view; + float f1 = wheelView.totalScrollY; + float f2 = i; + wheelView.totalScrollY = f1 - f2; + if (!this.view.isLoop) { + float f3; + f1 = this.view.itemHeight; + float f4 = -this.view.initPosition * f1; + float f5 = (this.view.getItemCount() - 1 - this.view.initPosition) * f1; + double d1 = this.view.totalScrollY; + double d2 = f1; + Double.isNaN(d2); + d2 *= 0.25D; + Double.isNaN(d1); + if (d1 - d2 < f4) { + f1 = this.view.totalScrollY + f2; + f3 = f5; + } else { + d1 = this.view.totalScrollY; + Double.isNaN(d1); + f1 = f4; + f3 = f5; + if (d1 + d2 > f5) { + f3 = this.view.totalScrollY + f2; + f1 = f4; + } + } + if (this.view.totalScrollY <= f1) { + this.a = 40.0F; + this.view.totalScrollY = (int)f1; + } else if (this.view.totalScrollY >= f3) { + this.view.totalScrollY = (int)f3; + this.a = -40.0F; + } + } + f1 = this.a; + if (f1 < 0.0F) { + this.a = f1 + 20.0F; + } else { + this.a = f1 - 20.0F; + } + this.view.handler.sendEmptyMessage(1000); + } + } + + @Deprecated + public static class LineConfig extends DividerConfig {} + + static class MessageHandler extends Handler { + final WheelView view; + + MessageHandler(WheelView param1WheelView) { + this.view = param1WheelView; + } + + public final void handleMessage(Message param1Message) { + int i = param1Message.what; + if (i != 1000) { + if (i != 2000) { + if (i != 3000) + return; + this.view.itemSelectedCallback(); + return; + } + this.view.smoothScroll(2); + return; + } + this.view.invalidate(); + } + } + + public static interface OnItemSelectListener { + void onSelected(int param1Int); + } + + @Deprecated + public static interface OnWheelListener { + void onSelected(boolean param1Boolean, int param1Int, String param1String); + } + + @Deprecated + public static interface OnWheelViewListener extends OnWheelListener {} + + static class SmoothScrollTimerTask extends TimerTask { + int offset; + + int realOffset; + + int realTotalOffset = Integer.MAX_VALUE; + + final WheelView view; + + SmoothScrollTimerTask(WheelView param1WheelView, int param1Int) { + this.view = param1WheelView; + this.offset = param1Int; + } + + public void run() { + if (this.realTotalOffset == Integer.MAX_VALUE) + this.realTotalOffset = this.offset; + int i = this.realTotalOffset; + this.realOffset = (int)(i * 0.1F); + if (this.realOffset == 0) + if (i < 0) { + this.realOffset = -1; + } else { + this.realOffset = 1; + } + if (Math.abs(this.realTotalOffset) <= 1) { + this.view.cancelFuture(); + this.view.handler.sendEmptyMessage(3000); + return; + } + WheelView wheelView = this.view; + wheelView.totalScrollY += this.realOffset; + if (!this.view.isLoop) { + float f1 = this.view.itemHeight; + float f2 = -this.view.initPosition; + float f3 = (this.view.getItemCount() - 1 - this.view.initPosition); + if (this.view.totalScrollY <= f2 * f1 || this.view.totalScrollY >= f3 * f1) { + wheelView = this.view; + wheelView.totalScrollY -= this.realOffset; + this.view.cancelFuture(); + this.view.handler.sendEmptyMessage(3000); + return; + } + } + this.view.handler.sendEmptyMessage(1000); + this.realTotalOffset -= this.realOffset; + } + } + + static class StringItem implements WheelItem { + private String name; + + private StringItem(String param1String) { + this.name = param1String; + } + + public String getName() { + return this.name; + } + } + + class WheelView {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\wheel\WheelView.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/entity/MultiPickerManager.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/entity/MultiPickerManager.java new file mode 100644 index 0000000..ce1098b --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/entity/MultiPickerManager.java @@ -0,0 +1,32 @@ +package com.tt.miniapp.component.nativeview.picker.wheel.entity; + +import com.tt.miniapp.component.nativeview.picker.wheel.MultiPicker; +import java.lang.ref.WeakReference; + +public class MultiPickerManager { + private WeakReference multiPicker; + + private MultiPickerManager() {} + + public static MultiPickerManager getInst() { + return Holder.instance; + } + + public MultiPicker getMultiPicker() { + return this.multiPicker.get(); + } + + public void setMultiPicker(MultiPicker paramMultiPicker) { + this.multiPicker = new WeakReference(paramMultiPicker); + } + + static class Holder { + static MultiPickerManager instance = new MultiPickerManager(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\wheel\entity\MultiPickerManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/entity/WheelItem.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/entity/WheelItem.java new file mode 100644 index 0000000..2f34a28 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/picker/wheel/entity/WheelItem.java @@ -0,0 +1,13 @@ +package com.tt.miniapp.component.nativeview.picker.wheel.entity; + +import java.io.Serializable; + +public interface WheelItem extends Serializable { + String getName(); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\picker\wheel\entity\WheelItem.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/VideoView.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/VideoView.java new file mode 100644 index 0000000..62b2b21 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/VideoView.java @@ -0,0 +1,452 @@ +package com.tt.miniapp.component.nativeview.video; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.view.ViewGroup; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.component.nativeview.NativeComponent; +import com.tt.miniapp.component.nativeview.video.controller.BaseVideoViewController; +import com.tt.miniapp.storage.filestorge.FileManager; +import com.tt.miniapp.video.base.ITTVideoController; +import com.tt.miniapp.video.core.PluginVideoController; +import com.tt.miniapp.video.patchad.PatchAdVideoController; +import com.tt.miniapp.video.patchad.PatchAdVideoView; +import com.tt.miniapp.view.ScreenVisibilityDetector; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.miniapphost.util.NativeDimenUtil; +import com.tt.miniapphost.util.UIUtils; +import com.tt.option.ad.j; +import com.tt.option.e.k; +import org.json.JSONObject; + +public class VideoView extends PatchAdVideoView implements NativeComponent, ScreenVisibilityDetector.OnScreenVisibilityChangedListener { + private int mDeviceHeight; + + private int mDeviceWidth; + + private VideoModel mInitVideoMode; + + private boolean mIsVideoPlayingBeforePause; + + private AbsoluteLayout mParent; + + private j mPatchAdManager; + + private WebViewManager.IRender mRender; + + public Runnable mSchedulePauseRunnable; + + public Runnable mScheduleResumeRunnable; + + public VideoView(AbsoluteLayout paramAbsoluteLayout, WebViewManager.IRender paramIRender, VideoModel paramVideoModel) { + super(paramAbsoluteLayout.getContext()); + this.mInitVideoMode = paramVideoModel; + this.mParent = paramAbsoluteLayout; + this.mRender = paramIRender; + this.mDeviceWidth = UIUtils.getDeviceWidth(getContext()); + this.mDeviceHeight = UIUtils.getDeviceHeight(getContext()); + int i = this.mInitVideoMode.width; + int k = this.mDeviceWidth; + if (i > k) + this.mInitVideoMode.width = k; + i = this.mInitVideoMode.height; + k = this.mDeviceHeight; + if (i > k) + this.mInitVideoMode.height = k; + this.mPatchAdManager = HostDependManager.getInst().createVideoPatchAdManager(new j.a() { + public Activity getActivity() { + return AppbrandApplicationImpl.getInst().getMiniAppContext().getCurrentActivity(); + } + }); + } + + private void playVideo(VideoModel paramVideoModel) { + String str2 = paramVideoModel.filePath; + String str1 = str2; + if (!TextUtils.isEmpty(str2)) { + str1 = str2; + if (str2.startsWith("ttfile")) + str1 = FileManager.inst().getRealFilePath(str2); + } + play((new ITTVideoController.PlayerEntity()).setVideoUrl(str1).setVideoModelJsonStr(paramVideoModel.videoModelJsonStr).setAutoPlay(paramVideoModel.autoplay).setPoster(paramVideoModel.poster).setDecryptToken(paramVideoModel.encryptToken).setEncodedKey(paramVideoModel.encodedKey).setVideoId(paramVideoModel.videoId).setVidDataSourceUrl(paramVideoModel.vidDataSourceUrl).setPlayApiVersion(paramVideoModel.playApiVersion).setAuthToken(paramVideoModel.authToken).setResolution(paramVideoModel.resolution).setLoop(paramVideoModel.mLoop)); + if (AppbrandApplicationImpl.getInst().getMiniAppLaunchConfig().isLaunchWithFloatStyle()) + HostDependManager.getInst().muteLiveWindowView((Activity)AppbrandContext.getInst().getCurrentActivity(), AppbrandApplicationImpl.getInst().getSchema()); + } + + private void refreshParentView() { + AbsoluteLayout absoluteLayout = this.mParent; + if (absoluteLayout == null) + return; + ViewGroup viewGroup = (ViewGroup)absoluteLayout.getParent(); + if (viewGroup == null) + return; + viewGroup.removeView((View)this.mParent); + viewGroup.addView((View)this.mParent); + requestLayout(); + } + + private void releaseSelf() { + AppBrandLogger.d("tma_VideoView", new Object[] { "release" }); + exitFullScreen(); + getVideoController().destroyPatchAd(); + getVideoController().releaseMedia(); + Context context = getContext(); + if (context instanceof Activity) { + Activity activity = (Activity)context; + if (activity.getRequestedOrientation() == 0) + UIUtils.setActivityOrientation(activity, 1); + } + } + + public void addView(String paramString, k paramk) { + AppBrandLogger.d("tma_VideoView", new Object[] { "addView position ", " width ", Integer.valueOf(this.mInitVideoMode.width), " height ", Integer.valueOf(this.mInitVideoMode.height), " x ", Integer.valueOf(this.mInitVideoMode.left), " y ", Integer.valueOf(this.mInitVideoMode.top) }); + initView(); + this.mParent.addView((View)this); + refreshParentView(); + updateView(paramString, paramk); + } + + public PluginVideoController createVideoController() { + return (PluginVideoController)BaseVideoViewController.getImpl(this, this.mRender); + } + + public j getPatchAdManager() { + return this.mPatchAdManager; + } + + public String getPostRollAdUnitId() { + return this.mInitVideoMode.mPostRollAdUnitId; + } + + public String getPreRollAdUnitId() { + return this.mInitVideoMode.mPreRollAdUnitId; + } + + public VideoModel getVideoModel() { + return this.mInitVideoMode; + } + + public AbsoluteLayout getViewParent() { + return this.mParent; + } + + public boolean onBackPressed() { + PatchAdVideoController patchAdVideoController = getVideoController(); + if (patchAdVideoController != null && patchAdVideoController.isFullScreen()) { + patchAdVideoController.interceptFullScreen(false); + return true; + } + return false; + } + + public void onDestroy() { + AppBrandLogger.d("tma_VideoView", new Object[] { "release media" }); + getVideoController().releaseMedia(); + } + + public void onScreenVisibilityChanged(View paramView, boolean paramBoolean) { + AppBrandLogger.d("tma_VideoView", new Object[] { "onScreenVisibilityChanged isShow", Boolean.valueOf(paramBoolean) }); + PatchAdVideoController patchAdVideoController = getVideoController(); + if (patchAdVideoController != null) { + if (patchAdVideoController.isFullScreen()) + return; + if (paramBoolean) { + patchAdVideoController.onEnterScreen(); + return; + } + patchAdVideoController.onLeaveScreen(); + } + } + + public void onViewPause() { + AppBrandLogger.d("tma_VideoView", new Object[] { "onEnterBackground" }); + AppBrandLogger.d("tma_VideoView", new Object[] { "onPause" }); + Runnable runnable = this.mScheduleResumeRunnable; + if (runnable != null) { + removeCallbacks(runnable); + this.mScheduleResumeRunnable = null; + return; + } + final PatchAdVideoController videoController = getVideoController(); + if (patchAdVideoController != null) { + this.mIsVideoPlayingBeforePause = patchAdVideoController.isVideoPlaying(); + if (this.mIsVideoPlayingBeforePause || patchAdVideoController.isShouldPlay()) { + this.mSchedulePauseRunnable = new Runnable() { + public void run() { + videoController.pauseVideo(); + VideoView.this.mSchedulePauseRunnable = null; + } + }; + postDelayed(this.mSchedulePauseRunnable, 300L); + } + patchAdVideoController.pausePatchAd(); + } + } + + public void onViewResume() { + AppBrandLogger.d("tma_VideoView", new Object[] { "onRecoverForeground" }); + AppBrandLogger.d("tma_VideoView", new Object[] { "onResume" }); + final PatchAdVideoController videoController = getVideoController(); + if (patchAdVideoController != null) { + if (this.mIsVideoPlayingBeforePause) { + this.mScheduleResumeRunnable = new Runnable() { + public void run() { + videoController.startVideo(); + VideoView videoView = VideoView.this; + videoView.mScheduleResumeRunnable = null; + if (videoView.mSchedulePauseRunnable != null) { + videoView = VideoView.this; + videoView.removeCallbacks(videoView.mSchedulePauseRunnable); + VideoView.this.mSchedulePauseRunnable = null; + } + } + }; + postDelayed(this.mScheduleResumeRunnable, 100L); + } + patchAdVideoController.resumePatchAd(); + } + } + + public void removeView(int paramInt, k paramk) { + releaseSelf(); + } + + public void updateView(String paramString, k paramk) { + AppBrandLogger.d("tma_VideoView", new Object[] { "updateView ", paramString }); + VideoModel videoModel = VideoModel.parseVideoMode(paramString); + videoModel.videoPlayerId = this.mInitVideoMode.videoPlayerId; + int i = videoModel.width; + int m = this.mDeviceWidth; + if (i > m) + videoModel.width = m; + i = videoModel.height; + m = this.mDeviceHeight; + if (i > m) + videoModel.height = m; + ViewGroup.LayoutParams layoutParams = getLayoutParams(); + if (layoutParams instanceof AbsoluteLayout.LayoutParams && !((AbsoluteLayout.LayoutParams)layoutParams).isFullScreen) { + m = 1; + } else { + m = 0; + } + if (m != 0) { + AbsoluteLayout.LayoutParams layoutParams1 = (AbsoluteLayout.LayoutParams)layoutParams; + if (videoModel.hasPosition) { + int n = videoModel.left; + i = videoModel.top; + AppBrandLogger.i("tma_VideoView", new Object[] { "origin position:Left=", Integer.valueOf(n), ", Top=", Integer.valueOf(i), ", isFixed=", Boolean.valueOf(videoModel.isFixed), ", curScroll: scrollX=", Integer.valueOf(this.mParent.getCurScrollX()), ", scrollY=", Integer.valueOf(this.mParent.getCurScrollY()) }); + n -= this.mParent.getCurScrollX(); + i -= this.mParent.getCurScrollY(); + AppBrandLogger.i("tma_VideoView", new Object[] { "curScroll:scrollX=", Integer.valueOf(this.mParent.getCurScrollX()), ", scrollY=", Integer.valueOf(this.mParent.getCurScrollY()), "; Video-position: Left=", Integer.valueOf(n), ", Top=", Integer.valueOf(i) }); + layoutParams1.height = videoModel.height; + layoutParams1.width = videoModel.width; + layoutParams1.x = n; + layoutParams1.y = i; + i = 1; + } else { + i = 0; + } + if (videoModel.hasFixed) + layoutParams1.isFixed = videoModel.isFixed; + if (videoModel.hasZIndex) { + layoutParams1.zIndex = videoModel.zIndex; + i = 1; + } + if (i != 0) + requestLayout(); + } + if (videoModel.hide) { + if (getVisibility() == 0) { + setVisibility(8); + pauseVideo(); + } + } else { + updateShowState((new ITTVideoController.ShowStateEntity()).setControls(videoModel.mControls).setShowFullScreenBtn(videoModel.mShowFullScreenBtn).setShowPlayBtn(videoModel.mShowPlayBtn).setPlayBtnPosition(videoModel.mPlayBtnPosition).setObjectFit(videoModel.mObjectFit)); + setVisibility(0); + playVideo(videoModel); + } + if (m != 0) { + Bundle bundle = new Bundle(); + bundle.putInt("video_view_width", videoModel.width); + bundle.putInt("video_view_height", videoModel.height); + getVideoController().notifyPatchAdEvent(309, bundle); + } + } + + public static class VideoModel { + public String authToken; + + public boolean autoplay; + + public JSONObject data; + + public String encodedKey; + + public String encryptToken; + + public String filePath; + + public boolean hasFixed; + + public boolean hasPosition; + + public boolean hasZIndex; + + public int height; + + public boolean hide; + + public boolean isFixed; + + public int left; + + public boolean live; + + public boolean mControls = true; + + public boolean mLoop; + + public String mObjectFit = "contain"; + + public String mPlayBtnPosition = "center"; + + public String mPostRollAdUnitId; + + public String mPreRollAdUnitId; + + public boolean mShowFullScreenBtn = true; + + public boolean mShowPlayBtn = true; + + public boolean muted; + + public boolean needEvent; + + public int playApiVersion; + + public String poster; + + public String resolution; + + public int top; + + public String vidDataSourceUrl; + + public String videoId; + + public String videoModelJsonStr; + + public int videoPlayerId; + + public int width; + + public int zIndex; + + public static VideoModel parseVideoMode(String param1String) { + VideoModel videoModel = new VideoModel(); + try { + JSONObject jSONObject1 = new JSONObject(param1String); + videoModel.filePath = jSONObject1.optString("filePath"); + if (!TextUtils.isEmpty(videoModel.filePath) && videoModel.filePath.startsWith("ttfile://")) + videoModel.filePath = FileManager.inst().getRealSchemaPath(videoModel.filePath); + videoModel.hide = jSONObject1.optBoolean("hide"); + videoModel.needEvent = jSONObject1.optBoolean("needEvent"); + videoModel.autoplay = jSONObject1.optBoolean("autoplay"); + videoModel.poster = jSONObject1.optString("poster"); + videoModel.mControls = jSONObject1.optBoolean("controls", videoModel.mControls); + videoModel.live = jSONObject1.optBoolean("live"); + videoModel.muted = jSONObject1.optBoolean("muted"); + videoModel.mLoop = jSONObject1.optBoolean("loop", videoModel.mLoop); + videoModel.encryptToken = jSONObject1.optString("decrypt_token"); + videoModel.videoModelJsonStr = jSONObject1.optString("video_model"); + videoModel.encodedKey = jSONObject1.optString("encrypt_token"); + videoModel.videoId = jSONObject1.optString("video_id"); + videoModel.vidDataSourceUrl = jSONObject1.optString("fetcher"); + try { + videoModel.playApiVersion = jSONObject1.optInt("api_version"); + } catch (Exception exception) { + videoModel.playApiVersion = 2; + } + videoModel.authToken = jSONObject1.optString("auth_token"); + videoModel.resolution = jSONObject1.optString("resolution"); + videoModel.mShowFullScreenBtn = jSONObject1.optBoolean("showFullscreenBtn", videoModel.mShowFullScreenBtn); + videoModel.mShowPlayBtn = jSONObject1.optBoolean("showPlayBtn", videoModel.mShowPlayBtn); + videoModel.mObjectFit = jSONObject1.optString("objectFit", videoModel.mObjectFit); + videoModel.mPlayBtnPosition = jSONObject1.optString("playBtnPosition", videoModel.mPlayBtnPosition); + videoModel.data = new JSONObject(jSONObject1.optString("data")); + JSONObject jSONObject2 = jSONObject1.optJSONObject("position"); + if (jSONObject2 != null) { + videoModel.hasPosition = true; + videoModel.top = NativeDimenUtil.convertRxToPx(jSONObject2.optInt("top")); + videoModel.left = NativeDimenUtil.convertRxToPx(jSONObject2.optInt("left")); + videoModel.width = jSONObject2.optInt("width"); + AppBrandLogger.d("tma_VideoView", new Object[] { "videoMode.width = ", Integer.valueOf(videoModel.width) }); + if (videoModel.width > 0) + videoModel.width = NativeDimenUtil.convertRxToPx(videoModel.width); + videoModel.height = jSONObject2.optInt("height"); + AppBrandLogger.d("tma_VideoView", new Object[] { "videoMode.height = ", Integer.valueOf(videoModel.height) }); + if (videoModel.height > 0) + videoModel.height = NativeDimenUtil.convertRxToPx(videoModel.height); + } else { + videoModel.hasPosition = false; + } + if (jSONObject1.has("zIndex")) { + videoModel.hasZIndex = true; + videoModel.zIndex = jSONObject1.optInt("zIndex"); + } + if (jSONObject1.has("fixed")) { + videoModel.hasFixed = true; + videoModel.isFixed = jSONObject1.optBoolean("fixed"); + } + videoModel.mPreRollAdUnitId = jSONObject1.optString("preRollAdUnitId"); + videoModel.mPostRollAdUnitId = jSONObject1.optString("postRollAdUnitId"); + return videoModel; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "tma_VideoView", exception.getStackTrace()); + return videoModel; + } + } + + public String toString() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("filePath", this.filePath); + jSONObject.put("videoPlayerId", this.videoPlayerId); + jSONObject.put("hide", this.hide); + jSONObject.put("needEvent", this.needEvent); + jSONObject.put("autoplay", this.autoplay); + jSONObject.put("poster", this.poster); + jSONObject.put("controls", this.mControls); + jSONObject.put("live", this.live); + jSONObject.put("muted", this.muted); + jSONObject.put("loop", this.mLoop); + jSONObject.put("showFullscreenBtn", this.mShowFullScreenBtn); + jSONObject.put("showPlayBtn", this.mShowPlayBtn); + jSONObject.put("objectFit", this.mObjectFit); + jSONObject.put("playBtnPosition", this.mPlayBtnPosition); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("top", this.top); + jSONObject1.put("left", this.left); + jSONObject1.put("width", this.width); + jSONObject1.put("height", this.height); + jSONObject.put("position", jSONObject1); + } catch (Exception exception) { + AppBrandLogger.e("tma_VideoView", new Object[] { "toString", exception }); + } + return jSONObject.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\video\VideoView.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/controller/BaseVideoViewController.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/controller/BaseVideoViewController.java new file mode 100644 index 0000000..5f39591 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/controller/BaseVideoViewController.java @@ -0,0 +1,265 @@ +package com.tt.miniapp.component.nativeview.video.controller; + +import com.ss.ttvideoengine.TTVideoEngine; +import com.ss.ttvideoengine.utils.Error; +import com.tt.frontendapiinterface.j; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.component.nativeview.video.VideoView; +import com.tt.miniapp.event.Event; +import com.tt.miniapp.video.patchad.PatchAdVideoCallback; +import com.tt.miniapp.video.patchad.PatchAdVideoController; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.util.JsonBuilder; +import com.tt.option.ad.c; +import org.json.JSONObject; + +public class BaseVideoViewController extends PatchAdVideoController { + VideoLayoutEntity mBeforeFullScreenLayoutInfo; + + WebViewManager.IRender mRender; + + VideoView.VideoModel mVideoModel; + + VideoView mVideoView; + + int mZIndex; + + BaseVideoViewController(VideoView paramVideoView, WebViewManager.IRender paramIRender) { + super((PatchAdVideoCallback)paramVideoView, (paramVideoView.getVideoModel()).videoPlayerId); + this.mVideoView = paramVideoView; + this.mVideoModel = paramVideoView.getVideoModel(); + this.mRender = paramIRender; + } + + private void callbackVideoAdEvent(String paramString, boolean paramBoolean) { + String str; + if (paramBoolean) { + str = c.APP_VIDEO_PATCH_AD_PRE.getStrType(); + } else { + str = c.APP_VIDEO_PATCH_AD_POST.getStrType(); + } + AppBrandLogger.i("BaseVideoViewController", new Object[] { "send patchAd Event", paramString, Boolean.valueOf(paramBoolean) }); + callbackVideoEvent(paramString, (new JsonBuilder()).put("adType", str).build()); + } + + private void callbackVideoEvent(String paramString) { + callbackVideoEvent(paramString, (JSONObject)null); + } + + private void callbackVideoEvent(String paramString, JSONObject paramJSONObject) { + j j = AppbrandApplication.getInst().getJsBridge(); + if (j == null) + return; + j.sendMsgToJsCore(paramString, (new JsonBuilder(paramJSONObject)).put("videoPlayerId", Integer.valueOf(this.mVideoModel.videoPlayerId)).put("data", this.mVideoModel.data.toString()).build().toString(), this.mRender.getWebViewId()); + } + + public static BaseVideoViewController getImpl(VideoView paramVideoView, WebViewManager.IRender paramIRender) { + return (BaseVideoViewController)(paramVideoView.getViewParent().isRenderInBrowserEnabled() ? new RenderInBrowserController(paramVideoView, paramIRender) : new NormalController(paramVideoView, paramIRender, null)); + } + + private void publishVideoEvent(String paramString, JsonBuilder paramJsonBuilder) { + String str = paramJsonBuilder.put("videoPlayerId", Integer.valueOf(this.mVideoModel.videoPlayerId)).put("data", this.mVideoModel.data.toString()).build().toString(); + AppBrandLogger.i("BaseVideoViewController", new Object[] { "publish patchAd Event", paramString, str }); + AppbrandApplicationImpl.getInst().getWebViewManager().publish(this.mRender.getWebViewId(), paramString, str); + } + + public void destroyPatchAd() { + super.destroyPatchAd(); + if (this.calledVideoAdStarted != null) + onVideoAdClose(Boolean.TRUE.equals(this.calledVideoAdStarted)); + } + + public void onBufferStart() { + super.onBufferStart(); + AppBrandLogger.d("BaseVideoViewController", new Object[] { "onBufferStart" }); + callbackVideoEvent("onVideoWaiting"); + } + + public void onCompletion(TTVideoEngine paramTTVideoEngine) { + super.onCompletion(paramTTVideoEngine); + StringBuilder stringBuilder = new StringBuilder("ended:给js发消息--onVideoEnded--: videoPlayerId = "); + stringBuilder.append(this.mVideoModel.videoPlayerId); + AppBrandLogger.d("BaseVideoViewController", new Object[] { stringBuilder.toString() }); + callbackVideoEvent("onVideoEnded"); + } + + public void onError(Error paramError) { + String str; + super.onError(paramError); + try { + str = (new JSONObject(paramError.toMap())).toString(); + } catch (Exception exception) { + AppBrandLogger.eWithThrowable("BaseVideoViewController", "video error 2 json failed", exception); + str = ""; + } + Event.builder("mp_video_error").kv("error_msg", str).flush(); + AppBrandLogger.e("BaseVideoViewController", new Object[] { "ended:给js发消息--onVideoError--: videoPlayerId =", Integer.valueOf(this.mVideoModel.videoPlayerId), "errMsg =", str }); + callbackVideoEvent("onVideoError", (new JsonBuilder()).put("errMsg", str).build()); + } + + public void onFullScreen(boolean paramBoolean, int paramInt) { + String str; + super.onFullScreen(paramBoolean, paramInt); + JsonBuilder jsonBuilder = (new JsonBuilder()).put("fullScreen", Boolean.valueOf(paramBoolean)); + if (paramInt == 0 || paramInt == 8) { + str = "horizontal"; + } else { + str = "vertical"; + } + callbackVideoEvent("onVideoFullScreenChange", jsonBuilder.put("direction", str).build()); + } + + public void onPlaybackStateChanged(TTVideoEngine paramTTVideoEngine, int paramInt) { + super.onPlaybackStateChanged(paramTTVideoEngine, paramInt); + if (paramInt != 1) { + if (paramInt != 2) + return; + StringBuilder stringBuilder1 = new StringBuilder("pause:给js发消息--onVideoPause--: videoPlayerId = "); + stringBuilder1.append(this.mVideoModel.videoPlayerId); + AppBrandLogger.d("BaseVideoViewController", new Object[] { stringBuilder1.toString() }); + callbackVideoEvent("onVideoPause"); + return; + } + StringBuilder stringBuilder = new StringBuilder("play:给js发消息--onVideoPlay--: videoPlayerId = "); + stringBuilder.append(this.mVideoModel.videoPlayerId); + AppBrandLogger.d("BaseVideoViewController", new Object[] { stringBuilder.toString() }); + callbackVideoEvent("onVideoPlay"); + } + + public void onPrepare(TTVideoEngine paramTTVideoEngine) { + super.onPrepare(paramTTVideoEngine); + } + + public void onProgressAndTimeUpdate(int paramInt1, int paramInt2) { + super.onProgressAndTimeUpdate(paramInt1, paramInt2); + callbackVideoEvent("onVideoTimeUpdate", (new JsonBuilder()).put("currentTime", Integer.valueOf(paramInt1)).put("duration", Integer.valueOf(paramInt2)).build()); + } + + public void onStuffOverVideoVisibilityChange(boolean paramBoolean1, boolean paramBoolean2) { + super.onStuffOverVideoVisibilityChange(paramBoolean1, paramBoolean2); + if (!paramBoolean2 || this.called2Hidden) { + String str; + this.called2Hidden = paramBoolean2 ^ true; + if (paramBoolean1) { + str = c.APP_VIDEO_PATCH_AD_PRE.getStrType(); + } else { + str = c.APP_VIDEO_PATCH_AD_POST.getStrType(); + } + publishVideoEvent("onStuffOverVideoVisibilityShouldChange", (new JsonBuilder()).put("adType", str).put("hidden", Boolean.valueOf(this.called2Hidden))); + } + } + + public void onVideoAdClose(boolean paramBoolean) { + super.onVideoAdClose(paramBoolean); + callbackVideoAdEvent("onVideoAdClose", paramBoolean); + this.calledVideoAdStarted = null; + } + + public void onVideoAdEnded(boolean paramBoolean) { + super.onVideoAdEnded(paramBoolean); + callbackVideoAdEvent("onVideoAdEnded", paramBoolean); + this.calledVideoAdStarted = null; + } + + public void onVideoAdError(boolean paramBoolean, int paramInt, String paramString) { + String str; + super.onVideoAdError(paramBoolean, paramInt, paramString); + JsonBuilder jsonBuilder = new JsonBuilder(); + if (paramBoolean) { + str = c.APP_VIDEO_PATCH_AD_PRE.getStrType(); + } else { + str = c.APP_VIDEO_PATCH_AD_POST.getStrType(); + } + callbackVideoEvent("onVideoAdError", jsonBuilder.put("adType", str).put("errCode", Integer.valueOf(paramInt)).put("errMsg", paramString).build()); + } + + public void onVideoAdFullscreenChange(boolean paramBoolean1, boolean paramBoolean2) { + String str1; + String str2; + super.onVideoAdFullscreenChange(paramBoolean1, paramBoolean2); + if (paramBoolean2) { + str1 = "onVideoRequestFullScreen"; + } else { + str1 = "onVideoExitFullScreen"; + } + if (paramBoolean1) { + str2 = c.APP_VIDEO_PATCH_AD_PRE.getStrType(); + } else { + str2 = c.APP_VIDEO_PATCH_AD_POST.getStrType(); + } + publishVideoEvent(str1, (new JsonBuilder()).put("adType", str2).put("fullscreen", Boolean.valueOf(paramBoolean2))); + } + + public void onVideoAdLoaded(boolean paramBoolean) { + super.onVideoAdLoaded(paramBoolean); + callbackVideoAdEvent("onVideoAdLoad", paramBoolean); + } + + public void onVideoAdStart(boolean paramBoolean) { + super.onVideoAdStart(paramBoolean); + if (this.calledVideoAdStarted != null) + return; + this.calledVideoAdStarted = Boolean.valueOf(paramBoolean); + callbackVideoAdEvent("onVideoAdStart", paramBoolean); + } + + public void setZIndex(int paramInt) { + this.mZIndex = paramInt; + } + + static class VideoLayoutEntity { + AbsoluteLayout.LayoutParams mBeforeFullScreenLayoutParams; + + AbsoluteLayout.ViewOffset mBeforeFullScreenOffset; + + int mBeforeFullScreenScrollX; + + int mBeforeFullScreenScrollY; + + public VideoLayoutEntity(VideoView param1VideoView) { + if (param1VideoView != null) + this.mBeforeFullScreenLayoutParams = (AbsoluteLayout.LayoutParams)param1VideoView.getLayoutParams(); + } + + public static VideoLayoutEntity saveBeforeFullScreenInfo(VideoView param1VideoView) { + if (param1VideoView == null) + return null; + VideoLayoutEntity videoLayoutEntity = new VideoLayoutEntity(param1VideoView); + if (param1VideoView.getViewParent() != null) { + AbsoluteLayout absoluteLayout = param1VideoView.getViewParent(); + videoLayoutEntity.mBeforeFullScreenOffset = absoluteLayout.getViewOffset(param1VideoView.getId()); + videoLayoutEntity.mBeforeFullScreenScrollX = absoluteLayout.getCurScrollX(); + videoLayoutEntity.mBeforeFullScreenScrollY = absoluteLayout.getCurScrollY(); + } + return videoLayoutEntity; + } + + public static void updateVideoLayoutInfo(VideoLayoutEntity param1VideoLayoutEntity, VideoView param1VideoView) { + if (param1VideoLayoutEntity != null) { + if (param1VideoView == null) + return; + if (param1VideoView.getViewParent() != null) { + if (param1VideoView.getViewParent().isRenderInBrowserEnabled()) + return; + int i = param1VideoView.getViewParent().getCurScrollX(); + int j = param1VideoLayoutEntity.mBeforeFullScreenScrollX; + int k = param1VideoView.getViewParent().getCurScrollY(); + int m = param1VideoLayoutEntity.mBeforeFullScreenScrollY; + AbsoluteLayout.LayoutParams layoutParams2 = param1VideoLayoutEntity.mBeforeFullScreenLayoutParams; + layoutParams2.x -= i - j; + AbsoluteLayout.LayoutParams layoutParams1 = param1VideoLayoutEntity.mBeforeFullScreenLayoutParams; + layoutParams1.y -= k - m; + } + } + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\video\controller\BaseVideoViewController.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/controller/NormalController.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/controller/NormalController.java new file mode 100644 index 0000000..eaa4664 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/controller/NormalController.java @@ -0,0 +1,54 @@ +package com.tt.miniapp.component.nativeview.video.controller; + +import android.view.View; +import android.view.ViewGroup; +import com.bytedance.sandboxapp.protocol.service.j.a; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.component.nativeview.video.VideoView; +import com.tt.miniapp.video.patchad.PatchAdVideoCallback; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapphost.util.UIUtils; + +class NormalController extends BaseVideoViewController { + public NormalController(VideoView paramVideoView, WebViewManager.IRender paramIRender, PatchAdVideoCallback paramPatchAdVideoCallback) { + super(paramVideoView, paramIRender); + } + + public void enterFullScreen() { + super.enterFullScreen(); + ((a)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(a.class)).enterFullScreen((View)getVideoView(), a.a.LANDSCAPE); + this.mBeforeFullScreenLayoutInfo = BaseVideoViewController.VideoLayoutEntity.saveBeforeFullScreenInfo(this.mVideoView); + UIUtils.attachToDecorView(this.mRender.getCurrentActivity(), (View)this.mVideoView); + } + + public void exitFullScreen() { + if (!isFullScreen()) + return; + super.exitFullScreen(); + ((a)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(a.class)).exitFullScreen((View)getVideoView()); + UIUtils.detachFromParent((View)this.mVideoView); + AbsoluteLayout absoluteLayout = this.mVideoView.getViewParent(); + if (absoluteLayout != null) { + if (this.mBeforeFullScreenLayoutInfo == null) + this.mBeforeFullScreenLayoutInfo = new BaseVideoViewController.VideoLayoutEntity(this.mVideoView); + BaseVideoViewController.VideoLayoutEntity.updateVideoLayoutInfo(this.mBeforeFullScreenLayoutInfo, this.mVideoView); + absoluteLayout.addView((View)this.mVideoView, (ViewGroup.LayoutParams)this.mBeforeFullScreenLayoutInfo.mBeforeFullScreenLayoutParams); + absoluteLayout.addNativeView((View)this.mVideoView, this.mBeforeFullScreenLayoutInfo.mBeforeFullScreenOffset); + } + } + + public void interceptFullScreen(boolean paramBoolean) { + if (paramBoolean) { + enterFullScreen(); + return; + } + exitFullScreen(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\video\controller\NormalController.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/controller/RenderInBrowserController.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/controller/RenderInBrowserController.java new file mode 100644 index 0000000..daf58a2 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/video/controller/RenderInBrowserController.java @@ -0,0 +1,77 @@ +package com.tt.miniapp.component.nativeview.video.controller; + +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import com.bytedance.sandboxapp.protocol.service.j.a; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.WebViewManager; +import com.tt.miniapp.component.nativeview.video.VideoView; +import com.tt.miniapp.view.webcore.AbsoluteLayout; +import com.tt.miniapphost.util.JsonBuilder; +import org.json.JSONObject; + +class RenderInBrowserController extends BaseVideoViewController { + public RenderInBrowserController(VideoView paramVideoView, WebViewManager.IRender paramIRender) { + super(paramVideoView, paramIRender); + } + + public void enterFullScreen() { + super.enterFullScreen(); + ((a)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(a.class)).enterFullScreen((View)getVideoView(), a.a.LANDSCAPE); + this.mBeforeFullScreenLayoutInfo = BaseVideoViewController.VideoLayoutEntity.saveBeforeFullScreenInfo(this.mVideoView); + AbsoluteLayout absoluteLayout = this.mVideoView.getViewParent(); + if (absoluteLayout == null) + return; + final ViewTreeObserver viewTreeObserver = absoluteLayout.getViewTreeObserver(); + if (viewTreeObserver == null) + return; + viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { + public void onGlobalLayout() { + if ((RenderInBrowserController.this.mVideoView.getResources().getConfiguration()).orientation == 2) { + AbsoluteLayout.LayoutParams layoutParams = new AbsoluteLayout.LayoutParams(new ViewGroup.LayoutParams(RenderInBrowserController.this.mRender.getRenderWidth(), RenderInBrowserController.this.mRender.getRenderHeight())); + layoutParams.x = 0; + layoutParams.y = 0; + layoutParams.zIndex = RenderInBrowserController.this.mZIndex; + layoutParams.isFullScreen = true; + RenderInBrowserController.this.mVideoView.setLayoutParams((ViewGroup.LayoutParams)layoutParams); + viewTreeObserver.removeOnGlobalLayoutListener(this); + } + } + }); + } + + public void exitFullScreen() { + if (!isFullScreen()) + return; + super.exitFullScreen(); + ((a)AppbrandApplicationImpl.getInst().getMiniAppContext().getService(a.class)).exitFullScreen((View)getVideoView()); + AbsoluteLayout absoluteLayout = this.mVideoView.getViewParent(); + if (absoluteLayout != null) { + if (this.mBeforeFullScreenLayoutInfo == null) + this.mBeforeFullScreenLayoutInfo = new BaseVideoViewController.VideoLayoutEntity(this.mVideoView); + BaseVideoViewController.VideoLayoutEntity.updateVideoLayoutInfo(this.mBeforeFullScreenLayoutInfo, this.mVideoView); + this.mVideoView.setLayoutParams((ViewGroup.LayoutParams)this.mBeforeFullScreenLayoutInfo.mBeforeFullScreenLayoutParams); + absoluteLayout.updateNativeViewOffset((View)this.mVideoView, this.mBeforeFullScreenLayoutInfo.mBeforeFullScreenOffset); + } + } + + public void interceptFullScreen(boolean paramBoolean) { + String str; + JSONObject jSONObject = (new JsonBuilder()).put("videoPlayerId", Integer.valueOf(this.mVideoModel.videoPlayerId)).build(); + WebViewManager webViewManager = AppbrandApplicationImpl.getInst().getWebViewManager(); + int i = this.mRender.getWebViewId(); + if (paramBoolean) { + str = "onVideoRequestFullScreen"; + } else { + str = "onVideoExitFullScreen"; + } + webViewManager.publish(i, str, jSONObject.toString()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\video\controller\RenderInBrowserController.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/component/nativeview/web/FileChooseHandler.java b/df_miniapp/classes/com/tt/miniapp/component/nativeview/web/FileChooseHandler.java new file mode 100644 index 0000000..e29c51c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/component/nativeview/web/FileChooseHandler.java @@ -0,0 +1,190 @@ +package com.tt.miniapp.component.nativeview.web; + +import android.app.Activity; +import android.content.ActivityNotFoundException; +import android.content.Intent; +import android.net.Uri; +import android.os.Environment; +import android.os.Parcelable; +import android.webkit.ValueCallback; +import android.webkit.WebChromeClient; +import com.tt.miniapp.permission.PermissionsManager; +import com.tt.miniapp.permission.PermissionsResultAction; +import com.tt.miniapphost.util.UIUtils; +import com.tt.option.n.c; +import java.io.File; +import java.util.HashSet; + +public class FileChooseHandler implements c { + private Activity mActivity; + + private boolean mActivityNotFound; + + private String mCameraFilePath; + + private ValueCallback mUploadCallback; + + public FileChooseHandler(Activity paramActivity) { + this.mActivity = paramActivity; + } + + private Intent createCamcorderIntent() { + return new Intent("android.media.action.VIDEO_CAPTURE"); + } + + private Intent createCameraIntent() { + Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); + File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(file.getAbsolutePath()); + stringBuilder.append(File.separator); + stringBuilder.append("browser-photos"); + file = new File(stringBuilder.toString()); + file.mkdirs(); + stringBuilder = new StringBuilder(); + stringBuilder.append(file.getAbsolutePath()); + stringBuilder.append(File.separator); + stringBuilder.append(System.currentTimeMillis()); + stringBuilder.append(".jpg"); + this.mCameraFilePath = stringBuilder.toString(); + intent.putExtra("output", (Parcelable)Uri.fromFile(new File(this.mCameraFilePath))); + return intent; + } + + private Intent createChooserIntent(Intent... paramVarArgs) { + Intent intent = new Intent("android.intent.action.CHOOSER"); + intent.putExtra("android.intent.extra.INITIAL_INTENTS", (Parcelable[])paramVarArgs); + intent.putExtra("android.intent.extra.TITLE", UIUtils.getString(2097741870)); + return intent; + } + + private Intent createDefaultOpenableIntent() { + Intent intent1 = new Intent("android.intent.action.GET_CONTENT"); + intent1.addCategory("android.intent.category.OPENABLE"); + intent1.setType("*/*"); + Intent intent2 = createChooserIntent(new Intent[] { createCameraIntent(), createCamcorderIntent(), createSoundRecorderIntent() }); + intent2.putExtra("android.intent.extra.INTENT", (Parcelable)intent1); + return intent2; + } + + private Intent createOpenableIntent(String paramString) { + Intent intent = new Intent("android.intent.action.GET_CONTENT"); + intent.addCategory("android.intent.category.OPENABLE"); + intent.setType(paramString); + return intent; + } + + private Intent createSoundRecorderIntent() { + return new Intent("android.provider.MediaStore.RECORD_SOUND"); + } + + private void onResult(int paramInt, Intent paramIntent) { + Uri uri3 = null; + if (paramInt == 0 && this.mActivityNotFound) { + this.mActivityNotFound = false; + setResult(null); + return; + } + Uri uri2 = uri3; + if (paramIntent != null) + if (paramInt != -1) { + uri2 = uri3; + } else { + uri2 = paramIntent.getData(); + } + final Uri data = uri2; + if (uri2 == null) { + uri1 = uri2; + if (paramInt == -1) { + File file = new File(this.mCameraFilePath); + uri1 = uri2; + if (file.exists()) { + uri1 = Uri.fromFile(file); + this.mActivity.sendBroadcast(new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE", uri1)); + } + } + } + HashSet hashSet = new HashSet(); + hashSet.add("android.permission.READ_EXTERNAL_STORAGE"); + PermissionsManager.getInstance().requestPermissionsIfNecessaryForResult(this.mActivity, hashSet, new PermissionsResultAction() { + public void onDenied(String param1String) { + FileChooseHandler.this.setResult(null); + } + + public void onGranted() { + FileChooseHandler.this.setResult(data); + } + }); + } + + private void openFileChooser(ValueCallback paramValueCallback, String[] paramArrayOfString) { + Intent intent; + if (this.mUploadCallback != null) + return; + this.mUploadCallback = paramValueCallback; + String str = paramArrayOfString[0]; + this.mCameraFilePath = null; + if (str.equals("image/*")) { + intent = createChooserIntent(new Intent[] { createCameraIntent() }); + intent.putExtra("android.intent.extra.INTENT", (Parcelable)createOpenableIntent("image/*")); + startActivity(intent, 11); + return; + } + if (intent.equals("video/*")) { + intent = createChooserIntent(new Intent[] { createCamcorderIntent() }); + intent.putExtra("android.intent.extra.INTENT", (Parcelable)createOpenableIntent("video/*")); + startActivity(intent, 11); + return; + } + if (intent.equals("audio/*")) { + intent = createChooserIntent(new Intent[] { createSoundRecorderIntent() }); + intent.putExtra("android.intent.extra.INTENT", (Parcelable)createOpenableIntent("audio/*")); + startActivity(intent, 11); + return; + } + startActivity(createDefaultOpenableIntent(), 11); + } + + private void startActivity(Intent paramIntent, int paramInt) { + try { + this.mActivity.startActivityForResult(paramIntent, paramInt); + return; + } catch (ActivityNotFoundException activityNotFoundException) { + try { + this.mActivityNotFound = true; + this.mActivity.startActivityForResult(createDefaultOpenableIntent(), paramInt); + return; + } catch (ActivityNotFoundException activityNotFoundException1) { + return; + } + } + } + + public void onActivityResult(int paramInt1, int paramInt2, Intent paramIntent) { + if (paramInt1 != 11) + return; + onResult(paramInt2, paramIntent); + } + + public void openFileChooser(ValueCallback paramValueCallback, WebChromeClient.FileChooserParams paramFileChooserParams) { + openFileChooser(paramValueCallback, paramFileChooserParams.getAcceptTypes()); + } + + public void setResult(Uri paramUri) { + ValueCallback valueCallback = this.mUploadCallback; + if (valueCallback != null) + if (paramUri != null) { + valueCallback.onReceiveValue(new Uri[] { paramUri }); + } else { + valueCallback.onReceiveValue(new Uri[0]); + } + this.mUploadCallback = null; + this.mActivityNotFound = false; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\component\nativeview\web\FileChooseHandler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/customer/service/CustomerServiceManager.java b/df_miniapp/classes/com/tt/miniapp/customer/service/CustomerServiceManager.java new file mode 100644 index 0000000..5de2d99 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/customer/service/CustomerServiceManager.java @@ -0,0 +1,161 @@ +package com.tt.miniapp.customer.service; + +import android.content.Context; +import android.text.TextUtils; +import com.a; +import com.storage.async.Function; +import com.storage.async.Observable; +import com.storage.async.Schedulers; +import com.storage.async.Subscriber; +import com.tt.frontendapiinterface.a; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.manager.NetManager; +import com.tt.miniapp.manager.UserInfoManager; +import com.tt.miniapp.util.DevicesUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.MiniappHostBase; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.entity.InitParamsEntity; +import com.tt.miniapphost.host.HostDependManager; +import com.tt.option.q.d; +import com.tt.option.q.i; +import org.json.JSONException; +import org.json.JSONObject; + +public class CustomerServiceManager { + private boolean mCacheEnable = true; + + public String mCachedUrl; + + private Callback mCallback; + + private CustomerServiceManager() {} + + private boolean cacheEnable() { + return (this.mCacheEnable && !TextUtils.isEmpty(this.mCachedUrl)); + } + + private void callbackSuccess() { + Callback callback = this.mCallback; + if (callback != null) + callback.onOpenCustomerServiceSuccess(); + } + + public static CustomerServiceManager getInstance() { + return Holder.INSTANCE; + } + + private void requestCustomerServiceURL() { + AppInfoEntity appInfoEntity = AppbrandApplicationImpl.getInst().getAppInfo(); + if (appInfoEntity == null || TextUtils.isEmpty(appInfoEntity.appId)) { + callbackFail("app info is null"); + return; + } + String str1 = appInfoEntity.appId; + InitParamsEntity initParamsEntity = AppbrandContext.getInst().getInitParams(); + if (initParamsEntity == null || TextUtils.isEmpty(initParamsEntity.getAppId())) { + callbackFail("host init param is null"); + return; + } + String str2 = initParamsEntity.getAppId(); + String str3 = (UserInfoManager.getHostClientUserInfo()).userId; + if (TextUtils.isEmpty(str3)) { + callbackFail("get uid params error"); + return; + } + String str4 = DevicesUtil.getPlatform(); + if (!d.a((Context)AppbrandContext.getInst().getApplicationContext())) { + callbackFail("network unavailable"); + return; + } + Observable.create(new Function() { + public String fun() { + return NetManager.getInst().request(tmaRequest).a(); + } + }).schudleOn(Schedulers.longIO()).subscribe((Subscriber)new Subscriber.ResultableSubscriber() { + public void onError(Throwable param1Throwable) { + AppBrandLogger.e("CustomerServiceManager", new Object[] { "requestCustomerServiceURL fail", param1Throwable }); + CustomerServiceManager.this.callbackFail(a.a(param1Throwable)); + } + + public void onSuccess(String param1String) { + if (TextUtils.isEmpty(param1String)) { + CustomerServiceManager.this.callbackFail("requestResult is null"); + return; + } + AppBrandLogger.e("CustomerServiceManager", new Object[] { param1String }); + try { + JSONObject jSONObject = new JSONObject(param1String); + int i = jSONObject.getInt("error"); + if (i != 0) { + str = jSONObject.optString("message"); + CustomerServiceManager.this.callbackFail(a.a("%s errorCode = %s", new Object[] { str, Integer.valueOf(i) })); + return; + } + String str = str.optString("data"); + AppBrandLogger.e("CustomerServiceManager", new Object[] { "customerServiceURL", str }); + if (TextUtils.isEmpty(str)) { + CustomerServiceManager.this.callbackFail("service return empty url"); + return; + } + CustomerServiceManager.this.mCachedUrl = str; + CustomerServiceManager.this.openCustomerServicePage(str); + return; + } catch (JSONException jSONException) { + AppBrandLogger.e("CustomerServiceManager", new Object[] { jSONException }); + CustomerServiceManager.this.callbackFail("response data error"); + return; + } catch (Exception exception) { + AppBrandLogger.e("CustomerServiceManager", new Object[] { exception }); + CustomerServiceManager.this.callbackFail(a.a(exception)); + return; + } + } + }); + } + + public void callbackFail(String paramString) { + Callback callback = this.mCallback; + if (callback != null) + callback.onOpenCustomerServiceFail(paramString); + } + + public void openCustomerService(Callback paramCallback) { + this.mCallback = paramCallback; + if (cacheEnable()) { + openCustomerServicePage(this.mCachedUrl); + return; + } + requestCustomerServiceURL(); + } + + public void openCustomerServicePage(String paramString) { + MiniappHostBase miniappHostBase = AppbrandContext.getInst().getCurrentActivity(); + if (miniappHostBase == null) { + callbackFail("activity is null"); + return; + } + if (HostDependManager.getInst().openCustomerService((Context)miniappHostBase, paramString)) { + callbackSuccess(); + return; + } + callbackFail("feature is not supported in app"); + } + + public static interface Callback { + void onOpenCustomerServiceFail(String param1String); + + void onOpenCustomerServiceSuccess(); + } + + static class Holder { + public static CustomerServiceManager INSTANCE = new CustomerServiceManager(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\customer\service\CustomerServiceManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/customer/service/CustomerServiceParam.java b/df_miniapp/classes/com/tt/miniapp/customer/service/CustomerServiceParam.java new file mode 100644 index 0000000..5c0c071 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/customer/service/CustomerServiceParam.java @@ -0,0 +1,55 @@ +package com.tt.miniapp.customer.service; + +public class CustomerServiceParam { + private String aId; + + private String appId; + + private String platform; + + private String userId; + + public CustomerServiceParam(String paramString1, String paramString2, String paramString3, String paramString4) { + this.appId = paramString1; + this.aId = paramString2; + this.userId = paramString3; + this.platform = paramString4; + } + + public String toString() { + StringBuilder stringBuilder = new StringBuilder("CustomerServiceParam{appId='"); + stringBuilder.append(this.appId); + stringBuilder.append('\''); + stringBuilder.append(", aId='"); + stringBuilder.append(this.aId); + stringBuilder.append('\''); + stringBuilder.append(", userId='"); + stringBuilder.append(this.userId); + stringBuilder.append('\''); + stringBuilder.append(", platform='"); + stringBuilder.append(this.platform); + stringBuilder.append('\''); + stringBuilder.append('}'); + return stringBuilder.toString(); + } + + public String toURL(String paramString) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(paramString); + stringBuilder.append("?appid="); + stringBuilder.append(this.appId); + stringBuilder.append("&aid="); + stringBuilder.append(this.aId); + stringBuilder.append("&uid="); + stringBuilder.append(this.userId); + stringBuilder.append("&os="); + stringBuilder.append(this.platform); + return stringBuilder.toString(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\customer\service\CustomerServiceParam.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/database/ProcessSpData.java b/df_miniapp/classes/com/tt/miniapp/database/ProcessSpData.java new file mode 100644 index 0000000..35db525 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/database/ProcessSpData.java @@ -0,0 +1,100 @@ +package com.tt.miniapp.database; + +import com.tt.miniapp.process.bridge.InnerHostProcessBridge; + +public class ProcessSpData { + public static boolean getBoolean(String paramString1, String paramString2, boolean paramBoolean) { + paramString1 = getSpData(paramString1, paramString2, String.valueOf(paramBoolean)); + try { + return Boolean.parseBoolean(paramString1); + } catch (Exception exception) { + return paramBoolean; + } + } + + public static double getDouble(String paramString1, String paramString2, double paramDouble) { + paramString1 = getSpData(paramString1, paramString2, String.valueOf(paramDouble)); + try { + return Double.parseDouble(paramString1); + } catch (Exception exception) { + return paramDouble; + } + } + + public static float getFloat(String paramString1, String paramString2, float paramFloat) { + paramString1 = getSpData(paramString1, paramString2, String.valueOf(paramFloat)); + try { + return Float.parseFloat(paramString1); + } catch (Exception exception) { + return paramFloat; + } + } + + public static int getInt(String paramString1, String paramString2, int paramInt) { + paramString1 = getSpData(paramString1, paramString2, String.valueOf(paramInt)); + try { + return Integer.parseInt(paramString1); + } catch (Exception exception) { + return paramInt; + } + } + + public static long getLong(String paramString1, String paramString2, long paramLong) { + paramString1 = getSpData(paramString1, paramString2, String.valueOf(paramLong)); + try { + return Long.parseLong(paramString1); + } catch (Exception exception) { + return paramLong; + } + } + + public static String getSpData(String paramString1, String paramString2, String paramString3) { + return InnerHostProcessBridge.getSpData(paramString1, paramString2, paramString3); + } + + public static String getString(String paramString1, String paramString2, String paramString3) { + return getSpData(paramString1, paramString2, paramString3); + } + + public static void removeSpData(String paramString) { + InnerHostProcessBridge.removeSpData("MiniAppSpData", paramString); + } + + public static void removeSpData(String paramString1, String paramString2) { + InnerHostProcessBridge.removeSpData(paramString1, paramString2); + } + + public static void saveBoolean(String paramString1, String paramString2, boolean paramBoolean) { + saveSpData(paramString1, paramString2, String.valueOf(paramBoolean)); + } + + public static void saveDouble(String paramString1, String paramString2, double paramDouble) { + saveSpData(paramString1, paramString2, String.valueOf(paramDouble)); + } + + public static void saveFloat(String paramString1, String paramString2, float paramFloat) { + saveSpData(paramString1, paramString2, String.valueOf(paramFloat)); + } + + public static void saveInt(String paramString1, String paramString2, int paramInt) { + saveSpData(paramString1, paramString2, String.valueOf(paramInt)); + } + + public static void saveLong(String paramString1, String paramString2, long paramLong) { + saveSpData(paramString1, paramString2, String.valueOf(paramLong)); + } + + public static void saveSpData(String paramString1, String paramString2, String paramString3) { + InnerHostProcessBridge.saveSpData(paramString1, paramString2, paramString3); + } + + public static void saveString(String paramString1, String paramString2, String paramString3) { + saveSpData(paramString1, paramString2, paramString3); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\database\ProcessSpData.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/database/base/BaseDao.java b/df_miniapp/classes/com/tt/miniapp/database/base/BaseDao.java new file mode 100644 index 0000000..a5a80c2 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/database/base/BaseDao.java @@ -0,0 +1,42 @@ +package com.tt.miniapp.database.base; + +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + +public class BaseDao { + protected Cursor cursor; + + protected SQLiteDatabase db; + + protected SQLiteOpenHelper helper; + + public BaseDao(SQLiteOpenHelper paramSQLiteOpenHelper) { + this.helper = paramSQLiteOpenHelper; + } + + public void beginTrans() { + this.db = this.helper.getWritableDatabase(); + this.db.beginTransaction(); + } + + public void closeCursor() { + Cursor cursor = this.cursor; + if (cursor != null) { + cursor.close(); + this.cursor = null; + } + } + + public void commit() { + this.db.setTransactionSuccessful(); + this.db.endTransaction(); + this.db.close(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\database\base\BaseDao.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/database/base/DbConstant.java b/df_miniapp/classes/com/tt/miniapp/database/base/DbConstant.java new file mode 100644 index 0000000..7688ed6 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/database/base/DbConstant.java @@ -0,0 +1,15 @@ +package com.tt.miniapp.database.base; + +public class DbConstant { + public class TABLE {} + + public class VERSION {} + + public class Value {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\database\base\DbConstant.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/database/recentapps/RecentAppsDao.java b/df_miniapp/classes/com/tt/miniapp/database/recentapps/RecentAppsDao.java new file mode 100644 index 0000000..f65d9dd --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/database/recentapps/RecentAppsDao.java @@ -0,0 +1,664 @@ +package com.tt.miniapp.database.recentapps; + +import android.database.sqlite.SQLiteOpenHelper; +import com.tt.miniapp.database.base.BaseDao; +import com.tt.miniapphost.entity.AppLaunchInfo; +import java.util.List; + +public class RecentAppsDao extends BaseDao { + public RecentAppsDao(SQLiteOpenHelper paramSQLiteOpenHelper) { + super(paramSQLiteOpenHelper); + } + + public void addAllData(List paramList) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_1 + // 3: ifnull -> 278 + // 6: aload_1 + // 7: invokeinterface size : ()I + // 12: istore_2 + // 13: iload_2 + // 14: ifne -> 20 + // 17: goto -> 278 + // 20: aload_0 + // 21: invokevirtual beginTrans : ()V + // 24: aload_0 + // 25: getfield db : Landroid/database/sqlite/SQLiteDatabase; + // 28: ldc 'replace into TB_RECENT_APPS(appID,appName,ttid,icon,type,orientation,mark,minJssdk,schema,state,summary,timestamp)values(?,?,?,?,?,?,?,?,?,?,?,?)' + // 30: invokevirtual compileStatement : (Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement; + // 33: astore_3 + // 34: aload_1 + // 35: invokeinterface iterator : ()Ljava/util/Iterator; + // 40: astore #4 + // 42: aload #4 + // 44: invokeinterface hasNext : ()Z + // 49: ifeq -> 203 + // 52: aload #4 + // 54: invokeinterface next : ()Ljava/lang/Object; + // 59: checkcast com/tt/miniapphost/entity/AppLaunchInfo + // 62: astore #5 + // 64: aload_3 + // 65: iconst_1 + // 66: aload #5 + // 68: getfield appId : Ljava/lang/String; + // 71: invokevirtual bindString : (ILjava/lang/String;)V + // 74: aload_3 + // 75: iconst_2 + // 76: aload #5 + // 78: getfield appName : Ljava/lang/String; + // 81: invokevirtual bindString : (ILjava/lang/String;)V + // 84: aload_3 + // 85: iconst_3 + // 86: aload #5 + // 88: getfield ttid : Ljava/lang/String; + // 91: invokevirtual bindString : (ILjava/lang/String;)V + // 94: aload_3 + // 95: iconst_4 + // 96: aload #5 + // 98: getfield icon : Ljava/lang/String; + // 101: invokevirtual bindString : (ILjava/lang/String;)V + // 104: aload_3 + // 105: iconst_5 + // 106: aload #5 + // 108: getfield type : I + // 111: i2l + // 112: invokevirtual bindLong : (IJ)V + // 115: aload_3 + // 116: bipush #6 + // 118: aload #5 + // 120: getfield orientation : I + // 123: i2l + // 124: invokevirtual bindLong : (IJ)V + // 127: aload_3 + // 128: bipush #7 + // 130: aload #5 + // 132: getfield mark : I + // 135: i2l + // 136: invokevirtual bindLong : (IJ)V + // 139: aload_3 + // 140: bipush #8 + // 142: aload #5 + // 144: getfield minJssdk : Ljava/lang/String; + // 147: invokevirtual bindString : (ILjava/lang/String;)V + // 150: aload_3 + // 151: bipush #9 + // 153: aload #5 + // 155: getfield schema : Ljava/lang/String; + // 158: invokevirtual bindString : (ILjava/lang/String;)V + // 161: aload_3 + // 162: bipush #10 + // 164: aload #5 + // 166: getfield state : I + // 169: i2l + // 170: invokevirtual bindLong : (IJ)V + // 173: aload_3 + // 174: bipush #11 + // 176: aload #5 + // 178: getfield summary : Ljava/lang/String; + // 181: invokevirtual bindString : (ILjava/lang/String;)V + // 184: aload_3 + // 185: bipush #12 + // 187: aload #5 + // 189: getfield timestamp : J + // 192: invokevirtual bindLong : (IJ)V + // 195: aload_3 + // 196: invokevirtual executeInsert : ()J + // 199: pop2 + // 200: goto -> 42 + // 203: new java/lang/StringBuilder + // 206: dup + // 207: ldc 'data size is ' + // 209: invokespecial : (Ljava/lang/String;)V + // 212: astore_3 + // 213: aload_3 + // 214: aload_1 + // 215: invokeinterface size : ()I + // 220: invokevirtual append : (I)Ljava/lang/StringBuilder; + // 223: pop + // 224: ldc 'RecentAppsDao' + // 226: iconst_1 + // 227: anewarray java/lang/Object + // 230: dup + // 231: iconst_0 + // 232: aload_3 + // 233: invokevirtual toString : ()Ljava/lang/String; + // 236: aastore + // 237: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 240: aload_0 + // 241: invokevirtual commit : ()V + // 244: aload_0 + // 245: monitorexit + // 246: return + // 247: astore_1 + // 248: goto -> 272 + // 251: astore_1 + // 252: ldc 'RecentAppsDao' + // 254: iconst_1 + // 255: anewarray java/lang/Object + // 258: dup + // 259: iconst_0 + // 260: aload_1 + // 261: aastore + // 262: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 265: aload_0 + // 266: invokevirtual commit : ()V + // 269: aload_0 + // 270: monitorexit + // 271: return + // 272: aload_0 + // 273: invokevirtual commit : ()V + // 276: aload_1 + // 277: athrow + // 278: ldc 'RecentAppsDao' + // 280: iconst_1 + // 281: anewarray java/lang/Object + // 284: dup + // 285: iconst_0 + // 286: ldc 'no data to add' + // 288: aastore + // 289: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 292: aload_0 + // 293: monitorexit + // 294: return + // 295: astore_1 + // 296: aload_0 + // 297: monitorexit + // 298: goto -> 303 + // 301: aload_1 + // 302: athrow + // 303: goto -> 301 + // Exception table: + // from to target type + // 6 13 295 finally + // 20 42 251 java/lang/Exception + // 20 42 247 finally + // 42 200 251 java/lang/Exception + // 42 200 247 finally + // 203 240 251 java/lang/Exception + // 203 240 247 finally + // 240 244 295 finally + // 252 265 247 finally + // 265 269 295 finally + // 272 278 295 finally + // 278 292 295 finally + } + + public void addRecentApp(AppLaunchInfo paramAppLaunchInfo) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: invokevirtual beginTrans : ()V + // 6: new android/content/ContentValues + // 9: dup + // 10: invokespecial : ()V + // 13: astore_2 + // 14: aload_1 + // 15: ifnull -> 186 + // 18: aload_2 + // 19: ldc 'appID' + // 21: aload_1 + // 22: getfield appId : Ljava/lang/String; + // 25: invokevirtual put : (Ljava/lang/String;Ljava/lang/String;)V + // 28: aload_2 + // 29: ldc 'appName' + // 31: aload_1 + // 32: getfield appName : Ljava/lang/String; + // 35: invokevirtual put : (Ljava/lang/String;Ljava/lang/String;)V + // 38: aload_2 + // 39: ldc 'ttid' + // 41: aload_1 + // 42: getfield ttid : Ljava/lang/String; + // 45: invokevirtual put : (Ljava/lang/String;Ljava/lang/String;)V + // 48: aload_2 + // 49: ldc 'icon' + // 51: aload_1 + // 52: getfield icon : Ljava/lang/String; + // 55: invokevirtual put : (Ljava/lang/String;Ljava/lang/String;)V + // 58: aload_2 + // 59: ldc 'type' + // 61: aload_1 + // 62: getfield type : I + // 65: invokestatic valueOf : (I)Ljava/lang/Integer; + // 68: invokevirtual put : (Ljava/lang/String;Ljava/lang/Integer;)V + // 71: aload_2 + // 72: ldc 'orientation' + // 74: aload_1 + // 75: getfield orientation : I + // 78: invokestatic valueOf : (I)Ljava/lang/Integer; + // 81: invokevirtual put : (Ljava/lang/String;Ljava/lang/Integer;)V + // 84: aload_2 + // 85: ldc 'mark' + // 87: aload_1 + // 88: getfield mark : I + // 91: invokestatic valueOf : (I)Ljava/lang/Integer; + // 94: invokevirtual put : (Ljava/lang/String;Ljava/lang/Integer;)V + // 97: aload_2 + // 98: ldc 'minJssdk' + // 100: aload_1 + // 101: getfield minJssdk : Ljava/lang/String; + // 104: invokevirtual put : (Ljava/lang/String;Ljava/lang/String;)V + // 107: aload_2 + // 108: ldc 'schema' + // 110: aload_1 + // 111: getfield schema : Ljava/lang/String; + // 114: invokevirtual put : (Ljava/lang/String;Ljava/lang/String;)V + // 117: aload_2 + // 118: ldc 'state' + // 120: aload_1 + // 121: getfield state : I + // 124: invokestatic valueOf : (I)Ljava/lang/Integer; + // 127: invokevirtual put : (Ljava/lang/String;Ljava/lang/Integer;)V + // 130: aload_2 + // 131: ldc 'summary' + // 133: aload_1 + // 134: getfield summary : Ljava/lang/String; + // 137: invokevirtual put : (Ljava/lang/String;Ljava/lang/String;)V + // 140: aload_2 + // 141: ldc 'timestamp' + // 143: aload_1 + // 144: getfield timestamp : J + // 147: invokestatic valueOf : (J)Ljava/lang/Long; + // 150: invokevirtual put : (Ljava/lang/String;Ljava/lang/Long;)V + // 153: ldc 'RecentAppsDao' + // 155: iconst_4 + // 156: anewarray java/lang/Object + // 159: dup + // 160: iconst_0 + // 161: ldc 'appId:' + // 163: aastore + // 164: dup + // 165: iconst_1 + // 166: aload_1 + // 167: getfield appId : Ljava/lang/String; + // 170: aastore + // 171: dup + // 172: iconst_2 + // 173: ldc 'appName:' + // 175: aastore + // 176: dup + // 177: iconst_3 + // 178: aload_1 + // 179: getfield appName : Ljava/lang/String; + // 182: aastore + // 183: invokestatic d : (Ljava/lang/String;[Ljava/lang/Object;)V + // 186: aload_0 + // 187: getfield db : Landroid/database/sqlite/SQLiteDatabase; + // 190: ldc 'TB_RECENT_APPS' + // 192: aconst_null + // 193: aload_2 + // 194: invokevirtual replace : (Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J + // 197: pop2 + // 198: aload_0 + // 199: invokevirtual commit : ()V + // 202: aload_0 + // 203: monitorexit + // 204: return + // 205: astore_1 + // 206: aload_0 + // 207: monitorexit + // 208: aload_1 + // 209: athrow + // Exception table: + // from to target type + // 2 14 205 finally + // 18 186 205 finally + // 186 202 205 finally + } + + public void clearRecentApp() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: invokevirtual beginTrans : ()V + // 6: ldc 'delete from %s' + // 8: iconst_1 + // 9: anewarray java/lang/Object + // 12: dup + // 13: iconst_0 + // 14: ldc 'TB_RECENT_APPS' + // 16: aastore + // 17: invokestatic a : (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + // 20: astore_1 + // 21: aload_0 + // 22: getfield db : Landroid/database/sqlite/SQLiteDatabase; + // 25: aload_1 + // 26: invokevirtual execSQL : (Ljava/lang/String;)V + // 29: aload_0 + // 30: invokevirtual commit : ()V + // 33: aload_0 + // 34: monitorexit + // 35: return + // 36: astore_1 + // 37: goto -> 61 + // 40: astore_1 + // 41: ldc 'RecentAppsDao' + // 43: iconst_1 + // 44: anewarray java/lang/Object + // 47: dup + // 48: iconst_0 + // 49: aload_1 + // 50: aastore + // 51: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 54: aload_0 + // 55: invokevirtual commit : ()V + // 58: aload_0 + // 59: monitorexit + // 60: return + // 61: aload_0 + // 62: invokevirtual commit : ()V + // 65: aload_1 + // 66: athrow + // 67: astore_1 + // 68: aload_0 + // 69: monitorexit + // 70: aload_1 + // 71: athrow + // Exception table: + // from to target type + // 2 29 40 java/lang/Exception + // 2 29 36 finally + // 29 33 67 finally + // 41 54 36 finally + // 54 58 67 finally + // 61 67 67 finally + } + + public List getRecentApps() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: new java/util/ArrayList + // 5: dup + // 6: invokespecial : ()V + // 9: astore_3 + // 10: aload_0 + // 11: aload_0 + // 12: getfield helper : Landroid/database/sqlite/SQLiteOpenHelper; + // 15: invokevirtual getReadableDatabase : ()Landroid/database/sqlite/SQLiteDatabase; + // 18: putfield db : Landroid/database/sqlite/SQLiteDatabase; + // 21: ldc 'select * from %s ORDER BY %s DESC' + // 23: iconst_2 + // 24: anewarray java/lang/Object + // 27: dup + // 28: iconst_0 + // 29: ldc 'TB_RECENT_APPS' + // 31: aastore + // 32: dup + // 33: iconst_1 + // 34: ldc 'timestamp' + // 36: aastore + // 37: invokestatic a : (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + // 40: astore_2 + // 41: aload_0 + // 42: aload_0 + // 43: getfield db : Landroid/database/sqlite/SQLiteDatabase; + // 46: aload_2 + // 47: aconst_null + // 48: invokevirtual rawQuery : (Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor; + // 51: putfield cursor : Landroid/database/Cursor; + // 54: aload_0 + // 55: getfield cursor : Landroid/database/Cursor; + // 58: invokeinterface moveToNext : ()Z + // 63: ifeq -> 391 + // 66: new com/tt/miniapphost/entity/AppLaunchInfo + // 69: dup + // 70: invokespecial : ()V + // 73: astore_2 + // 74: aload_2 + // 75: aload_0 + // 76: getfield cursor : Landroid/database/Cursor; + // 79: aload_0 + // 80: getfield cursor : Landroid/database/Cursor; + // 83: ldc 'appID' + // 85: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 90: invokeinterface getString : (I)Ljava/lang/String; + // 95: putfield appId : Ljava/lang/String; + // 98: aload_2 + // 99: aload_0 + // 100: getfield cursor : Landroid/database/Cursor; + // 103: aload_0 + // 104: getfield cursor : Landroid/database/Cursor; + // 107: ldc 'appName' + // 109: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 114: invokeinterface getString : (I)Ljava/lang/String; + // 119: putfield appName : Ljava/lang/String; + // 122: aload_2 + // 123: aload_0 + // 124: getfield cursor : Landroid/database/Cursor; + // 127: aload_0 + // 128: getfield cursor : Landroid/database/Cursor; + // 131: ldc 'ttid' + // 133: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 138: invokeinterface getString : (I)Ljava/lang/String; + // 143: putfield ttid : Ljava/lang/String; + // 146: aload_2 + // 147: aload_0 + // 148: getfield cursor : Landroid/database/Cursor; + // 151: aload_0 + // 152: getfield cursor : Landroid/database/Cursor; + // 155: ldc 'icon' + // 157: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 162: invokeinterface getString : (I)Ljava/lang/String; + // 167: putfield icon : Ljava/lang/String; + // 170: aload_2 + // 171: aload_0 + // 172: getfield cursor : Landroid/database/Cursor; + // 175: aload_0 + // 176: getfield cursor : Landroid/database/Cursor; + // 179: ldc 'type' + // 181: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 186: invokeinterface getInt : (I)I + // 191: putfield type : I + // 194: aload_2 + // 195: aload_0 + // 196: getfield cursor : Landroid/database/Cursor; + // 199: aload_0 + // 200: getfield cursor : Landroid/database/Cursor; + // 203: ldc 'orientation' + // 205: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 210: invokeinterface getInt : (I)I + // 215: putfield orientation : I + // 218: aload_2 + // 219: aload_0 + // 220: getfield cursor : Landroid/database/Cursor; + // 223: aload_0 + // 224: getfield cursor : Landroid/database/Cursor; + // 227: ldc 'mark' + // 229: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 234: invokeinterface getInt : (I)I + // 239: putfield mark : I + // 242: aload_2 + // 243: aload_0 + // 244: getfield cursor : Landroid/database/Cursor; + // 247: aload_0 + // 248: getfield cursor : Landroid/database/Cursor; + // 251: ldc 'minJssdk' + // 253: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 258: invokeinterface getString : (I)Ljava/lang/String; + // 263: putfield minJssdk : Ljava/lang/String; + // 266: aload_2 + // 267: aload_0 + // 268: getfield cursor : Landroid/database/Cursor; + // 271: aload_0 + // 272: getfield cursor : Landroid/database/Cursor; + // 275: ldc 'schema' + // 277: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 282: invokeinterface getString : (I)Ljava/lang/String; + // 287: putfield schema : Ljava/lang/String; + // 290: aload_2 + // 291: aload_0 + // 292: getfield cursor : Landroid/database/Cursor; + // 295: aload_0 + // 296: getfield cursor : Landroid/database/Cursor; + // 299: ldc 'state' + // 301: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 306: invokeinterface getInt : (I)I + // 311: putfield state : I + // 314: aload_2 + // 315: aload_0 + // 316: getfield cursor : Landroid/database/Cursor; + // 319: aload_0 + // 320: getfield cursor : Landroid/database/Cursor; + // 323: ldc 'summary' + // 325: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 330: invokeinterface getString : (I)Ljava/lang/String; + // 335: putfield summary : Ljava/lang/String; + // 338: aload_2 + // 339: aload_0 + // 340: getfield cursor : Landroid/database/Cursor; + // 343: aload_0 + // 344: getfield cursor : Landroid/database/Cursor; + // 347: ldc 'timestamp' + // 349: invokeinterface getColumnIndex : (Ljava/lang/String;)I + // 354: invokeinterface getLong : (I)J + // 359: putfield timestamp : J + // 362: aload_2 + // 363: getfield type : I + // 366: iconst_2 + // 367: if_icmpne -> 465 + // 370: iconst_1 + // 371: istore_1 + // 372: goto -> 375 + // 375: aload_2 + // 376: iload_1 + // 377: putfield isGame : Z + // 380: aload_3 + // 381: aload_2 + // 382: invokeinterface add : (Ljava/lang/Object;)Z + // 387: pop + // 388: goto -> 54 + // 391: aload_0 + // 392: invokevirtual closeCursor : ()V + // 395: aload_0 + // 396: getfield db : Landroid/database/sqlite/SQLiteDatabase; + // 399: astore_2 + // 400: aload_2 + // 401: invokevirtual close : ()V + // 404: goto -> 437 + // 407: astore_2 + // 408: goto -> 441 + // 411: astore_2 + // 412: ldc 'RecentAppsDao' + // 414: iconst_1 + // 415: anewarray java/lang/Object + // 418: dup + // 419: iconst_0 + // 420: aload_2 + // 421: aastore + // 422: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 425: aload_0 + // 426: invokevirtual closeCursor : ()V + // 429: aload_0 + // 430: getfield db : Landroid/database/sqlite/SQLiteDatabase; + // 433: astore_2 + // 434: goto -> 400 + // 437: aload_0 + // 438: monitorexit + // 439: aload_3 + // 440: areturn + // 441: aload_0 + // 442: invokevirtual closeCursor : ()V + // 445: aload_0 + // 446: getfield db : Landroid/database/sqlite/SQLiteDatabase; + // 449: invokevirtual close : ()V + // 452: aload_2 + // 453: athrow + // 454: astore_2 + // 455: aload_0 + // 456: monitorexit + // 457: goto -> 462 + // 460: aload_2 + // 461: athrow + // 462: goto -> 460 + // 465: iconst_0 + // 466: istore_1 + // 467: goto -> 375 + // Exception table: + // from to target type + // 2 10 454 finally + // 10 54 411 java/lang/Exception + // 10 54 407 finally + // 54 370 411 java/lang/Exception + // 54 370 407 finally + // 375 388 411 java/lang/Exception + // 375 388 407 finally + // 391 400 454 finally + // 400 404 454 finally + // 412 425 407 finally + // 425 434 454 finally + // 441 454 454 finally + } + + public void removeRecentApp(String paramString) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: invokevirtual beginTrans : ()V + // 6: ldc_w 'delete from %s where appID = '%s'' + // 9: iconst_2 + // 10: anewarray java/lang/Object + // 13: dup + // 14: iconst_0 + // 15: ldc 'TB_RECENT_APPS' + // 17: aastore + // 18: dup + // 19: iconst_1 + // 20: aload_1 + // 21: aastore + // 22: invokestatic a : (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; + // 25: astore_1 + // 26: aload_0 + // 27: getfield db : Landroid/database/sqlite/SQLiteDatabase; + // 30: aload_1 + // 31: invokevirtual execSQL : (Ljava/lang/String;)V + // 34: aload_0 + // 35: invokevirtual commit : ()V + // 38: aload_0 + // 39: monitorexit + // 40: return + // 41: astore_1 + // 42: goto -> 66 + // 45: astore_1 + // 46: ldc 'RecentAppsDao' + // 48: iconst_1 + // 49: anewarray java/lang/Object + // 52: dup + // 53: iconst_0 + // 54: aload_1 + // 55: aastore + // 56: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 59: aload_0 + // 60: invokevirtual commit : ()V + // 63: aload_0 + // 64: monitorexit + // 65: return + // 66: aload_0 + // 67: invokevirtual commit : ()V + // 70: aload_1 + // 71: athrow + // 72: astore_1 + // 73: aload_0 + // 74: monitorexit + // 75: aload_1 + // 76: athrow + // Exception table: + // from to target type + // 2 34 45 java/lang/Exception + // 2 34 41 finally + // 34 38 72 finally + // 46 59 41 finally + // 59 63 72 finally + // 66 72 72 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\database\recentapps\RecentAppsDao.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/database/recentapps/RecentAppsDbOpenHelper.java b/df_miniapp/classes/com/tt/miniapp/database/recentapps/RecentAppsDbOpenHelper.java new file mode 100644 index 0000000..3cfc4c4 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/database/recentapps/RecentAppsDbOpenHelper.java @@ -0,0 +1,42 @@ +package com.tt.miniapp.database.recentapps; + +import android.content.Context; +import android.database.SQLException; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import com.a; +import com.tt.miniapphost.AppBrandLogger; + +public class RecentAppsDbOpenHelper extends SQLiteOpenHelper { + public RecentAppsDbOpenHelper(Context paramContext) { + super(paramContext, "DB_NAME_RECENT_APPS", null, 1); + } + + private void createTable(SQLiteDatabase paramSQLiteDatabase) { + String str = a.a("create table %s(appID text,appName text, ttid text,icon text,type integer,orientation integer,mark integer,minJssdk text,schema text,state integer,summary text,timestamp Long,UNIQUE(appID));", new Object[] { "TB_RECENT_APPS" }); + try { + paramSQLiteDatabase.execSQL(str); + return; + } catch (SQLException sQLException) { + AppBrandLogger.e("RecentAppsDbOpenHelper", new Object[] { sQLException }); + return; + } + } + + public void onCreate(SQLiteDatabase paramSQLiteDatabase) { + createTable(paramSQLiteDatabase); + } + + public void onDowngrade(SQLiteDatabase paramSQLiteDatabase, int paramInt1, int paramInt2) { + if (paramInt1 > paramInt2) + paramSQLiteDatabase.execSQL(a.a("drop table if exists %s;", new Object[] { "TB_RECENT_APPS" })); + } + + public void onUpgrade(SQLiteDatabase paramSQLiteDatabase, int paramInt1, int paramInt2) {} +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\database\recentapps\RecentAppsDbOpenHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/database/usagerecord/UsageRecordDao.java b/df_miniapp/classes/com/tt/miniapp/database/usagerecord/UsageRecordDao.java new file mode 100644 index 0000000..b247c81 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/database/usagerecord/UsageRecordDao.java @@ -0,0 +1,73 @@ +package com.tt.miniapp.database.usagerecord; + +import android.content.ContentValues; +import android.database.sqlite.SQLiteOpenHelper; +import com.a; +import com.tt.miniapp.database.base.BaseDao; +import com.tt.miniapphost.AppBrandLogger; +import java.util.ArrayList; +import java.util.List; + +public class UsageRecordDao extends BaseDao { + public UsageRecordDao(SQLiteOpenHelper paramSQLiteOpenHelper) { + super(paramSQLiteOpenHelper); + } + + public void deleteExpiredUsageRecordInfos() { + beginTrans(); + String str = a.a("delete from %s where startTime<=?", new Object[] { "TB_USAGE_RECODR" }); + this.db.execSQL(str, new Object[] { Long.valueOf(System.currentTimeMillis() - 172800000L) }); + commit(); + } + + public List getAvailUsageRecordInfoList(List paramList) { + ArrayList arrayList = new ArrayList(); + if (paramList != null) { + if (paramList.isEmpty()) + return arrayList; + try { + this.db = this.helper.getReadableDatabase(); + String str = a.a("select appID,startTime,duration,scene,subScene from %s where startTime>?", new Object[] { "TB_USAGE_RECODR" }); + this.cursor = this.db.rawQuery(str, new String[] { String.valueOf(System.currentTimeMillis() - 172800000L) }); + while (this.cursor.moveToNext()) { + str = this.cursor.getString(this.cursor.getColumnIndex("appID")); + if (paramList.contains(str)) { + UsageRecordInfo usageRecordInfo = new UsageRecordInfo(); + usageRecordInfo.appID = str; + usageRecordInfo.startTime = Long.valueOf(this.cursor.getLong(this.cursor.getColumnIndex("startTime"))); + usageRecordInfo.duration = Long.valueOf(this.cursor.getLong(this.cursor.getColumnIndex("duration"))); + usageRecordInfo.scene = this.cursor.getString(this.cursor.getColumnIndex("scene")); + usageRecordInfo.subScene = this.cursor.getString(this.cursor.getColumnIndex("subScene")); + arrayList.add(usageRecordInfo); + } + } + } catch (Exception exception) { + AppBrandLogger.e("UsageRecordDao", new Object[] { exception }); + } finally {} + closeCursor(); + this.db.close(); + return arrayList; + } + return arrayList; + } + + public void insert(UsageRecordInfo paramUsageRecordInfo) { + beginTrans(); + ContentValues contentValues = new ContentValues(); + if (paramUsageRecordInfo != null) { + contentValues.put("appID", paramUsageRecordInfo.appID); + contentValues.put("startTime", paramUsageRecordInfo.startTime); + contentValues.put("duration", paramUsageRecordInfo.duration); + contentValues.put("scene", paramUsageRecordInfo.scene); + contentValues.put("subScene", paramUsageRecordInfo.subScene); + } + this.db.insert("TB_USAGE_RECODR", null, contentValues); + commit(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\databas\\usagerecord\UsageRecordDao.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/database/usagerecord/UsageRecordDbOpenHelper.java b/df_miniapp/classes/com/tt/miniapp/database/usagerecord/UsageRecordDbOpenHelper.java new file mode 100644 index 0000000..1fa359c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/database/usagerecord/UsageRecordDbOpenHelper.java @@ -0,0 +1,60 @@ +package com.tt.miniapp.database.usagerecord; + +import android.content.Context; +import android.database.SQLException; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import com.a; +import com.tt.miniapphost.AppBrandLogger; + +public class UsageRecordDbOpenHelper extends SQLiteOpenHelper { + public UsageRecordDbOpenHelper(Context paramContext) { + super(paramContext, "DB_NAME_USAGE_RECORD", null, 2); + } + + private void createTable(SQLiteDatabase paramSQLiteDatabase) { + String str = a.a("create table %s(_id integer primary key autoincrement,appID text,startTime long,duration long,scene text,subScene text);", new Object[] { "TB_USAGE_RECODR" }); + try { + paramSQLiteDatabase.execSQL(str); + return; + } catch (SQLException sQLException) { + AppBrandLogger.e("UsageRecordDbOpenHelper", new Object[] { sQLException }); + return; + } + } + + private void updateScene(SQLiteDatabase paramSQLiteDatabase) { + try { + paramSQLiteDatabase.execSQL(a.a("create table %s(_id integer primary key autoincrement,appID text,startTime long,duration long,scene text,subScene text);", new Object[] { "TB_TEMP_USAGE_RECODR" })); + paramSQLiteDatabase.execSQL(a.a("insert into %s select * from %s;", new Object[] { "TB_TEMP_USAGE_RECODR", "TB_USAGE_RECODR" })); + paramSQLiteDatabase.execSQL(a.a("drop table if exists %s;", new Object[] { "TB_USAGE_RECODR" })); + paramSQLiteDatabase.execSQL(a.a("alter table %s rename to %s;", new Object[] { "TB_TEMP_USAGE_RECODR", "TB_USAGE_RECODR" })); + return; + } catch (SQLException sQLException) { + AppBrandLogger.e("UsageRecordDbOpenHelper", new Object[] { sQLException }); + return; + } + } + + public void onCreate(SQLiteDatabase paramSQLiteDatabase) { + createTable(paramSQLiteDatabase); + } + + public void onDowngrade(SQLiteDatabase paramSQLiteDatabase, int paramInt1, int paramInt2) { + if (paramInt1 > paramInt2) { + paramSQLiteDatabase.execSQL(a.a("drop table if exists %s;", new Object[] { "TB_USAGE_RECODR" })); + createTable(paramSQLiteDatabase); + } + } + + public void onUpgrade(SQLiteDatabase paramSQLiteDatabase, int paramInt1, int paramInt2) { + if (paramInt1 < paramInt2 && 2 == paramInt2 && paramInt1 == 1) + updateScene(paramSQLiteDatabase); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\databas\\usagerecord\UsageRecordDbOpenHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/database/usagerecord/UsageRecordInfo.java b/df_miniapp/classes/com/tt/miniapp/database/usagerecord/UsageRecordInfo.java new file mode 100644 index 0000000..f451438 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/database/usagerecord/UsageRecordInfo.java @@ -0,0 +1,19 @@ +package com.tt.miniapp.database.usagerecord; + +public class UsageRecordInfo { + public String appID; + + public Long duration; + + public String scene; + + public Long startTime; + + public String subScene; +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\databas\\usagerecord\UsageRecordInfo.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/DebugInfoUtil.java b/df_miniapp/classes/com/tt/miniapp/debug/DebugInfoUtil.java new file mode 100644 index 0000000..6acc4ef --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/DebugInfoUtil.java @@ -0,0 +1,449 @@ +package com.tt.miniapp.debug; + +import android.content.Context; +import android.content.Intent; +import d.f.a.b; +import d.f.b.l; +import d.f.b.m; +import java.util.Map; + +public final class DebugInfoUtil { + public static final DebugInfoUtil INSTANCE = new DebugInfoUtil(); + + private static String sInfo; + + public static final Intent appendDebugInfo(Context paramContext, Intent paramIntent) { + l.b(paramContext, "context"); + l.b(paramIntent, "intent"); + paramIntent.putExtra("bdp_debug_info", INSTANCE.generateDebugInfo(paramContext)); + return paramIntent; + } + + private final String generateDebugInfo(Context paramContext) { + // Byte code: + // 0: getstatic com/tt/miniapp/debug/DebugInfoUtil.sInfo : Ljava/lang/String; + // 3: astore_3 + // 4: aload_3 + // 5: ifnull -> 24 + // 8: aload_3 + // 9: ifnull -> 14 + // 12: aload_3 + // 13: areturn + // 14: new d/u + // 17: dup + // 18: ldc 'null cannot be cast to non-null type kotlin.String' + // 20: invokespecial : (Ljava/lang/String;)V + // 23: athrow + // 24: new java/util/LinkedHashMap + // 27: dup + // 28: invokespecial : ()V + // 31: checkcast java/util/Map + // 34: astore #5 + // 36: invokestatic getInst : ()Lcom/tt/miniapp/AppbrandApplicationImpl; + // 39: astore_3 + // 40: aload_3 + // 41: ldc 'AppbrandApplicationImpl.getInst()' + // 43: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 46: aload_3 + // 47: invokevirtual getMiniAppContext : ()Lcom/tt/miniapp/base/MiniAppContextWrapper; + // 50: astore #6 + // 52: aload #6 + // 54: ldc 'AppbrandApplicationImpl.getInst().miniAppContext' + // 56: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 59: aload #6 + // 61: invokevirtual getAppInfo : ()Lcom/tt/miniapphost/entity/AppInfoEntity; + // 64: astore_3 + // 65: aload_3 + // 66: ifnull -> 626 + // 69: aload_3 + // 70: getfield appId : Ljava/lang/String; + // 73: astore #4 + // 75: aload #4 + // 77: astore_3 + // 78: aload #4 + // 80: ifnonnull -> 86 + // 83: goto -> 626 + // 86: aload #5 + // 88: ldc 'appId' + // 90: aload_3 + // 91: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 96: pop + // 97: invokestatic getInst : ()Lcom/tt/miniapphost/AppbrandContext; + // 100: astore_3 + // 101: aload_3 + // 102: ldc 'AppbrandContext.getInst()' + // 104: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 107: aload_3 + // 108: invokevirtual getInitParams : ()Lcom/tt/miniapphost/entity/InitParamsEntity; + // 111: astore_3 + // 112: invokestatic a : ()Ljava/lang/String; + // 115: astore #4 + // 117: aload #4 + // 119: ldc 'NetRequestUtil.getDeviceId()' + // 121: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 124: aload #5 + // 126: ldc 'deviceId' + // 128: aload #4 + // 130: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 135: pop + // 136: aload_3 + // 137: ldc 'initParams' + // 139: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 142: aload_3 + // 143: invokevirtual getAppId : ()Ljava/lang/String; + // 146: astore #4 + // 148: aload #4 + // 150: ldc 'initParams.appId' + // 152: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 155: aload #5 + // 157: ldc 'aid' + // 159: aload #4 + // 161: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 166: pop + // 167: aload_3 + // 168: invokevirtual getChannel : ()Ljava/lang/String; + // 171: astore #4 + // 173: aload #4 + // 175: ldc 'initParams.channel' + // 177: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 180: aload #5 + // 182: ldc 'channel' + // 184: aload #4 + // 186: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 191: pop + // 192: aload_3 + // 193: invokevirtual getOsVersion : ()Ljava/lang/String; + // 196: astore #4 + // 198: aload #4 + // 200: ldc 'initParams.osVersion' + // 202: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 205: aload #5 + // 207: ldc 'osVersion' + // 209: aload #4 + // 211: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 216: pop + // 217: aload_3 + // 218: invokevirtual getVersionCode : ()Ljava/lang/String; + // 221: astore_3 + // 222: aload_3 + // 223: ldc 'initParams.versionCode' + // 225: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 228: aload #5 + // 230: ldc 'hostVersionCode' + // 232: aload_3 + // 233: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 238: pop + // 239: aload #6 + // 241: invokevirtual getAppInfo : ()Lcom/tt/miniapphost/entity/AppInfoEntity; + // 244: ifnull -> 367 + // 247: aload #6 + // 249: invokevirtual getAppInfo : ()Lcom/tt/miniapphost/entity/AppInfoEntity; + // 252: astore_3 + // 253: aload_3 + // 254: ifnonnull -> 260 + // 257: invokestatic a : ()V + // 260: aload_3 + // 261: ldc 'miniAppContext.appInfo!!' + // 263: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 266: aload_3 + // 267: invokevirtual isGame : ()Z + // 270: ifne -> 367 + // 273: aload #6 + // 275: ldc com/bytedance/sandboxapp/protocol/service/m/a + // 277: invokevirtual getService : (Ljava/lang/Class;)Lcom/bytedance/sandboxapp/b/b; + // 280: astore_3 + // 281: aload_3 + // 282: ldc 'miniAppContext.getServic…iceInterface::class.java)' + // 284: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 287: aload_3 + // 288: checkcast com/bytedance/sandboxapp/protocol/service/m/a + // 291: astore_3 + // 292: aload_3 + // 293: invokeinterface useWebVideo : ()Z + // 298: ifne -> 633 + // 301: iconst_1 + // 302: istore_2 + // 303: goto -> 306 + // 306: aload #5 + // 308: ldc 'isNativeVideoView' + // 310: iload_2 + // 311: invokestatic valueOf : (Z)Ljava/lang/String; + // 314: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 319: pop + // 320: aload_3 + // 321: invokeinterface useWebLivePlayer : ()Z + // 326: ifne -> 638 + // 329: iconst_1 + // 330: istore_2 + // 331: goto -> 334 + // 334: aload #5 + // 336: ldc 'isNativeLivePlayer' + // 338: iload_2 + // 339: invokestatic valueOf : (Z)Ljava/lang/String; + // 342: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 347: pop + // 348: aload #5 + // 350: ldc 'isRenderInBrowser' + // 352: aload_3 + // 353: invokeinterface isRenderInBrowser : ()Z + // 358: invokestatic valueOf : (Z)Ljava/lang/String; + // 361: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 366: pop + // 367: getstatic com/tt/miniapphost/render/export/TTWebSdkWrapper.INSTANCE : Lcom/tt/miniapphost/render/export/TTWebSdkWrapper; + // 370: invokevirtual isTTWebView : ()Z + // 373: istore_2 + // 374: aload #5 + // 376: ldc 'isTTWebView' + // 378: iload_2 + // 379: invokestatic valueOf : (Z)Ljava/lang/String; + // 382: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 387: pop + // 388: iload_2 + // 389: ifeq -> 398 + // 392: aload_0 + // 393: aload #5 + // 395: invokespecial getTTWebViewInfo : (Ljava/util/Map;)V + // 398: invokestatic getInst : ()Lcom/tt/miniapp/manager/basebundle/BaseBundleManager; + // 401: aload_1 + // 402: invokevirtual getSdkCurrentVersionStr : (Landroid/content/Context;)Ljava/lang/String; + // 405: astore_1 + // 406: aload_1 + // 407: ldc 'BaseBundleManager.getIns…urrentVersionStr(context)' + // 409: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 412: aload #5 + // 414: ldc 'baseBundleVersion' + // 416: aload_1 + // 417: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 422: pop + // 423: invokestatic debug : ()Z + // 426: ifeq -> 567 + // 429: aload #5 + // 431: ldc 'iHostVersion' + // 433: ldc '3.3.9' + // 435: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 440: pop + // 441: aload #5 + // 443: ldc 'littleAppVersion' + // 445: ldc '3.7.4-tiktok' + // 447: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 452: pop + // 453: aload #5 + // 455: ldc 'littleGameVersion' + // 457: ldc '3.7.4' + // 459: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 464: pop + // 465: aload #5 + // 467: ldc 'heliumVersion' + // 469: ldc '3.7.1-douyin' + // 471: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 476: pop + // 477: aload #5 + // 479: ldc 'heliumRTCVersion' + // 481: ldc '3.4.0' + // 483: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 488: pop + // 489: aload #5 + // 491: ldc 'jsBindingVersion' + // 493: ldc '3.4.0' + // 495: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 500: pop + // 501: aload #5 + // 503: ldc 'baseDownloadVersion' + // 505: ldc '2.44.0' + // 507: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 512: pop + // 513: aload #5 + // 515: ldc 'adVersion' + // 517: ldc '2.48.0' + // 519: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 524: pop + // 525: aload #5 + // 527: ldc 'i18NVersion' + // 529: ldc '3.6.0' + // 531: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 536: pop + // 537: goto -> 567 + // 540: astore_1 + // 541: ldc 'DebugInfoUtil' + // 543: iconst_1 + // 544: anewarray java/lang/Object + // 547: dup + // 548: iconst_0 + // 549: aload_1 + // 550: aastore + // 551: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 554: ldc 'DebugInfoUtil' + // 556: iconst_1 + // 557: anewarray java/lang/Object + // 560: dup + // 561: iconst_0 + // 562: aload_1 + // 563: aastore + // 564: invokestatic outputError : (Ljava/lang/String;[Ljava/lang/Object;)V + // 567: aload #5 + // 569: invokeinterface keySet : ()Ljava/util/Set; + // 574: checkcast java/lang/Iterable + // 577: ldc_w '\\n' + // 580: checkcast java/lang/CharSequence + // 583: aconst_null + // 584: aconst_null + // 585: iconst_0 + // 586: aconst_null + // 587: new com/tt/miniapp/debug/DebugInfoUtil$generateDebugInfo$1 + // 590: dup + // 591: aload #5 + // 593: invokespecial : (Ljava/util/Map;)V + // 596: checkcast d/f/a/b + // 599: bipush #30 + // 601: aconst_null + // 602: invokestatic a : (Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Ld/f/a/b;ILjava/lang/Object;)Ljava/lang/String; + // 605: astore_1 + // 606: aload_1 + // 607: putstatic com/tt/miniapp/debug/DebugInfoUtil.sInfo : Ljava/lang/String; + // 610: aload_1 + // 611: ifnull -> 616 + // 614: aload_1 + // 615: areturn + // 616: new d/u + // 619: dup + // 620: ldc 'null cannot be cast to non-null type kotlin.String' + // 622: invokespecial : (Ljava/lang/String;)V + // 625: athrow + // 626: ldc_w '' + // 629: astore_3 + // 630: goto -> 86 + // 633: iconst_0 + // 634: istore_2 + // 635: goto -> 306 + // 638: iconst_0 + // 639: istore_2 + // 640: goto -> 334 + // Exception table: + // from to target type + // 36 65 540 finally + // 69 75 540 finally + // 86 253 540 finally + // 257 260 540 finally + // 260 301 540 finally + // 306 329 540 finally + // 334 367 540 finally + // 367 388 540 finally + // 392 398 540 finally + // 398 537 540 finally + } + + private final void getTTWebViewInfo(Map paramMap) { + // Byte code: + // 0: invokestatic getInst : ()Lcom/tt/miniapp/AppbrandApplicationImpl; + // 3: astore_2 + // 4: aload_2 + // 5: ldc 'AppbrandApplicationImpl.getInst()' + // 7: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 10: aload_2 + // 11: invokevirtual getWebViewManager : ()Lcom/tt/miniapp/WebViewManager; + // 14: astore_2 + // 15: aload_2 + // 16: ifnull -> 160 + // 19: aload_2 + // 20: invokevirtual getCurrentIRender : ()Lcom/tt/miniapp/WebViewManager$IRender; + // 23: astore_2 + // 24: aload_2 + // 25: ifnull -> 160 + // 28: aload_2 + // 29: invokeinterface getWebView : ()Landroid/webkit/WebView; + // 34: astore_2 + // 35: aload_2 + // 36: ifnull -> 160 + // 39: aload_2 + // 40: invokevirtual getSettings : ()Landroid/webkit/WebSettings; + // 43: astore_2 + // 44: goto -> 47 + // 47: aload_2 + // 48: ifnull -> 138 + // 51: aload_2 + // 52: invokevirtual getUserAgentString : ()Ljava/lang/String; + // 55: astore_2 + // 56: new d/m/l + // 59: dup + // 60: ldc_w 'TTWebView/([0-9]*)' + // 63: invokespecial : (Ljava/lang/String;)V + // 66: astore_3 + // 67: aload_2 + // 68: ldc_w 'userAgentString' + // 71: invokestatic a : (Ljava/lang/Object;Ljava/lang/String;)V + // 74: aload_3 + // 75: aload_2 + // 76: checkcast java/lang/CharSequence + // 79: iconst_0 + // 80: iconst_2 + // 81: aconst_null + // 82: invokestatic findAll$default : (Ld/m/l;Ljava/lang/CharSequence;IILjava/lang/Object;)Ld/l/g; + // 85: invokestatic f : (Ld/l/g;)Ljava/util/List; + // 88: astore_2 + // 89: aload_2 + // 90: checkcast java/util/Collection + // 93: invokeinterface isEmpty : ()Z + // 98: iconst_1 + // 99: ixor + // 100: ifeq -> 159 + // 103: aload_1 + // 104: ldc_w 'ttWebViewVersion' + // 107: aload_2 + // 108: iconst_0 + // 109: invokeinterface get : (I)Ljava/lang/Object; + // 114: checkcast d/m/j + // 117: invokeinterface d : ()Ljava/util/List; + // 122: iconst_1 + // 123: invokeinterface get : (I)Ljava/lang/Object; + // 128: checkcast java/lang/String + // 131: invokeinterface put : (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + // 136: pop + // 137: return + // 138: return + // 139: astore_1 + // 140: ldc 'DebugInfoUtil' + // 142: iconst_2 + // 143: anewarray java/lang/Object + // 146: dup + // 147: iconst_0 + // 148: ldc_w 'parse ttWebView version error:' + // 151: aastore + // 152: dup + // 153: iconst_1 + // 154: aload_1 + // 155: aastore + // 156: invokestatic e : (Ljava/lang/String;[Ljava/lang/Object;)V + // 159: return + // 160: aconst_null + // 161: astore_2 + // 162: goto -> 47 + // Exception table: + // from to target type + // 0 15 139 finally + // 19 24 139 finally + // 28 35 139 finally + // 39 44 139 finally + // 51 137 139 finally + } + + static final class DebugInfoUtil$generateDebugInfo$1 extends m implements b { + DebugInfoUtil$generateDebugInfo$1(Map param1Map) { + super(1); + } + + public final String invoke(String param1String) { + l.b(param1String, "it"); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(param1String); + stringBuilder.append(": "); + stringBuilder.append((String)this.$infoMap.get(param1String)); + return stringBuilder.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\DebugInfoUtil.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/DebugManager.java b/df_miniapp/classes/com/tt/miniapp/debug/DebugManager.java new file mode 100644 index 0000000..bffe67f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/DebugManager.java @@ -0,0 +1,248 @@ +package com.tt.miniapp.debug; + +import android.os.Handler; +import android.os.Looper; +import android.os.Message; +import android.webkit.WebView; +import com.he.JsRunLoop; +import com.he.jsbinding.JsContext; +import com.he.jsbinding.JsEngine; +import com.he.jsbinding.JsObject; +import com.he.v8_inspect.Inspect; +import com.tt.miniapp.debug.appData.AppData; +import com.tt.miniapp.thread.HandlerThreadUtil; +import com.tt.miniapp.util.ChannelUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.util.DebugUtil; +import org.json.JSONException; +import org.json.JSONObject; + +public class DebugManager { + private static DebugManager sInstance; + + public String jsDebugURL; + + private Handler mDebugHandler; + + public boolean mHasComplete; + + public boolean mIsDebugOpen; + + public boolean mIsRemoteDebug; + + public boolean mRemoteDebugEnable; + + public RemoteDebugManager mRemoteDebugManager; + + public boolean mTmaDebugOpen; + + public WebviewDebugManager mWebviewDebugManager; + + public DebugManager() { + boolean bool; + if (DebugUtil.debug() || ChannelUtil.isLocalTest()) { + bool = true; + } else { + bool = false; + } + this.mIsDebugOpen = bool; + this.mIsRemoteDebug = false; + this.mRemoteDebugEnable = false; + this.mTmaDebugOpen = false; + this.mDebugHandler = null; + this.mRemoteDebugManager = new RemoteDebugManager(); + this.mWebviewDebugManager = new WebviewDebugManager(); + } + + public static DebugManager getInst() { + // Byte code: + // 0: ldc com/tt/miniapp/debug/DebugManager + // 2: monitorenter + // 3: getstatic com/tt/miniapp/debug/DebugManager.sInstance : Lcom/tt/miniapp/debug/DebugManager; + // 6: ifnonnull -> 40 + // 9: ldc com/tt/miniapp/debug/DebugManager + // 11: monitorenter + // 12: getstatic com/tt/miniapp/debug/DebugManager.sInstance : Lcom/tt/miniapp/debug/DebugManager; + // 15: ifnonnull -> 28 + // 18: new com/tt/miniapp/debug/DebugManager + // 21: dup + // 22: invokespecial : ()V + // 25: putstatic com/tt/miniapp/debug/DebugManager.sInstance : Lcom/tt/miniapp/debug/DebugManager; + // 28: ldc com/tt/miniapp/debug/DebugManager + // 30: monitorexit + // 31: goto -> 40 + // 34: astore_0 + // 35: ldc com/tt/miniapp/debug/DebugManager + // 37: monitorexit + // 38: aload_0 + // 39: athrow + // 40: getstatic com/tt/miniapp/debug/DebugManager.sInstance : Lcom/tt/miniapp/debug/DebugManager; + // 43: astore_0 + // 44: ldc com/tt/miniapp/debug/DebugManager + // 46: monitorexit + // 47: aload_0 + // 48: areturn + // 49: astore_0 + // 50: ldc com/tt/miniapp/debug/DebugManager + // 52: monitorexit + // 53: aload_0 + // 54: athrow + // Exception table: + // from to target type + // 3 12 49 finally + // 12 28 34 finally + // 28 31 34 finally + // 35 38 34 finally + // 38 40 49 finally + // 40 44 49 finally + } + + private void initHandler(final DebugCallback callback) { + this.mDebugHandler = new Handler(HandlerThreadUtil.getBackgroundHandlerThread().getLooper()) { + public void handleMessage(Message param1Message) { + super.handleMessage(param1Message); + int i = param1Message.what; + if (i != -1000) { + if (i != -1) { + if (i != 1000) { + if (i != 2000) + return; + try { + JSONObject jSONObject = (JSONObject)param1Message.obj; + StringBuilder stringBuilder1 = new StringBuilder("handleMessage: pageSwitchInfo: "); + stringBuilder1.append(jSONObject); + AppBrandLogger.d("DebugManager", new Object[] { stringBuilder1.toString() }); + DebugManager.this.mWebviewDebugManager.getCurWebviewTarget(jSONObject.getString("mPageContent"), jSONObject.getInt("webviewId")); + return; + } catch (JSONException jSONException) { + AppBrandLogger.e("DebugManager", new Object[] { jSONException }); + return; + } + } + DebugManager debugManager = DebugManager.this; + debugManager.mRemoteDebugEnable = true; + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(DebugManager.this.mRemoteDebugManager.getBaseDebugURL()); + stringBuilder.append("&cursor=v8&role=phone"); + debugManager.jsDebugURL = stringBuilder.toString(); + DebugManager.this.callComplete(true, callback); + return; + } + DebugManager.this.mRemoteDebugManager.closeRemoteWs("time over 10 second"); + DebugManager.this.callComplete(false, callback); + return; + } + DebugManager.this.callComplete(false, callback); + } + }; + } + + private void openJsDebug(String paramString, JsContext paramJsContext) { + StringBuilder stringBuilder = new StringBuilder("jsDebugURL: "); + stringBuilder.append(paramString); + AppBrandLogger.d("DebugManager", new Object[] { stringBuilder.toString() }); + Inspect.setRemoteDebugURL(paramString); + Inspect.start(); + Inspect.onNewIsolate("LittleApp", "0"); + (getInst()).mTmaDebugOpen = true; + JsObject jsObject2 = paramJsContext.global(); + final JsObject Math = jsObject2.getObject("Math"); + jsObject2.release(); + final Handler handler = ((JsRunLoop)Thread.currentThread()).getHandler(); + handler.post(new Runnable() { + public void run() { + handler.postDelayed(this, 17L); + Math.callMethod("random", 0); + JsEngine.popResult(); + } + }); + } + + public void addAppData(String paramString, int paramInt) { + AppData appData = this.mRemoteDebugManager.getAppDataReporter().parseAppData(paramString, paramInt); + if (appData != null) + this.mRemoteDebugManager.getAppDataReporter().addAppData(appData); + } + + public void callComplete(boolean paramBoolean, final DebugCallback callback) { + if (paramBoolean || DebugUtil.debug() || ChannelUtil.isLocalTest()) { + paramBoolean = true; + } else { + paramBoolean = false; + } + this.mIsDebugOpen = paramBoolean; + AppbrandContext.mainHandler.post(new Runnable() { + public void run() { + if (DebugManager.this.mIsDebugOpen) + WebView.setWebContentsDebuggingEnabled(true); + if (!DebugManager.this.mHasComplete) { + DebugManager.this.mHasComplete = true; + callback.complete(); + } + } + }); + } + + public Handler getDebugHandler() { + return this.mDebugHandler; + } + + public RemoteDebugManager getRemoteDebugManager() { + return this.mRemoteDebugManager; + } + + public void initRemoteDebugInfo(AppInfoEntity paramAppInfoEntity) { + this.mIsRemoteDebug = this.mRemoteDebugManager.initRemoteDebugInfo(paramAppInfoEntity); + AppBrandLogger.i("DebugManager", new Object[] { "mIsRemoteDebug ", Boolean.valueOf(this.mIsRemoteDebug) }); + } + + public void openDebug(DebugCallback paramDebugCallback) { + AppBrandLogger.d("DebugManager", new Object[] { "open debug" }); + if (this.mIsRemoteDebug) { + initHandler(paramDebugCallback); + this.mRemoteDebugManager.openRemoteWsClient(this.mDebugHandler); + return; + } + this.mHasComplete = true; + paramDebugCallback.complete(); + } + + public void openDebugIfNeed(JsContext paramJsContext) { + if (!this.mIsDebugOpen) + return; + getInst().openJsDebug(this.jsDebugURL, paramJsContext); + } + + public void removeWebviewId(int paramInt) { + this.mWebviewDebugManager.removeWebviewId(paramInt); + } + + public void sendAppData(int paramInt) { + AppData appData = this.mRemoteDebugManager.getAppDataReporter().getAppData(paramInt); + sendMessageToIDE(this.mRemoteDebugManager.getAppDataReporter().geneResult(appData)); + } + + public void sendMessageByRemoteWs(String paramString) { + this.mRemoteDebugManager.sendMessageByRemoteWs(paramString); + } + + public void sendMessageToCurrentWebview(String paramString) { + this.mWebviewDebugManager.sendMessageToCurrentWebview(paramString); + } + + public void sendMessageToIDE(String paramString) { + this.mRemoteDebugManager.sendMessageToIDE(paramString); + } + + public static interface DebugCallback { + void complete(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\DebugManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/PerformanceService.java b/df_miniapp/classes/com/tt/miniapp/debug/PerformanceService.java new file mode 100644 index 0000000..6394d2c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/PerformanceService.java @@ -0,0 +1,181 @@ +package com.tt.miniapp.debug; + +import android.os.HandlerThread; +import com.storage.async.Action; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.AppbrandServiceManager; +import com.tt.miniapp.LifeCycleManager; +import com.tt.miniapp.LifeCycleManager.LifecycleInterest; +import com.tt.miniapp.monitor.BaseMonitorTask; +import com.tt.miniapp.monitor.MonitorHandler; +import com.tt.miniapp.thread.HandlerThreadUtil; +import com.tt.miniapp.thread.ThreadPools; +import com.tt.miniapp.thread.ThreadUtil; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.process.HostProcessBridge; +import com.tt.miniapphost.util.DebugUtil; +import java.util.ArrayList; +import java.util.List; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class PerformanceService extends AppbrandServiceManager.ServiceBase { + private MonitorHandler mMonitorHandler; + + private HandlerThread mMonitorThread; + + private List timingArray = new ArrayList(); + + private PerformanceService(AppbrandApplicationImpl paramAppbrandApplicationImpl) { + super(paramAppbrandApplicationImpl); + } + + public void cancelReportPerformance() { + MonitorHandler monitorHandler = this.mMonitorHandler; + if (monitorHandler != null) { + AppBrandLogger.d("PerformanceService", new Object[] { "cancelReportPerformance ", monitorHandler.toString() }); + this.mMonitorHandler.cancel(); + } + } + + public PerformanceTimingObj createPerformanceTimingObj(String paramString, long paramLong) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: new com/tt/miniapp/debug/PerformanceService$PerformanceTimingObj + // 5: dup + // 6: aload_1 + // 7: lload_2 + // 8: invokespecial : (Ljava/lang/String;J)V + // 11: astore_1 + // 12: aload_0 + // 13: getfield timingArray : Ljava/util/List; + // 16: aload_1 + // 17: invokeinterface add : (Ljava/lang/Object;)Z + // 22: pop + // 23: aload_0 + // 24: monitorexit + // 25: aload_1 + // 26: areturn + // 27: astore_1 + // 28: aload_0 + // 29: monitorexit + // 30: aload_1 + // 31: athrow + // Exception table: + // from to target type + // 2 23 27 finally + } + + public MonitorHandler getMonitorHandler() { + return this.mMonitorHandler; + } + + public JSONArray getPerformanceTimingArray() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: new org/json/JSONArray + // 5: dup + // 6: invokespecial : ()V + // 9: astore_1 + // 10: aload_0 + // 11: getfield timingArray : Ljava/util/List; + // 14: invokeinterface iterator : ()Ljava/util/Iterator; + // 19: astore_2 + // 20: aload_2 + // 21: invokeinterface hasNext : ()Z + // 26: ifeq -> 49 + // 29: aload_1 + // 30: aload_2 + // 31: invokeinterface next : ()Ljava/lang/Object; + // 36: checkcast com/tt/miniapp/debug/PerformanceService$PerformanceTimingObj + // 39: invokevirtual toJSON : ()Lorg/json/JSONObject; + // 42: invokevirtual put : (Ljava/lang/Object;)Lorg/json/JSONArray; + // 45: pop + // 46: goto -> 20 + // 49: aload_0 + // 50: monitorexit + // 51: aload_1 + // 52: areturn + // 53: astore_1 + // 54: aload_0 + // 55: monitorexit + // 56: goto -> 61 + // 59: aload_1 + // 60: athrow + // 61: goto -> 59 + // Exception table: + // from to target type + // 2 20 53 finally + // 20 46 53 finally + } + + @LifecycleInterest({LifeCycleManager.LifeCycleEvent.ON_APP_INFO_INITED}) + public void onAppInfoInited(LifeCycleManager.LifeCycleEvent paramLifeCycleEvent, final AppInfoEntity appInfo) { + ThreadUtil.runOnWorkThread(new Action() { + public void act() { + boolean bool; + if (HostProcessBridge.isReportPerformance() || DebugUtil.debug()) { + bool = true; + } else { + bool = false; + } + BaseMonitorTask.isReportPerformance = bool; + if (!bool && !appInfo.isLocalTest()) { + PerformanceService.this.cancelReportPerformance(); + return; + } + MonitorHandler.setMinimunInterval(5000L); + PerformanceService.this.reportPerformance(); + } + }, ThreadPools.defaults()); + } + + public void reportPerformance() { + if (this.mMonitorHandler == null) { + this.mMonitorThread = HandlerThreadUtil.getBackgroundHandlerThread(); + this.mMonitorHandler = new MonitorHandler(this.mMonitorThread.getLooper()); + } + this.mMonitorHandler.start(); + } + + public static class PerformanceTimingObj { + Long mEndTime; + + String mName; + + long mStartTime; + + PerformanceTimingObj(String param1String, long param1Long) { + this.mName = param1String; + this.mStartTime = param1Long; + } + + public void setEndTime(long param1Long) { + this.mEndTime = Long.valueOf(param1Long); + } + + public JSONObject toJSON() { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("name", this.mName); + jSONObject.put("startTime", this.mStartTime); + if (this.mEndTime != null) + jSONObject.put("endTime", this.mEndTime); + return jSONObject; + } catch (JSONException jSONException) { + AppBrandLogger.e("PerformanceService", new Object[] { jSONException }); + return null; + } + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\PerformanceService.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/RemoteDebugManager.java b/df_miniapp/classes/com/tt/miniapp/debug/RemoteDebugManager.java new file mode 100644 index 0000000..8aa2784 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/RemoteDebugManager.java @@ -0,0 +1,218 @@ +package com.tt.miniapp.debug; + +import android.os.Handler; +import android.text.TextUtils; +import com.he.jsbinding.JsContext; +import com.he.jsbinding.JsScopedContext; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.debug.appData.AppData; +import com.tt.miniapp.debug.appData.AppDataReporter; +import com.tt.miniapp.debug.storage.StorageReporter; +import com.tt.miniapp.jsbridge.JsRuntimeManager; +import com.tt.miniapp.storage.Storage; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.entity.AppInfoEntity; +import com.tt.miniapphost.util.DebugUtil; +import java.io.IOException; +import okhttp3.ac; +import okhttp3.ae; +import okhttp3.ai; +import okhttp3.aj; +import okhttp3.y; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class RemoteDebugManager { + public AppDataReporter appDataReporter = new AppDataReporter(); + + private String baseDebugURL; + + public ai remoteWs; + + public StorageReporter storageReporter = new StorageReporter(); + + public void clearStorage(int paramInt, boolean paramBoolean) throws JSONException { + sendMessageByRemoteWs(this.storageReporter.clearStorage(paramInt, paramBoolean)); + } + + public void closeRemoteWs(String paramString) { + AppBrandLogger.e("RemoteDebugManager", new Object[] { "close_remote_ws", paramString }); + ai ai1 = this.remoteWs; + if (ai1 != null) + ai1.b(3999, paramString); + } + + public AppDataReporter getAppDataReporter() { + return this.appDataReporter; + } + + public String getBaseDebugURL() { + return this.baseDebugURL; + } + + public void getDOMStorageItems(int paramInt, JSONArray paramJSONArray) throws JSONException { + sendMessageByRemoteWs(this.storageReporter.getDOMStorageItems(paramInt, paramJSONArray)); + } + + public boolean initRemoteDebugInfo(AppInfoEntity paramAppInfoEntity) { + if (paramAppInfoEntity != null && !TextUtils.isEmpty(paramAppInfoEntity.session) && !TextUtils.isEmpty(paramAppInfoEntity.gtoken) && !TextUtils.isEmpty(paramAppInfoEntity.roomid)) { + StringBuilder stringBuilder = new StringBuilder("ws://gate.snssdk.com/debug_room?session="); + stringBuilder.append(paramAppInfoEntity.session); + stringBuilder.append("&gToken="); + stringBuilder.append(paramAppInfoEntity.gtoken); + stringBuilder.append("&room_id="); + stringBuilder.append(paramAppInfoEntity.roomid); + stringBuilder.append("&need_cache=1"); + this.baseDebugURL = stringBuilder.toString(); + return true; + } + return false; + } + + public void openRemoteWsClient(final Handler debugHandler) { + StringBuilder stringBuilder1 = new StringBuilder(); + stringBuilder1.append(this.baseDebugURL); + stringBuilder1.append("&cursor=webview&role=phone"); + String str = stringBuilder1.toString(); + StringBuilder stringBuilder2 = new StringBuilder("openRemoteWsClient: "); + stringBuilder2.append(str); + AppBrandLogger.d("RemoteDebugManager", new Object[] { stringBuilder2.toString() }); + y y = (new y.a()).a(); + ac ac = (new ac.a()).a(str).c(); + debugHandler.sendEmptyMessageDelayed(-1, 10000L); + y.a(ac, new aj() { + public void onClosed(ai param1ai, int param1Int, String param1String) { + StringBuilder stringBuilder = new StringBuilder("remoteWsClient code: "); + stringBuilder.append(param1Int); + stringBuilder.append(" reason: "); + stringBuilder.append(param1String); + AppBrandLogger.d("RemoteDebugManager", new Object[] { stringBuilder.toString() }); + RemoteDebugManager.this.remoteWs = null; + debugHandler.sendEmptyMessage(-1000); + } + + public void onFailure(ai param1ai, Throwable param1Throwable, ae param1ae) { + StringBuilder stringBuilder = new StringBuilder("remoteWsClient onFailure"); + stringBuilder.append(param1Throwable.toString()); + AppBrandLogger.d("RemoteDebugManager", new Object[] { stringBuilder.toString() }); + debugHandler.sendEmptyMessage(-1000); + } + + public void onMessage(ai param1ai, String param1String) { + StringBuilder stringBuilder = new StringBuilder("onMessage remoteWsClient "); + stringBuilder.append(param1String); + AppBrandLogger.d("RemoteDebugManager", new Object[] { stringBuilder.toString() }); + if (TextUtils.equals(param1String, "entrustDebug")) { + if (debugHandler.hasMessages(-1)) + debugHandler.removeMessages(-1); + debugHandler.sendEmptyMessage(1000); + return; + } + if (TextUtils.equals(param1String, "cancelDebug")) { + if (debugHandler.hasMessages(-1)) + debugHandler.removeMessages(-1); + RemoteDebugManager.this.closeRemoteWs(param1String); + debugHandler.sendEmptyMessage(-1000); + return; + } + try { + final AppData appData; + JSONArray jSONArray; + String str1; + JSONObject jSONObject2 = new JSONObject(param1String); + String str2 = jSONObject2.optString("method"); + JSONObject jSONObject1 = jSONObject2.optJSONObject("params"); + int i = jSONObject2.optInt("id"); + if (TextUtils.equals(str2, "AppData")) { + appData = AppData.parseJson(jSONObject1); + ((JsRuntimeManager)AppbrandApplicationImpl.getInst().getService(JsRuntimeManager.class)).getCurrentRuntime().executeInJsThread(new JsContext.ScopeCallback() { + public void run(JsScopedContext param2JsScopedContext) { + try { + StringBuilder stringBuilder = new StringBuilder("var pageStacks = getCurrentPages();\nvar currentPages = pageStacks[pageStacks.length-1];\ncurrentPages.setData("); + stringBuilder.append(appData.data); + stringBuilder.append("); "); + param2JsScopedContext.eval(stringBuilder.toString(), null); + RemoteDebugManager.this.appDataReporter.addAppData(appData); + return; + } catch (Exception exception) { + DebugUtil.outputError("RemoteDebugManager", new Object[] { "AppData setData fail", exception }); + return; + } + } + }); + return; + } + if (TextUtils.equals(str2, "DOMStorage.getDOMStorageItems")) { + RemoteDebugManager.this.storageReporter.setStorageId(appData.optJSONObject("storageId")); + jSONArray = Storage.getKeys(); + RemoteDebugManager.this.getDOMStorageItems(i, jSONArray); + return; + } + boolean bool = TextUtils.equals(str2, "DOMStorage.removeDOMStorageItem"); + if (bool) { + str1 = jSONArray.optString("key"); + bool = Storage.removeStorage(str1); + RemoteDebugManager.this.removeDOMStorageItem(i, bool, str1); + return; + } + if (TextUtils.equals(str2, "DOMStorage.setDOMStorageItem")) { + String str = str1.optString("key"); + str1 = str1.optString("value"); + try { + str2 = Storage.getValue(str); + bool = Storage.setValue(str, str1, "String"); + RemoteDebugManager.this.setDOMStorageItem(i, bool, str, str2, str1); + return; + } catch (IOException iOException) { + return; + } + } + if (TextUtils.equals(str2, "DOMStorage.clear")) { + bool = Storage.clearStorage(); + RemoteDebugManager.this.clearStorage(i, bool); + return; + } + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageToCurrentWebview(param1String); + } + + public void onOpen(ai param1ai, ae param1ae) { + AppBrandLogger.d("RemoteDebugManager", new Object[] { "onOpen remoteWsClient" }); + RemoteDebugManager.this.remoteWs = param1ai; + } + }); + } + + public void removeDOMStorageItem(int paramInt, boolean paramBoolean, String paramString) throws JSONException { + sendMessageByRemoteWs(this.storageReporter.removeDOMStorageItem(paramInt, paramBoolean, paramString)); + } + + public void sendMessageByRemoteWs(String paramString) { + ai ai1 = this.remoteWs; + if (ai1 != null) { + ai1.b(paramString); + AppBrandLogger.d("RemoteDebugManager", new Object[] { paramString }); + } + } + + public void sendMessageToIDE(String paramString) { + ai ai1 = this.remoteWs; + if (ai1 != null) { + StringBuilder stringBuilder = new StringBuilder("__IDE__"); + stringBuilder.append(paramString); + ai1.b(stringBuilder.toString()); + AppBrandLogger.d("RemoteDebugManager", new Object[] { paramString }); + } + } + + public void setDOMStorageItem(int paramInt, boolean paramBoolean, String paramString1, String paramString2, String paramString3) throws JSONException { + sendMessageByRemoteWs(this.storageReporter.setDOMStorageItem(paramInt, paramBoolean, paramString1, paramString2, paramString3)); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\RemoteDebugManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/SwitchManager.java b/df_miniapp/classes/com/tt/miniapp/debug/SwitchManager.java new file mode 100644 index 0000000..d2c16e1 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/SwitchManager.java @@ -0,0 +1,58 @@ +package com.tt.miniapp.debug; + +import android.content.Context; +import android.content.SharedPreferences; +import android.text.TextUtils; +import com.tt.miniapp.AppbrandApplicationImpl; +import com.tt.miniapp.AppbrandServiceManager; +import com.tt.miniapp.mmkv.KVUtil; +import com.tt.miniapphost.AppbrandContext; +import com.tt.miniapphost.entity.AppInfoEntity; + +public class SwitchManager extends AppbrandServiceManager.ServiceBase { + private SwitchManager(AppbrandApplicationImpl paramAppbrandApplicationImpl) { + super(paramAppbrandApplicationImpl); + } + + private SharedPreferences getPerformanceConfig(Context paramContext) { + return KVUtil.getSharedPreferences(paramContext, "performance_config"); + } + + private SharedPreferences getVConsoleConfig(Context paramContext) { + return KVUtil.getSharedPreferences(paramContext, "vconsole_config"); + } + + public boolean isPerformanceSwitchOn() { + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + return (appInfoEntity == null) ? false : (!appInfoEntity.isLocalTest() ? false : getPerformanceConfig((Context)AppbrandContext.getInst().getApplicationContext()).getBoolean(appInfoEntity.appId, false)); + } + + public boolean isVConsoleSwitchOn() { + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + return (appInfoEntity == null) ? false : (!appInfoEntity.isLocalTest() ? false : getVConsoleConfig((Context)AppbrandContext.getInst().getApplicationContext()).getBoolean(appInfoEntity.appId, false)); + } + + public void setPerformanceSwithOn(boolean paramBoolean) { + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + if (appInfoEntity != null) { + String str = appInfoEntity.appId; + if (!TextUtils.isEmpty(str)) + getPerformanceConfig((Context)AppbrandContext.getInst().getApplicationContext()).edit().putBoolean(str, paramBoolean).commit(); + } + } + + public void setVConsoleSwitchOn(Context paramContext, boolean paramBoolean) { + AppInfoEntity appInfoEntity = this.mApp.getAppInfo(); + if (appInfoEntity != null) { + String str = appInfoEntity.appId; + if (!TextUtils.isEmpty(str)) + getVConsoleConfig(paramContext).edit().putBoolean(str, paramBoolean).commit(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\SwitchManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/WebviewDebugManager.java b/df_miniapp/classes/com/tt/miniapp/debug/WebviewDebugManager.java new file mode 100644 index 0000000..7c4730e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/WebviewDebugManager.java @@ -0,0 +1,200 @@ +package com.tt.miniapp.debug; + +import android.os.Process; +import android.util.SparseArray; +import com.tt.miniapp.websocket.UnixSocketFactory; +import com.tt.miniapphost.AppBrandLogger; +import java.io.IOException; +import java.net.Proxy; +import java.net.ProxySelector; +import java.net.SocketAddress; +import java.net.URI; +import java.util.HashMap; +import java.util.List; +import javax.net.SocketFactory; +import okhttp3.ac; +import okhttp3.ae; +import okhttp3.ai; +import okhttp3.aj; +import okhttp3.e; +import okhttp3.f; +import okhttp3.o; +import okhttp3.t; +import okhttp3.y; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class WebviewDebugManager { + public String curWsId; + + public Boolean isFirstConnect = Boolean.valueOf(true); + + private int pid = Process.myPid(); + + public SparseArray webviewIds = new SparseArray(); + + public HashMap webviewWsHash = new HashMap(); + + private y buildHttpClient(UnixSocketFactory paramUnixSocketFactory) { + y.a a = new y.a(); + if (paramUnixSocketFactory != null) { + a.l = (SocketFactory)paramUnixSocketFactory; + y.a a1 = a.a((o)paramUnixSocketFactory); + a1.h = new ProxySelector() { + public void connectFailed(URI param1URI, SocketAddress param1SocketAddress, IOException param1IOException) { + AppBrandLogger.e("WebviewDebugManager", new Object[] { param1IOException.getMessage() }); + } + + public List select(URI param1URI) { + return null; + } + }; + return a1.a(); + } + throw new NullPointerException("socketFactory == null"); + } + + public void connectToNewWebviewWs(final int webviewId) { + try { + UnixSocketFactory unixSocketFactory = new UnixSocketFactory(); + StringBuilder stringBuilder = new StringBuilder("webview_devtools_remote_"); + stringBuilder.append(this.pid); + t t = unixSocketFactory.urlForPath(stringBuilder.toString(), "devtools", "page", this.curWsId); + ac ac = (new ac.a()).a(t).c(); + final String wsId = this.curWsId; + buildHttpClient(unixSocketFactory).a(ac, new aj() { + public void onClosed(ai param1ai, int param1Int, String param1String) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(wsId); + stringBuilder.append(" webviewWsClient code: "); + stringBuilder.append(param1Int); + stringBuilder.append(" reason: "); + stringBuilder.append(param1String); + AppBrandLogger.d("WebviewDebugManager", new Object[] { stringBuilder.toString() }); + WebviewDebugManager.this.webviewWsHash.remove(wsId); + } + + public void onFailure(ai param1ai, Throwable param1Throwable, ae param1ae) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(wsId); + stringBuilder.append(" webviewWsClient onFailure "); + stringBuilder.append(param1Throwable.toString()); + AppBrandLogger.d("WebviewDebugManager", new Object[] { stringBuilder.toString() }); + WebviewDebugManager.this.webviewWsHash.remove(wsId); + } + + public void onMessage(ai param1ai, String param1String) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(wsId); + stringBuilder.append(" webviewWsClient "); + stringBuilder.append(param1String); + AppBrandLogger.d("WebviewDebugManager", new Object[] { stringBuilder.toString() }); + if (WebviewDebugManager.this.webviewWsHash.size() > 0) + try { + if ((new JSONObject(param1String)).get("method").equals("Inspector.detached")) { + WebviewDebugManager.this.webviewWsHash.remove(wsId); + return; + } + } catch (Exception exception) {} + DebugManager.getInst().sendMessageByRemoteWs(param1String); + } + + public void onOpen(ai param1ai, ae param1ae) { + AppBrandLogger.d("WebviewDebugManager", new Object[] { this.val$wsId, " webviewWsClient open" }); + WebviewDebugManager.this.webviewIds.put(webviewId, wsId); + WebviewDebugManager.this.webviewWsHash.put(wsId, param1ai); + if (!WebviewDebugManager.this.isFirstConnect.booleanValue()) { + DebugManager.getInst().sendMessageToIDE("reloadDevtool"); + WebviewDebugManager.this.sendMessageToCurrentWebview("{\"id\":991,\"method\":\"DOM.enable\"}"); + WebviewDebugManager.this.sendMessageToCurrentWebview("{\"id\":992,\"method\":\"CSS.enable\"}"); + WebviewDebugManager.this.sendMessageToCurrentWebview("{\"id\":993,\"method\":\"Overlay.enable\"}"); + WebviewDebugManager.this.sendMessageToCurrentWebview("{\"id\":994,\"method\":\"Overlay.setShowViewportSizeOnResize\",\"params\":{\"show\":true}"); + } else { + WebviewDebugManager.this.isFirstConnect = Boolean.valueOf(false); + DebugManager.getInst().sendMessageToIDE("webviewReady"); + } + DebugManager.getInst().sendAppData(webviewId); + } + }); + return; + } catch (Exception exception) { + AppBrandLogger.stacktrace(6, "WebviewDebugManager", exception.getStackTrace()); + return; + } + } + + public void getCurWebviewTarget(final String pageContent, final int webviewId) { + AppBrandLogger.d("WebviewDebugManager", new Object[] { "getCurWebviewTarget ", pageContent, " webviewId ", Integer.valueOf(webviewId) }); + String str = (String)this.webviewIds.get(webviewId); + if (str != null) { + this.curWsId = str; + DebugManager.getInst().sendMessageToIDE("reloadDevtool"); + DebugManager.getInst().sendAppData(webviewId); + return; + } + UnixSocketFactory unixSocketFactory = new UnixSocketFactory(); + StringBuilder stringBuilder = new StringBuilder("webview_devtools_remote_"); + stringBuilder.append(this.pid); + t t = unixSocketFactory.urlForPath(stringBuilder.toString(), "json"); + ac ac = (new ac.a()).a(t).b("Host", "").c(); + buildHttpClient(unixSocketFactory).a(ac).a(new f() { + public void onFailure(e param1e, IOException param1IOException) { + StringBuilder stringBuilder = new StringBuilder("onFailure: "); + stringBuilder.append(param1IOException.getMessage()); + AppBrandLogger.e("WebviewDebugManager", new Object[] { stringBuilder.toString() }); + WebviewDebugManager.this.getCurWebviewTarget(pageContent, webviewId); + } + + public void onResponse(e param1e, ae param1ae) throws IOException { + if (param1ae.g != null) { + String str = param1ae.g.string(); + } else { + param1e = null; + } + StringBuilder stringBuilder2 = new StringBuilder("onResponse: "); + stringBuilder2.append((String)param1e); + AppBrandLogger.d("WebviewDebugManager", new Object[] { stringBuilder2.toString() }); + try { + JSONArray jSONArray = new JSONArray((String)param1e); + for (int i = 0; i < jSONArray.length(); i++) { + JSONObject jSONObject = jSONArray.getJSONObject(i); + String str1 = jSONObject.get("url").toString(); + String str2 = jSONObject.get("id").toString(); + if (str1.contains(pageContent) && WebviewDebugManager.this.webviewWsHash.get(str2) == null) { + WebviewDebugManager.this.curWsId = str2; + break; + } + } + } catch (JSONException jSONException) {} + if (WebviewDebugManager.this.curWsId == null) { + WebviewDebugManager.this.getCurWebviewTarget(pageContent, webviewId); + return; + } + StringBuilder stringBuilder1 = new StringBuilder("curWsId"); + stringBuilder1.append(WebviewDebugManager.this.curWsId); + stringBuilder1.append(" webviewid: "); + stringBuilder1.append(webviewId); + AppBrandLogger.i("WebviewDebugManager", new Object[] { stringBuilder1.toString() }); + WebviewDebugManager.this.connectToNewWebviewWs(webviewId); + } + }); + } + + public void removeWebviewId(int paramInt) { + this.webviewIds.remove(paramInt); + } + + public void sendMessageToCurrentWebview(String paramString) { + if (this.webviewWsHash.get(this.curWsId) != null) { + ((ai)this.webviewWsHash.get(this.curWsId)).b(paramString); + AppBrandLogger.d("WebviewDebugManager", new Object[] { this.curWsId, paramString }); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\WebviewDebugManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/appData/AppData.java b/df_miniapp/classes/com/tt/miniapp/debug/appData/AppData.java new file mode 100644 index 0000000..aacbf60 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/appData/AppData.java @@ -0,0 +1,40 @@ +package com.tt.miniapp.debug.appData; + +import org.json.JSONException; +import org.json.JSONObject; + +public class AppData { + public String data; + + public String route; + + public int webviewId; + + public static AppData parseJson(JSONObject paramJSONObject) { + AppData appData = new AppData(); + appData.webviewId = paramJSONObject.optInt("__webviewId__"); + appData.data = paramJSONObject.optString("data"); + appData.route = paramJSONObject.optString("__route__"); + return appData; + } + + public static JSONObject toJson(AppData paramAppData) { + JSONObject jSONObject = new JSONObject(); + if (paramAppData != null) + try { + jSONObject.put("__route__", paramAppData.route); + jSONObject.put("data", paramAppData.data); + jSONObject.put("__webviewId__", paramAppData.webviewId); + return jSONObject; + } catch (JSONException jSONException) { + return jSONObject; + } + return jSONObject; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\appData\AppData.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/appData/AppDataReporter.java b/df_miniapp/classes/com/tt/miniapp/debug/appData/AppDataReporter.java new file mode 100644 index 0000000..7e2e5f3 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/appData/AppDataReporter.java @@ -0,0 +1,66 @@ +package com.tt.miniapp.debug.appData; + +import android.text.TextUtils; +import android.util.SparseArray; +import com.tt.miniapphost.AppBrandLogger; +import com.tt.miniapphost.AppbrandApplication; +import com.tt.miniapphost.util.DebugUtil; +import org.json.JSONException; +import org.json.JSONObject; + +public class AppDataReporter { + private SparseArray appDatas; + + public void addAppData(AppData paramAppData) { + if (this.appDatas == null) + this.appDatas = new SparseArray(); + AppBrandLogger.d("AppDataReporter", new Object[] { "data: ", paramAppData.data, "webviewId: ", Integer.valueOf(paramAppData.webviewId) }); + if (paramAppData.webviewId > 0) { + this.appDatas.put(paramAppData.webviewId, paramAppData); + return; + } + DebugUtil.outputError("AppDataReporter", new Object[] { "webviewId异常,AppData更新异常" }); + } + + public String geneResult(AppData paramAppData) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("params", AppData.toJson(paramAppData)); + jSONObject.put("method", "AppData"); + } catch (JSONException jSONException) {} + return jSONObject.toString(); + } + + public AppData getAppData(int paramInt) { + SparseArray sparseArray = this.appDatas; + return (sparseArray != null) ? (AppData)sparseArray.get(paramInt) : null; + } + + public AppData parseAppData(String paramString, int paramInt) { + try { + if (!TextUtils.isEmpty(paramString)) { + JSONObject jSONObject = (new JSONObject(paramString)).getJSONObject("data"); + if (TextUtils.equals(jSONObject.optString("name"), "appDataChange")) { + JSONObject jSONObject1 = jSONObject.getJSONObject("args"); + AppData appData = new AppData(); + appData.webviewId = paramInt; + appData.data = jSONObject1.optString("data"); + jSONObject1 = jSONObject1.optJSONObject("ext"); + if (jSONObject1 != null) { + appData.route = jSONObject1.optString("route"); + return appData; + } + appData.route = AppbrandApplication.getInst().getCurrentPagePath(); + return appData; + } + } + } catch (JSONException jSONException) {} + return null; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\appData\AppDataReporter.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/CountingOutputStream.java b/df_miniapp/classes/com/tt/miniapp/debug/network/CountingOutputStream.java new file mode 100644 index 0000000..52be9d6 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/CountingOutputStream.java @@ -0,0 +1,37 @@ +package com.tt.miniapp.debug.network; + +import java.io.FilterOutputStream; +import java.io.IOException; +import java.io.OutputStream; + +class CountingOutputStream extends FilterOutputStream { + private long mCount; + + public CountingOutputStream(OutputStream paramOutputStream) { + super(paramOutputStream); + } + + public long getCount() { + return this.mCount; + } + + public void write(int paramInt) throws IOException { + this.out.write(paramInt); + this.mCount++; + } + + public void write(byte[] paramArrayOfbyte) throws IOException { + write(paramArrayOfbyte, 0, paramArrayOfbyte.length); + } + + public void write(byte[] paramArrayOfbyte, int paramInt1, int paramInt2) throws IOException { + this.out.write(paramArrayOfbyte, paramInt1, paramInt2); + this.mCount += paramInt2; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\CountingOutputStream.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/DecompressionHelper.java b/df_miniapp/classes/com/tt/miniapp/debug/network/DecompressionHelper.java new file mode 100644 index 0000000..c5b0a70 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/DecompressionHelper.java @@ -0,0 +1,38 @@ +package com.tt.miniapp.debug.network; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.zip.InflaterOutputStream; + +public class DecompressionHelper { + public static InputStream teeInputWithDecompression(String paramString1, InputStream paramInputStream, OutputStream paramOutputStream, String paramString2, ResponseHandler paramResponseHandler) throws IOException { + if (paramString2 != null) { + boolean bool1 = "gzip".equals(paramString2); + boolean bool2 = "deflate".equals(paramString2); + if (bool1 || bool2) { + CountingOutputStream countingOutputStream1; + CountingOutputStream countingOutputStream2 = new CountingOutputStream(paramOutputStream); + if (bool1) { + paramOutputStream = GunzippingOutputStream.create(countingOutputStream2); + countingOutputStream1 = countingOutputStream2; + } else { + countingOutputStream1 = countingOutputStream2; + if (bool2) { + paramOutputStream = new InflaterOutputStream(countingOutputStream2); + countingOutputStream1 = countingOutputStream2; + } + } + return new ResponseHandlingInputStream(paramInputStream, paramString1, paramOutputStream, countingOutputStream1, paramResponseHandler); + } + } + paramString2 = null; + return new ResponseHandlingInputStream(paramInputStream, paramString1, paramOutputStream, (CountingOutputStream)paramString2, paramResponseHandler); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\DecompressionHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/DefaultResponseHandler.java b/df_miniapp/classes/com/tt/miniapp/debug/network/DefaultResponseHandler.java new file mode 100644 index 0000000..e1d96d8 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/DefaultResponseHandler.java @@ -0,0 +1,54 @@ +package com.tt.miniapp.debug.network; + +import java.io.IOException; + +public class DefaultResponseHandler implements ResponseHandler { + private int mBytesRead; + + private int mDecodedBytesRead = -1; + + private final NetworkEventReporter mEventReporter; + + private final String mRequestId; + + public DefaultResponseHandler(NetworkEventReporter paramNetworkEventReporter, String paramString) { + this.mEventReporter = paramNetworkEventReporter; + this.mRequestId = paramString; + } + + private void reportDataReceived() { + NetworkEventReporter networkEventReporter = this.mEventReporter; + String str = this.mRequestId; + int j = this.mBytesRead; + int i = this.mDecodedBytesRead; + if (i < 0) + i = j; + networkEventReporter.dataReceived(str, j, i); + } + + public void onEOF() { + reportDataReceived(); + this.mEventReporter.responseReadFinished(this.mRequestId); + } + + public void onError(IOException paramIOException) { + reportDataReceived(); + this.mEventReporter.responseReadFailed(this.mRequestId, paramIOException.toString()); + } + + public void onRead(int paramInt) { + this.mBytesRead += paramInt; + } + + public void onReadDecoded(int paramInt) { + if (this.mDecodedBytesRead == -1) + this.mDecodedBytesRead = 0; + this.mDecodedBytesRead += paramInt; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\DefaultResponseHandler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/GunzippingOutputStream.java b/df_miniapp/classes/com/tt/miniapp/debug/network/GunzippingOutputStream.java new file mode 100644 index 0000000..1d792e5 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/GunzippingOutputStream.java @@ -0,0 +1,91 @@ +package com.tt.miniapp.debug.network; + +import java.io.FilterOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.io.PipedInputStream; +import java.io.PipedOutputStream; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.zip.GZIPInputStream; + +class GunzippingOutputStream extends FilterOutputStream { + private static final ExecutorService sExecutor = Executors.newCachedThreadPool(); + + private final Future mCopyFuture; + + private GunzippingOutputStream(OutputStream paramOutputStream, Future paramFuture) throws IOException { + super(paramOutputStream); + this.mCopyFuture = paramFuture; + } + + public static GunzippingOutputStream create(OutputStream paramOutputStream) throws IOException { + PipedInputStream pipedInputStream = new PipedInputStream(); + return new GunzippingOutputStream(new PipedOutputStream(pipedInputStream), sExecutor.submit(new GunzippingCallable(pipedInputStream, paramOutputStream))); + } + + private static T getAndRethrow(Future paramFuture) throws IOException { + while (true) { + try { + return paramFuture.get(); + } catch (InterruptedException interruptedException) { + + } catch (ExecutionException executionException) { + executionException.getCause(); + } + } + } + + public void close() throws IOException { + try { + super.close(); + } finally { + try { + getAndRethrow(this.mCopyFuture); + } catch (IOException iOException) {} + } + } + + static class GunzippingCallable implements Callable { + private final InputStream mIn; + + private final OutputStream mOut; + + public GunzippingCallable(InputStream param1InputStream, OutputStream param1OutputStream) { + this.mIn = param1InputStream; + this.mOut = param1OutputStream; + } + + public static void copy(InputStream param1InputStream, OutputStream param1OutputStream, byte[] param1ArrayOfbyte) throws IOException { + while (true) { + int i = param1InputStream.read(param1ArrayOfbyte); + if (i != -1) { + param1OutputStream.write(param1ArrayOfbyte, 0, i); + continue; + } + break; + } + } + + public Void call() throws IOException { + GZIPInputStream gZIPInputStream = new GZIPInputStream(this.mIn); + try { + copy(gZIPInputStream, this.mOut, new byte[1024]); + return null; + } finally { + gZIPInputStream.close(); + this.mOut.close(); + } + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\GunzippingOutputStream.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/MimeMatcher.java b/df_miniapp/classes/com/tt/miniapp/debug/network/MimeMatcher.java new file mode 100644 index 0000000..d5f232c --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/MimeMatcher.java @@ -0,0 +1,64 @@ +package com.tt.miniapp.debug.network; + +import java.util.ArrayList; + +public class MimeMatcher { + private final ArrayList mRuleMap = new ArrayList(); + + public void addRule(String paramString, T paramT) { + this.mRuleMap.add(new MimeMatcherRule(paramString, paramT)); + } + + public void clear() { + this.mRuleMap.clear(); + } + + public T match(String paramString) { + int j = this.mRuleMap.size(); + for (int i = 0; i < j; i++) { + MimeMatcherRule mimeMatcherRule = this.mRuleMap.get(i); + if (mimeMatcherRule.match(paramString)) + return mimeMatcherRule.getResultIfMatched(); + } + return null; + } + + class MimeMatcherRule { + private final boolean mHasWildcard; + + private final String mMatchPrefix; + + private final T mResultIfMatched; + + public MimeMatcherRule(String param1String, T param1T) { + if (param1String.endsWith("*")) { + this.mHasWildcard = true; + this.mMatchPrefix = param1String.substring(0, param1String.length() - 1); + } else { + this.mHasWildcard = false; + this.mMatchPrefix = param1String; + } + if (!this.mMatchPrefix.contains("*")) { + this.mResultIfMatched = param1T; + return; + } + StringBuilder stringBuilder = new StringBuilder("Multiple wildcards present in rule expression "); + stringBuilder.append(param1String); + throw new IllegalArgumentException(stringBuilder.toString()); + } + + public T getResultIfMatched() { + return this.mResultIfMatched; + } + + public boolean match(String param1String) { + return !param1String.startsWith(this.mMatchPrefix) ? false : ((this.mHasWildcard || param1String.length() == this.mMatchPrefix.length())); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\MimeMatcher.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/Network.java b/df_miniapp/classes/com/tt/miniapp/debug/network/Network.java new file mode 100644 index 0000000..50cde34 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/Network.java @@ -0,0 +1,243 @@ +package com.tt.miniapp.debug.network; + +import org.json.JSONObject; + +public class Network { + public static class DataReceivedParams { + public int dataLength; + + public int encodedDataLength; + + public String requestId; + + public double timestamp; + } + + public static class GetResponseBodyResponse { + public boolean base64Encoded; + + public String body; + } + + public static class Initiator { + public Network.InitiatorType type; + } + + public enum InitiatorType { + OTHER, + PARSER("parser"), + SCRIPT("script"); + + private final String mProtocolValue; + + static { + $VALUES = new InitiatorType[] { PARSER, SCRIPT, OTHER }; + } + + InitiatorType(String param1String1) { + this.mProtocolValue = param1String1; + } + + public final String getProtocolValue() { + return this.mProtocolValue; + } + } + + public static class LoadingFailedParams { + public String errorText; + + public String requestId; + + public double timestamp; + + public ResourceTypeHelper.ResourceType type; + } + + public static class LoadingFinishedParams { + public String requestId; + + public double timestamp; + } + + public static class Request { + public JSONObject headers; + + public String method; + + public String postData; + + public String url; + } + + public static class RequestWillBeSentParams { + public String documentURL; + + public String frameId; + + public Network.Initiator initiator; + + public String loaderId; + + public Network.Response redirectResponse; + + public Network.Request request; + + public String requestId; + + public double timestamp; + + public ResourceTypeHelper.ResourceType type; + } + + public static class ResourceTiming { + public double connectionEnd; + + public double connectionStart; + + public double dnsEnd; + + public double dnsStart; + + public double proxyEnd; + + public double proxyStart; + + public double receivedHeadersEnd; + + public double requestTime; + + public double sendEnd; + + public double sendStart; + + public double sslEnd; + + public double sslStart; + } + + public static class Response { + public int connectionId; + + public boolean connectionReused; + + public Boolean fromDiskCache; + + public JSONObject headers; + + public String headersText; + + public String mimeType; + + public JSONObject requestHeaders; + + public String requestHeadersTest; + + public int status; + + public String statusText; + + public Network.ResourceTiming timing; + + public String url; + } + + public static class ResponseReceivedParams { + public String frameId; + + public String loaderId; + + public String requestId; + + public Network.Response response; + + public double timestamp; + + public ResourceTypeHelper.ResourceType type; + } + + public static class WebSocketClosedParams { + public String requestId; + + public double timestamp; + } + + public static class WebSocketCreatedParams { + public String requestId; + + public String url; + } + + public static class WebSocketFrame { + public boolean mask; + + public int opcode; + + public String payloadData; + } + + public static class WebSocketFrameErrorParams { + public String errorMessage; + + public String requestId; + + public double timestamp; + } + + public static class WebSocketFrameReceivedParams { + public String requestId; + + public Network.WebSocketFrame response; + + public double timestamp; + } + + public static class WebSocketFrameSentParams { + public String requestId; + + public Network.WebSocketFrame response; + + public double timestamp; + } + + public static class WebSocketHandshakeResponseReceivedParams { + public String requestId; + + public Network.WebSocketResponse response; + + public double timestamp; + } + + public static class WebSocketRequest { + public JSONObject headers; + } + + public static class WebSocketResponse { + public JSONObject headers; + + public String headersText; + + public JSONObject requestHeaders; + + public String requestHeadersText; + + public int status; + + public String statusText; + } + + public static class WebSocketWillSendHandshakeRequestParams { + public Network.WebSocketRequest request; + + public String requestId; + + public double timestamp; + + public double wallTime; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\Network.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/NetworkDebugInterceptor.java b/df_miniapp/classes/com/tt/miniapp/debug/network/NetworkDebugInterceptor.java new file mode 100644 index 0000000..fd5b665 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/NetworkDebugInterceptor.java @@ -0,0 +1,231 @@ +package com.tt.miniapp.debug.network; + +import android.text.TextUtils; +import com.tt.miniapphost.AppBrandLogger; +import g.g; +import g.h; +import g.q; +import java.io.IOException; +import java.io.InputStream; +import okhttp3.ac; +import okhttp3.ad; +import okhttp3.ae; +import okhttp3.af; +import okhttp3.i; +import okhttp3.u; +import okhttp3.w; + +public class NetworkDebugInterceptor implements u { + private final NetworkEventReporter mEventReporter = NetworkEventReporterImpl.get(); + + public ae intercept(u.a parama) throws IOException { + boolean bool; + RequestBodyHelper requestBodyHelper; + String str = this.mEventReporter.nextRequestId(); + ac ac = parama.a(); + if (!TextUtils.isEmpty(ac.c.a("remoteDebug"))) { + ac = ac.a().b("remoteDebug").c(); + bool = false; + } else { + bool = true; + } + AppBrandLogger.d("NetworkDebugInterceptor", new Object[] { "url: ", ac.a, "isInnerRequest: ", Boolean.valueOf(bool) }); + if (this.mEventReporter.isEnabled() && !bool) { + requestBodyHelper = new RequestBodyHelper(this.mEventReporter, str); + OkHttpInspectorRequest okHttpInspectorRequest = new OkHttpInspectorRequest(str, ac, requestBodyHelper); + this.mEventReporter.requestWillBeSent(okHttpInspectorRequest); + } else { + requestBodyHelper = null; + } + try { + ae ae = parama.a(ac); + if (this.mEventReporter.isEnabled() && !bool) { + if (requestBodyHelper != null && requestBodyHelper.hasBody()) + requestBodyHelper.reportDataSent(); + i i = parama.b(); + if (i != null) { + ac ac1; + this.mEventReporter.responseHeadersReceived(new OkHttpInspectorResponse(str, ac, ae, i)); + af af = ae.g; + if (af != null) { + w w = af.contentType(); + InputStream inputStream1 = af.byteStream(); + } else { + ac = null; + ac1 = ac; + } + NetworkEventReporter networkEventReporter = this.mEventReporter; + if (ac != null) { + String str1 = ac.toString(); + } else { + ac = null; + } + InputStream inputStream = networkEventReporter.interpretResponseStream(str, (String)ac, ae.b("Content-Encoding"), (InputStream)ac1, new DefaultResponseHandler(this.mEventReporter, str)); + if (inputStream != null) + return ae.b().a(new ForwardingResponseBody(af, inputStream)).a(); + } else { + throw new IllegalStateException("No connection associated with this request; did you use addInterceptor instead of addNetworkInterceptor?"); + } + } + return ae; + } catch (IOException iOException) { + if (this.mEventReporter.isEnabled()) + this.mEventReporter.httpExchangeFailed(str, iOException.toString()); + throw iOException; + } + } + + static class ForwardingResponseBody extends af { + private final af mBody; + + private final h mInterceptedSource; + + public ForwardingResponseBody(af param1af, InputStream param1InputStream) { + this.mBody = param1af; + this.mInterceptedSource = q.a(q.a(param1InputStream)); + } + + public long contentLength() { + return this.mBody.contentLength(); + } + + public w contentType() { + return this.mBody.contentType(); + } + + public h source() { + return this.mInterceptedSource; + } + } + + static class OkHttpInspectorRequest implements NetworkEventReporter.InspectorRequest { + private final ac mRequest; + + private RequestBodyHelper mRequestBodyHelper; + + private final String mRequestId; + + public OkHttpInspectorRequest(String param1String, ac param1ac, RequestBodyHelper param1RequestBodyHelper) { + this.mRequestId = param1String; + this.mRequest = param1ac; + this.mRequestBodyHelper = param1RequestBodyHelper; + } + + public byte[] body() throws IOException { + null = this.mRequest.d; + if (null == null) + return null; + g g = q.a(q.a(this.mRequestBodyHelper.createBodySink(firstHeaderValue("Content-Encoding")))); + try { + null.writeTo(g); + return this.mRequestBodyHelper.getDisplayBody(); + } finally { + g.close(); + } + } + + public String firstHeaderValue(String param1String) { + return this.mRequest.a(param1String); + } + + public String friendlyName() { + return null; + } + + public Integer friendlyNameExtra() { + return null; + } + + public int headerCount() { + return this.mRequest.c.a(); + } + + public String headerName(int param1Int) { + return this.mRequest.c.a(param1Int); + } + + public String headerValue(int param1Int) { + return this.mRequest.c.b(param1Int); + } + + public String id() { + return this.mRequestId; + } + + public String method() { + return this.mRequest.b; + } + + public String url() { + return this.mRequest.a.toString(); + } + } + + static class OkHttpInspectorResponse implements NetworkEventReporter.InspectorResponse { + private final i mConnection; + + private final ac mRequest; + + private final String mRequestId; + + private final ae mResponse; + + public OkHttpInspectorResponse(String param1String, ac param1ac, ae param1ae, i param1i) { + this.mRequestId = param1String; + this.mRequest = param1ac; + this.mResponse = param1ae; + this.mConnection = param1i; + } + + public int connectionId() { + i i1 = this.mConnection; + return (i1 == null) ? 0 : i1.hashCode(); + } + + public boolean connectionReused() { + return false; + } + + public String firstHeaderValue(String param1String) { + return this.mResponse.b(param1String); + } + + public boolean fromDiskCache() { + return (this.mResponse.i != null); + } + + public int headerCount() { + return this.mResponse.f.a(); + } + + public String headerName(int param1Int) { + return this.mResponse.f.a(param1Int); + } + + public String headerValue(int param1Int) { + return this.mResponse.f.b(param1Int); + } + + public String reasonPhrase() { + return this.mResponse.d; + } + + public String requestId() { + return this.mRequestId; + } + + public int statusCode() { + return this.mResponse.c; + } + + public String url() { + return this.mRequest.a.toString(); + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\NetworkDebugInterceptor.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/NetworkEventReporter.java b/df_miniapp/classes/com/tt/miniapp/debug/network/NetworkEventReporter.java new file mode 100644 index 0000000..a4a45f8 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/NetworkEventReporter.java @@ -0,0 +1,106 @@ +package com.tt.miniapp.debug.network; + +import java.io.IOException; +import java.io.InputStream; + +public interface NetworkEventReporter { + void dataReceived(String paramString, int paramInt1, int paramInt2); + + void dataSent(String paramString, int paramInt1, int paramInt2); + + void httpExchangeFailed(String paramString1, String paramString2); + + InputStream interpretResponseStream(String paramString1, String paramString2, String paramString3, InputStream paramInputStream, ResponseHandler paramResponseHandler); + + boolean isEnabled(); + + String nextRequestId(); + + void requestWillBeSent(InspectorRequest paramInspectorRequest); + + void responseHeadersReceived(InspectorResponse paramInspectorResponse); + + void responseReadFailed(String paramString1, String paramString2); + + void responseReadFinished(String paramString); + + void webSocketClosed(String paramString); + + void webSocketCreated(String paramString1, String paramString2); + + void webSocketFrameError(String paramString1, String paramString2); + + void webSocketFrameReceived(InspectorWebSocketFrame paramInspectorWebSocketFrame); + + void webSocketFrameSent(InspectorWebSocketFrame paramInspectorWebSocketFrame); + + void webSocketHandshakeResponseReceived(InspectorWebSocketResponse paramInspectorWebSocketResponse); + + void webSocketWillSendHandshakeRequest(InspectorWebSocketRequest paramInspectorWebSocketRequest); + + public static interface InspectorHeaders { + String firstHeaderValue(String param1String); + + int headerCount(); + + String headerName(int param1Int); + + String headerValue(int param1Int); + } + + public static interface InspectorRequest extends InspectorRequestCommon { + byte[] body() throws IOException; + + Integer friendlyNameExtra(); + + String method(); + + String url(); + } + + public static interface InspectorRequestCommon extends InspectorHeaders { + String friendlyName(); + + String id(); + } + + public static interface InspectorResponse extends InspectorResponseCommon { + int connectionId(); + + boolean connectionReused(); + + boolean fromDiskCache(); + + String url(); + } + + public static interface InspectorResponseCommon extends InspectorHeaders { + String reasonPhrase(); + + String requestId(); + + int statusCode(); + } + + public static interface InspectorWebSocketFrame { + boolean mask(); + + int opcode(); + + String payloadData(); + + String requestId(); + } + + public static interface InspectorWebSocketRequest extends InspectorRequestCommon {} + + public static interface InspectorWebSocketResponse extends InspectorResponseCommon { + NetworkEventReporter.InspectorHeaders requestHeaders(); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\NetworkEventReporter.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/NetworkEventReporterImpl.java b/df_miniapp/classes/com/tt/miniapp/debug/network/NetworkEventReporterImpl.java new file mode 100644 index 0000000..481d93f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/NetworkEventReporterImpl.java @@ -0,0 +1,447 @@ +package com.tt.miniapp.debug.network; + +import android.content.Context; +import android.os.SystemClock; +import com.tt.miniapp.debug.DebugManager; +import com.tt.miniapphost.AppbrandContext; +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.Charset; +import java.util.concurrent.atomic.AtomicInteger; +import org.json.JSONException; +import org.json.JSONObject; + +public class NetworkEventReporterImpl implements NetworkEventReporter { + private static NetworkEventReporter sInstance; + + private final AtomicInteger mNextRequestId = new AtomicInteger(0); + + private ResourceTypeHelper mResourceTypeHelper; + + private ResponseBodyFileManager responseBodyFileManager; + + private static Network.WebSocketFrame convertFrame(NetworkEventReporter.InspectorWebSocketFrame paramInspectorWebSocketFrame) { + Network.WebSocketFrame webSocketFrame = new Network.WebSocketFrame(); + webSocketFrame.opcode = paramInspectorWebSocketFrame.opcode(); + webSocketFrame.mask = paramInspectorWebSocketFrame.mask(); + webSocketFrame.payloadData = paramInspectorWebSocketFrame.payloadData(); + return webSocketFrame; + } + + private static ResourceTypeHelper.ResourceType determineResourceType(String paramString, ResourceTypeHelper paramResourceTypeHelper) { + return (paramString != null) ? paramResourceTypeHelper.determineResourceType(paramString) : ResourceTypeHelper.ResourceType.OTHER; + } + + private static JSONObject formatHeadersAsJSON(NetworkEventReporter.InspectorHeaders paramInspectorHeaders) { + JSONObject jSONObject = new JSONObject(); + int i = 0; + while (i < paramInspectorHeaders.headerCount()) { + String str1 = paramInspectorHeaders.headerName(i); + String str2 = paramInspectorHeaders.headerValue(i); + try { + if (jSONObject.has(str1)) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(jSONObject.getString(str1)); + stringBuilder.append("\n"); + stringBuilder.append(str2); + jSONObject.put(str1, stringBuilder.toString()); + } else { + jSONObject.put(str1, str2); + } + i++; + } catch (JSONException jSONException) { + throw new RuntimeException(jSONException); + } + } + return jSONObject; + } + + public static NetworkEventReporter get() { + // Byte code: + // 0: ldc com/tt/miniapp/debug/network/NetworkEventReporterImpl + // 2: monitorenter + // 3: getstatic com/tt/miniapp/debug/network/NetworkEventReporterImpl.sInstance : Lcom/tt/miniapp/debug/network/NetworkEventReporter; + // 6: ifnonnull -> 19 + // 9: new com/tt/miniapp/debug/network/NetworkEventReporterImpl + // 12: dup + // 13: invokespecial : ()V + // 16: putstatic com/tt/miniapp/debug/network/NetworkEventReporterImpl.sInstance : Lcom/tt/miniapp/debug/network/NetworkEventReporter; + // 19: getstatic com/tt/miniapp/debug/network/NetworkEventReporterImpl.sInstance : Lcom/tt/miniapp/debug/network/NetworkEventReporter; + // 22: astore_0 + // 23: ldc com/tt/miniapp/debug/network/NetworkEventReporterImpl + // 25: monitorexit + // 26: aload_0 + // 27: areturn + // 28: astore_0 + // 29: ldc com/tt/miniapp/debug/network/NetworkEventReporterImpl + // 31: monitorexit + // 32: aload_0 + // 33: athrow + // Exception table: + // from to target type + // 3 19 28 finally + // 19 23 28 finally + } + + private String getContentType(NetworkEventReporter.InspectorHeaders paramInspectorHeaders) { + return paramInspectorHeaders.firstHeaderValue("Content-Type"); + } + + private ResourceTypeHelper getResourceTypeHelper() { + if (this.mResourceTypeHelper == null) + this.mResourceTypeHelper = new ResourceTypeHelper(); + return this.mResourceTypeHelper; + } + + private ResponseBodyFileManager getResponseBodyFileManager() { + if (this.responseBodyFileManager == null) + this.responseBodyFileManager = new ResponseBodyFileManager((Context)AppbrandContext.getInst().getApplicationContext()); + return this.responseBodyFileManager; + } + + private void loadingFailed(String paramString1, String paramString2) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.loadingFailed"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("requestId", paramString1); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject1.put("timestamp", d); + jSONObject1.put("errorText", paramString2); + jSONObject1.put("type", "Other"); + jSONObject.put("params", jSONObject1); + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + } + + private void loadingFinished(String paramString) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.loadingFinished"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("requestId", paramString); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject1.put("timestamp", d); + jSONObject.put("params", jSONObject1); + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + } + + private static String readBodyAsString(NetworkEventReporter.InspectorRequest paramInspectorRequest) { + try { + byte[] arrayOfByte = paramInspectorRequest.body(); + if (arrayOfByte != null) + return new String(arrayOfByte, Charset.forName("UTF-8")); + } catch (IOException|OutOfMemoryError iOException) {} + return null; + } + + private static long stethoNow() { + return SystemClock.elapsedRealtime(); + } + + public void dataReceived(String paramString, int paramInt1, int paramInt2) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.dataReceived"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("requestId", paramString); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject1.put("timestamp", d); + jSONObject1.put("dataLength", paramInt1); + jSONObject1.put("encodedDataLength", "encodedDataLength"); + jSONObject.put("params", jSONObject1); + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + } + + public void dataSent(String paramString, int paramInt1, int paramInt2) { + dataReceived(paramString, paramInt1, paramInt2); + } + + public void getResponseBody(JSONObject paramJSONObject) { + try { + String str = paramJSONObject.getString("requestId"); + Network.GetResponseBodyResponse getResponseBodyResponse = new Network.GetResponseBodyResponse(); + ResponseBodyFileManager.ResponseBodyData responseBodyData = getResponseBodyFileManager().readFile(str); + getResponseBodyResponse.body = responseBodyData.data; + getResponseBodyResponse.base64Encoded = responseBodyData.base64Encoded; + return; + } catch (JSONException|IOException jSONException) { + return; + } + } + + public void httpExchangeFailed(String paramString1, String paramString2) { + loadingFailed(paramString1, paramString2); + } + + public InputStream interpretResponseStream(String paramString1, String paramString2, String paramString3, InputStream paramInputStream, ResponseHandler paramResponseHandler) { + ResourceTypeHelper.ResourceType resourceType = null; + if (paramInputStream == null) { + paramResponseHandler.onEOF(); + return null; + } + if (paramString2 != null) + resourceType = getResourceTypeHelper().determineResourceType(paramString2); + boolean bool2 = false; + boolean bool1 = bool2; + if (resourceType != null) { + bool1 = bool2; + if (resourceType == ResourceTypeHelper.ResourceType.IMAGE) + bool1 = true; + } + try { + return DecompressionHelper.teeInputWithDecompression(paramString1, paramInputStream, getResponseBodyFileManager().openResponseBodyFile(paramString1, bool1), paramString3, paramResponseHandler); + } catch (IOException iOException) { + return paramInputStream; + } + } + + public boolean isEnabled() { + return (DebugManager.getInst()).mRemoteDebugEnable; + } + + public String nextRequestId() { + return String.valueOf(this.mNextRequestId.getAndIncrement()); + } + + public void requestWillBeSent(NetworkEventReporter.InspectorRequest paramInspectorRequest) { + Network.Request request = new Network.Request(); + request.url = paramInspectorRequest.url(); + request.method = paramInspectorRequest.method(); + request.headers = formatHeadersAsJSON(paramInspectorRequest); + request.postData = readBodyAsString(paramInspectorRequest); + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.requestWillBeSent"); + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("requestId", paramInspectorRequest.id()); + jSONObject2.put("frameId", "1"); + jSONObject2.put("loaderId", "1"); + jSONObject2.put("documentURL", paramInspectorRequest.url()); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("url", request.url); + jSONObject1.put("method", request.method); + jSONObject1.put("headers", request.headers); + if (request.postData != null && request.postData.length() < 2097152) + jSONObject1.put("postData", request.postData); + jSONObject2.put("request", jSONObject1); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject2.put("timestamp", d); + jSONObject1 = new JSONObject(); + jSONObject1.put("type", Network.InitiatorType.SCRIPT); + jSONObject2.put("initiator", jSONObject1); + jSONObject2.put("type", "Other"); + jSONObject2.put("redirectResponse", null); + jSONObject.put("params", jSONObject2); + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + return; + } catch (JSONException jSONException) { + return; + } + } + + public void responseHeadersReceived(NetworkEventReporter.InspectorResponse paramInspectorResponse) { + String str1; + Network.Response response = new Network.Response(); + response.url = paramInspectorResponse.url(); + response.status = paramInspectorResponse.statusCode(); + response.statusText = paramInspectorResponse.reasonPhrase(); + response.headers = formatHeadersAsJSON(paramInspectorResponse); + String str2 = getContentType(paramInspectorResponse); + if (str2 != null) { + str1 = getResourceTypeHelper().stripContentExtras(str2); + } else { + str1 = "application/octet-stream"; + } + response.mimeType = str1; + response.connectionReused = paramInspectorResponse.connectionReused(); + response.connectionId = paramInspectorResponse.connectionId(); + response.fromDiskCache = Boolean.valueOf(paramInspectorResponse.fromDiskCache()); + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.responseReceived"); + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("requestId", paramInspectorResponse.requestId()); + jSONObject2.put("frameId", "1"); + jSONObject2.put("loaderId", "1"); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject2.put("timestamp", d); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("url", response.url); + jSONObject1.put("status", response.status); + jSONObject1.put("statusText", response.statusText); + jSONObject1.put("headers", response.headers); + jSONObject1.put("mimeType", response.mimeType); + jSONObject1.put("connectionReused", response.connectionReused); + jSONObject1.put("connectionId", response.connectionId); + jSONObject1.put("fromDiskCache", response.fromDiskCache); + jSONObject2.put("response", jSONObject1); + jSONObject2.put("type", determineResourceType(str2, getResourceTypeHelper())); + jSONObject.put("params", jSONObject2); + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + return; + } catch (JSONException jSONException) { + return; + } + } + + public void responseReadFailed(String paramString1, String paramString2) { + loadingFailed(paramString1, paramString2); + } + + public void responseReadFinished(String paramString) { + loadingFinished(paramString); + } + + public void webSocketClosed(String paramString) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.webSocketClosed"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("requestId", paramString); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject1.put("timestamp", d); + jSONObject.put("params", jSONObject1); + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + } + + public void webSocketCreated(String paramString1, String paramString2) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.webSocketCreated"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("requestId", paramString1); + jSONObject1.put("url", paramString2); + jSONObject.put("params", jSONObject1); + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + } + + public void webSocketFrameError(String paramString1, String paramString2) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.webSocketFrameError"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("requestId", paramString1); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject1.put("timestamp", d); + jSONObject1.put("errorMessage", paramString2); + jSONObject.put("params", jSONObject1); + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + } + + public void webSocketFrameReceived(NetworkEventReporter.InspectorWebSocketFrame paramInspectorWebSocketFrame) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.webSocketFrameReceived"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("requestId", paramInspectorWebSocketFrame.requestId()); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject1.put("timestamp", d); + jSONObject1.put("response", convertFrame(paramInspectorWebSocketFrame)); + jSONObject.put("params", jSONObject1); + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + } + + public void webSocketFrameSent(NetworkEventReporter.InspectorWebSocketFrame paramInspectorWebSocketFrame) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.webSocketFrameSent"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("requestId", paramInspectorWebSocketFrame.requestId()); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject1.put("timestamp", d); + jSONObject1.put("response", convertFrame(paramInspectorWebSocketFrame)); + jSONObject.put("params", jSONObject1); + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + } + + public void webSocketHandshakeResponseReceived(NetworkEventReporter.InspectorWebSocketResponse paramInspectorWebSocketResponse) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.webSocketHandshakeResponseReceived"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("requestId", paramInspectorWebSocketResponse.requestId()); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject1.put("timestamp", d); + Network.WebSocketResponse webSocketResponse = new Network.WebSocketResponse(); + webSocketResponse.headers = formatHeadersAsJSON(paramInspectorWebSocketResponse); + webSocketResponse.headersText = null; + if (paramInspectorWebSocketResponse.requestHeaders() != null) { + webSocketResponse.requestHeaders = formatHeadersAsJSON(paramInspectorWebSocketResponse.requestHeaders()); + webSocketResponse.requestHeadersText = null; + } + webSocketResponse.status = paramInspectorWebSocketResponse.statusCode(); + webSocketResponse.statusText = paramInspectorWebSocketResponse.reasonPhrase(); + jSONObject1.put("response", webSocketResponse); + jSONObject.put("params", jSONObject1); + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + } + + public void webSocketWillSendHandshakeRequest(NetworkEventReporter.InspectorWebSocketRequest paramInspectorWebSocketRequest) { + JSONObject jSONObject = new JSONObject(); + try { + jSONObject.put("method", "Network.webSocketWillSendHandshakeRequest"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("requestId", paramInspectorWebSocketRequest.id()); + long l = stethoNow(); + double d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject1.put("timestamp", d); + l = System.currentTimeMillis(); + d = l; + Double.isNaN(d); + d /= 1000.0D; + jSONObject1.put("wallTime", d); + Network.WebSocketRequest webSocketRequest = new Network.WebSocketRequest(); + webSocketRequest.headers = formatHeadersAsJSON(paramInspectorWebSocketRequest); + jSONObject1.put("request", webSocketRequest); + jSONObject.put("params", jSONObject1); + } catch (JSONException jSONException) {} + DebugManager.getInst().sendMessageByRemoteWs(jSONObject.toString()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\NetworkEventReporterImpl.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/RequestBodyHelper.java b/df_miniapp/classes/com/tt/miniapp/debug/network/RequestBodyHelper.java new file mode 100644 index 0000000..8395631 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/RequestBodyHelper.java @@ -0,0 +1,63 @@ +package com.tt.miniapp.debug.network; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.zip.InflaterOutputStream; + +public class RequestBodyHelper { + private ByteArrayOutputStream mDeflatedOutput; + + private CountingOutputStream mDeflatingOutput; + + private final NetworkEventReporter mEventReporter; + + private final String mRequestId; + + public RequestBodyHelper(NetworkEventReporter paramNetworkEventReporter, String paramString) { + this.mEventReporter = paramNetworkEventReporter; + this.mRequestId = paramString; + } + + private void throwIfNoBody() { + if (hasBody()) + return; + throw new IllegalStateException("No body found; has createBodySink been called?"); + } + + public OutputStream createBodySink(String paramString) throws IOException { + GunzippingOutputStream gunzippingOutputStream; + ByteArrayOutputStream byteArrayOutputStream1; + ByteArrayOutputStream byteArrayOutputStream2 = new ByteArrayOutputStream(); + if ("gzip".equals(paramString)) { + gunzippingOutputStream = GunzippingOutputStream.create(byteArrayOutputStream2); + } else if ("deflate".equals(gunzippingOutputStream)) { + InflaterOutputStream inflaterOutputStream = new InflaterOutputStream(byteArrayOutputStream2); + } else { + byteArrayOutputStream1 = byteArrayOutputStream2; + } + this.mDeflatingOutput = new CountingOutputStream(byteArrayOutputStream1); + this.mDeflatedOutput = byteArrayOutputStream2; + return this.mDeflatingOutput; + } + + public byte[] getDisplayBody() { + throwIfNoBody(); + return this.mDeflatedOutput.toByteArray(); + } + + public boolean hasBody() { + return (this.mDeflatedOutput != null); + } + + public void reportDataSent() { + throwIfNoBody(); + this.mEventReporter.dataSent(this.mRequestId, this.mDeflatedOutput.size(), (int)this.mDeflatingOutput.getCount()); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\RequestBodyHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/ResourceTypeHelper.java b/df_miniapp/classes/com/tt/miniapp/debug/network/ResourceTypeHelper.java new file mode 100644 index 0000000..bddd150 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/ResourceTypeHelper.java @@ -0,0 +1,64 @@ +package com.tt.miniapp.debug.network; + +public class ResourceTypeHelper { + private final MimeMatcher mMimeMatcher = new MimeMatcher(); + + public ResourceTypeHelper() { + this.mMimeMatcher.addRule("text/css", ResourceType.STYLESHEET); + this.mMimeMatcher.addRule("image/*", ResourceType.IMAGE); + this.mMimeMatcher.addRule("application/x-javascript", ResourceType.SCRIPT); + this.mMimeMatcher.addRule("text/javascript", ResourceType.XHR); + this.mMimeMatcher.addRule("application/json", ResourceType.XHR); + this.mMimeMatcher.addRule("text/*", ResourceType.DOCUMENT); + this.mMimeMatcher.addRule("*", ResourceType.OTHER); + } + + public ResourceType determineResourceType(String paramString) { + paramString = stripContentExtras(paramString); + return this.mMimeMatcher.match(paramString); + } + + public String stripContentExtras(String paramString) { + int i = paramString.indexOf(';'); + String str = paramString; + if (i >= 0) + str = paramString.substring(0, i); + return str; + } + + public enum ResourceType { + DOCUMENT("Document"), + FONT("Document"), + IMAGE("Document"), + OTHER("Document"), + SCRIPT("Document"), + STYLESHEET("Stylesheet"), + WEBSOCKET("Stylesheet"), + XHR("Stylesheet"); + + private final String mProtocolValue; + + static { + FONT = new ResourceType("FONT", 3, "Font"); + SCRIPT = new ResourceType("SCRIPT", 4, "Script"); + XHR = new ResourceType("XHR", 5, "XHR"); + WEBSOCKET = new ResourceType("WEBSOCKET", 6, "WebSocket"); + OTHER = new ResourceType("OTHER", 7, "Other"); + $VALUES = new ResourceType[] { DOCUMENT, STYLESHEET, IMAGE, FONT, SCRIPT, XHR, WEBSOCKET, OTHER }; + } + + ResourceType(String param1String1) { + this.mProtocolValue = param1String1; + } + + public final String getProtocolValue() { + return this.mProtocolValue; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\ResourceTypeHelper.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/ResponseBodyFileManager.java b/df_miniapp/classes/com/tt/miniapp/debug/network/ResponseBodyFileManager.java new file mode 100644 index 0000000..9c9975f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/ResponseBodyFileManager.java @@ -0,0 +1,77 @@ +package com.tt.miniapp.debug.network; + +import android.content.Context; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +public class ResponseBodyFileManager { + private final Context mContext; + + public ResponseBodyFileManager(Context paramContext) { + this.mContext = paramContext; + } + + public static void copy(InputStream paramInputStream, OutputStream paramOutputStream, byte[] paramArrayOfbyte) throws IOException { + while (true) { + int i = paramInputStream.read(paramArrayOfbyte); + if (i != -1) { + paramOutputStream.write(paramArrayOfbyte, 0, i); + continue; + } + break; + } + } + + private static String getFilename(String paramString) { + StringBuilder stringBuilder = new StringBuilder("network-response-body-"); + stringBuilder.append(paramString); + return stringBuilder.toString(); + } + + public static String readAsUTF8(InputStream paramInputStream) throws IOException { + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + copy(paramInputStream, byteArrayOutputStream, new byte[1024]); + return byteArrayOutputStream.toString("UTF-8"); + } + + public void cleanupFiles() { + for (File file : this.mContext.getFilesDir().listFiles()) { + if (file.getName().startsWith("network-response-body-")) + file.delete(); + } + } + + public OutputStream openResponseBodyFile(String paramString, boolean paramBoolean) throws IOException { + throw new RuntimeException("d2j fail translate: java.lang.RuntimeException: can not merge I and Z\r\n\tat com.googlecode.dex2jar.ir.TypeClass.merge(TypeClass.java:100)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeRef.updateTypeClass(TypeTransformer.java:174)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.copyTypes(TypeTransformer.java:311)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.fixTypes(TypeTransformer.java:226)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.analyze(TypeTransformer.java:207)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer.transform(TypeTransformer.java:44)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:162)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:414)\r\n\tat com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:42)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:128)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:509)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:406)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:422)\r\n\tat com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:172)\r\n\tat com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:272)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:108)\r\n\tat com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)\r\n"); + } + + public ResponseBodyData readFile(String paramString) throws IOException { + FileInputStream fileInputStream = this.mContext.openFileInput(getFilename(paramString)); + try { + int i = fileInputStream.read(); + } finally { + fileInputStream.close(); + } + boolean bool = false; + ((ResponseBodyData)SYNTHETIC_LOCAL_VARIABLE_4).base64Encoded = bool; + ((ResponseBodyData)SYNTHETIC_LOCAL_VARIABLE_4).data = readAsUTF8(fileInputStream); + fileInputStream.close(); + return (ResponseBodyData)SYNTHETIC_LOCAL_VARIABLE_4; + } + + public class ResponseBodyData { + public boolean base64Encoded; + + public String data; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\ResponseBodyFileManager.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/ResponseHandler.java b/df_miniapp/classes/com/tt/miniapp/debug/network/ResponseHandler.java new file mode 100644 index 0000000..188065b --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/ResponseHandler.java @@ -0,0 +1,19 @@ +package com.tt.miniapp.debug.network; + +import java.io.IOException; + +public interface ResponseHandler { + void onEOF(); + + void onError(IOException paramIOException); + + void onRead(int paramInt); + + void onReadDecoded(int paramInt); +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\ResponseHandler.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/network/ResponseHandlingInputStream.java b/df_miniapp/classes/com/tt/miniapp/debug/network/ResponseHandlingInputStream.java new file mode 100644 index 0000000..7147abe --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/network/ResponseHandlingInputStream.java @@ -0,0 +1,337 @@ +package com.tt.miniapp.debug.network; + +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +public final class ResponseHandlingInputStream extends FilterInputStream { + private boolean mClosed; + + private final CountingOutputStream mDecompressedCounter; + + private boolean mEofSeen; + + private long mLastDecompressedCount; + + private final OutputStream mOutputStream; + + private final String mRequestId; + + private final ResponseHandler mResponseHandler; + + private byte[] mSkipBuffer; + + public ResponseHandlingInputStream(InputStream paramInputStream, String paramString, OutputStream paramOutputStream, CountingOutputStream paramCountingOutputStream, ResponseHandler paramResponseHandler) { + super(paramInputStream); + this.mRequestId = paramString; + this.mOutputStream = paramOutputStream; + this.mDecompressedCounter = paramCountingOutputStream; + this.mResponseHandler = paramResponseHandler; + } + + private int checkEOF(int paramInt) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: iload_1 + // 3: iconst_m1 + // 4: if_icmpne -> 33 + // 7: aload_0 + // 8: invokespecial closeOutputStreamQuietly : ()V + // 11: aload_0 + // 12: getfield mResponseHandler : Lcom/tt/miniapp/debug/network/ResponseHandler; + // 15: invokeinterface onEOF : ()V + // 20: aload_0 + // 21: iconst_1 + // 22: putfield mEofSeen : Z + // 25: goto -> 33 + // 28: astore_2 + // 29: aload_0 + // 30: monitorexit + // 31: aload_2 + // 32: athrow + // 33: aload_0 + // 34: monitorexit + // 35: iload_1 + // 36: ireturn + // Exception table: + // from to target type + // 7 25 28 finally + } + + private void closeOutputStreamQuietly() { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mClosed : Z + // 6: istore_1 + // 7: iload_1 + // 8: ifne -> 46 + // 11: aload_0 + // 12: getfield mOutputStream : Ljava/io/OutputStream; + // 15: invokevirtual close : ()V + // 18: aload_0 + // 19: invokespecial reportDecodedSizeIfApplicable : ()V + // 22: aload_0 + // 23: iconst_1 + // 24: putfield mClosed : Z + // 27: aload_0 + // 28: monitorexit + // 29: return + // 30: astore_2 + // 31: aload_0 + // 32: iconst_1 + // 33: putfield mClosed : Z + // 36: aload_2 + // 37: athrow + // 38: aload_0 + // 39: iconst_1 + // 40: putfield mClosed : Z + // 43: aload_0 + // 44: monitorexit + // 45: return + // 46: aload_0 + // 47: monitorexit + // 48: return + // 49: astore_2 + // 50: aload_0 + // 51: monitorexit + // 52: aload_2 + // 53: athrow + // 54: astore_2 + // 55: goto -> 38 + // Exception table: + // from to target type + // 2 7 49 finally + // 11 22 54 java/io/IOException + // 11 22 30 finally + // 22 27 49 finally + // 31 38 49 finally + // 38 43 49 finally + } + + private byte[] getSkipBufferLocked() { + if (this.mSkipBuffer == null) + this.mSkipBuffer = new byte[1024]; + return this.mSkipBuffer; + } + + private IOException handleIOException(IOException paramIOException) { + this.mResponseHandler.onError(paramIOException); + return paramIOException; + } + + private void handleIOExceptionWritingToStream(IOException paramIOException) { + closeOutputStreamQuietly(); + } + + private void reportDecodedSizeIfApplicable() { + CountingOutputStream countingOutputStream = this.mDecompressedCounter; + if (countingOutputStream != null) { + long l = countingOutputStream.getCount(); + int i = (int)(l - this.mLastDecompressedCount); + this.mResponseHandler.onReadDecoded(i); + this.mLastDecompressedCount = l; + } + } + + private void writeToOutputStream(int paramInt) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mClosed : Z + // 6: istore_2 + // 7: iload_2 + // 8: ifeq -> 14 + // 11: aload_0 + // 12: monitorexit + // 13: return + // 14: aload_0 + // 15: getfield mOutputStream : Ljava/io/OutputStream; + // 18: iload_1 + // 19: invokevirtual write : (I)V + // 22: aload_0 + // 23: invokespecial reportDecodedSizeIfApplicable : ()V + // 26: aload_0 + // 27: monitorexit + // 28: return + // 29: astore_3 + // 30: aload_0 + // 31: aload_3 + // 32: invokespecial handleIOExceptionWritingToStream : (Ljava/io/IOException;)V + // 35: aload_0 + // 36: monitorexit + // 37: return + // 38: astore_3 + // 39: aload_0 + // 40: monitorexit + // 41: aload_3 + // 42: athrow + // Exception table: + // from to target type + // 2 7 38 finally + // 14 26 29 java/io/IOException + // 14 26 38 finally + // 30 35 38 finally + } + + private void writeToOutputStream(byte[] paramArrayOfbyte, int paramInt1, int paramInt2) { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: getfield mClosed : Z + // 6: istore #4 + // 8: iload #4 + // 10: ifeq -> 16 + // 13: aload_0 + // 14: monitorexit + // 15: return + // 16: aload_0 + // 17: getfield mOutputStream : Ljava/io/OutputStream; + // 20: aload_1 + // 21: iload_2 + // 22: iload_3 + // 23: invokevirtual write : ([BII)V + // 26: aload_0 + // 27: invokespecial reportDecodedSizeIfApplicable : ()V + // 30: aload_0 + // 31: monitorexit + // 32: return + // 33: astore_1 + // 34: aload_0 + // 35: aload_1 + // 36: invokespecial handleIOExceptionWritingToStream : (Ljava/io/IOException;)V + // 39: aload_0 + // 40: monitorexit + // 41: return + // 42: astore_1 + // 43: aload_0 + // 44: monitorexit + // 45: aload_1 + // 46: athrow + // Exception table: + // from to target type + // 2 8 42 finally + // 16 30 33 java/io/IOException + // 16 30 42 finally + // 34 39 42 finally + } + + public final void close() throws IOException { + try { + if (!this.mEofSeen) { + int i; + byte[] arrayOfByte = new byte[1024]; + do { + i = read(arrayOfByte); + } while (i != -1); + } + return; + } finally { + super.close(); + closeOutputStreamQuietly(); + } + } + + public final void mark(int paramInt) {} + + public final boolean markSupported() { + return false; + } + + public final int read() throws IOException { + try { + int i = checkEOF(this.in.read()); + if (i != -1) { + this.mResponseHandler.onRead(1); + writeToOutputStream(i); + } + return i; + } catch (IOException iOException) { + throw handleIOException(iOException); + } + } + + public final int read(byte[] paramArrayOfbyte) throws IOException { + return read(paramArrayOfbyte, 0, paramArrayOfbyte.length); + } + + public final int read(byte[] paramArrayOfbyte, int paramInt1, int paramInt2) throws IOException { + try { + paramInt2 = checkEOF(this.in.read(paramArrayOfbyte, paramInt1, paramInt2)); + if (paramInt2 != -1) { + this.mResponseHandler.onRead(paramInt2); + writeToOutputStream(paramArrayOfbyte, paramInt1, paramInt2); + } + return paramInt2; + } catch (IOException iOException) { + throw handleIOException(iOException); + } + } + + public final void reset() throws IOException { + throw new UnsupportedOperationException("Mark not supported"); + } + + public final long skip(long paramLong) throws IOException { + // Byte code: + // 0: aload_0 + // 1: monitorenter + // 2: aload_0 + // 3: invokespecial getSkipBufferLocked : ()[B + // 6: astore #6 + // 8: lconst_0 + // 9: lstore #4 + // 11: lload #4 + // 13: lload_1 + // 14: lcmp + // 15: ifge -> 53 + // 18: aload_0 + // 19: aload #6 + // 21: iconst_0 + // 22: aload #6 + // 24: arraylength + // 25: i2l + // 26: lload_1 + // 27: lload #4 + // 29: lsub + // 30: invokestatic min : (JJ)J + // 33: l2i + // 34: invokevirtual read : ([BII)I + // 37: istore_3 + // 38: iload_3 + // 39: iconst_m1 + // 40: if_icmpeq -> 53 + // 43: lload #4 + // 45: iload_3 + // 46: i2l + // 47: ladd + // 48: lstore #4 + // 50: goto -> 11 + // 53: aload_0 + // 54: monitorexit + // 55: lload #4 + // 57: lreturn + // 58: astore #6 + // 60: aload_0 + // 61: monitorexit + // 62: goto -> 68 + // 65: aload #6 + // 67: athrow + // 68: goto -> 65 + // Exception table: + // from to target type + // 2 8 58 finally + // 18 38 58 finally + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\network\ResponseHandlingInputStream.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/debug/storage/StorageReporter.java b/df_miniapp/classes/com/tt/miniapp/debug/storage/StorageReporter.java new file mode 100644 index 0000000..778ae66 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/debug/storage/StorageReporter.java @@ -0,0 +1,100 @@ +package com.tt.miniapp.debug.storage; + +import com.tt.miniapp.storage.Storage; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class StorageReporter { + private JSONObject storageId; + + public String clearStorage(int paramInt, boolean paramBoolean) throws JSONException { + JSONObject jSONObject = new JSONObject(); + if (paramInt != 0) + jSONObject.put("id", paramInt); + if (paramBoolean) { + jSONObject.put("method", "DOMStorage.domStorageItemsCleared"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("storageId", this.storageId); + jSONObject.put("params", jSONObject1); + } else { + jSONObject.put("result", "{}"); + } + return jSONObject.toString(); + } + + public String getDOMStorageItems(int paramInt, JSONArray paramJSONArray) throws JSONException { + JSONArray jSONArray1 = paramJSONArray; + if (paramJSONArray == null) + jSONArray1 = new JSONArray(); + JSONObject jSONObject1 = new JSONObject(); + if (paramInt != 0) + jSONObject1.put("id", paramInt); + JSONArray jSONArray2 = new JSONArray(); + for (paramInt = 0; paramInt < jSONArray1.length(); paramInt++) { + String str = (String)jSONArray1.get(paramInt); + JSONArray jSONArray = new JSONArray(); + jSONArray.put(str); + jSONArray.put(Storage.getValue(str)); + jSONArray2.put(jSONArray); + } + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("entries", jSONArray2); + jSONObject1.put("result", jSONObject2); + return jSONObject1.toString(); + } + + public String removeDOMStorageItem(int paramInt, boolean paramBoolean, String paramString) throws JSONException { + JSONObject jSONObject = new JSONObject(); + if (paramInt != 0) + jSONObject.put("id", paramInt); + if (paramBoolean) { + jSONObject.put("method", "DOMStorage.domStorageItemRemoved"); + JSONObject jSONObject1 = new JSONObject(); + jSONObject1.put("storageId", this.storageId); + jSONObject1.put("key", paramString); + jSONObject.put("params", jSONObject1); + } else { + jSONObject.put("result", "{}"); + } + return jSONObject.toString(); + } + + public String setDOMStorageItem(int paramInt, boolean paramBoolean, String paramString1, String paramString2, String paramString3) throws JSONException { + JSONObject jSONObject = new JSONObject(); + if (paramInt != 0) + jSONObject.put("id", paramInt); + if (paramBoolean) { + JSONObject jSONObject1; + if (paramString2 == null) { + jSONObject.put("method", "DOMStorage.domStorageItemAdded"); + jSONObject1 = new JSONObject(); + jSONObject1.put("storageId", this.storageId); + jSONObject1.put("key", paramString1); + jSONObject1.put("newValue", paramString3); + jSONObject.put("params", jSONObject1); + } else { + jSONObject.put("method", "DOMStorage.domStorageItemUpdated"); + JSONObject jSONObject2 = new JSONObject(); + jSONObject2.put("storageId", this.storageId); + jSONObject2.put("key", paramString1); + jSONObject2.put("oldValue", jSONObject1); + jSONObject2.put("newValue", paramString3); + jSONObject.put("params", jSONObject2); + } + } else { + jSONObject.put("result", "{}"); + } + return jSONObject.toString(); + } + + public void setStorageId(JSONObject paramJSONObject) { + this.storageId = paramJSONObject; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\debug\storage\StorageReporter.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/dec/BitReader.java b/df_miniapp/classes/com/tt/miniapp/dec/BitReader.java new file mode 100644 index 0000000..c65e70f --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/dec/BitReader.java @@ -0,0 +1,200 @@ +package com.tt.miniapp.dec; + +final class BitReader { + static void bytesToNibbles(State paramState, int paramInt) { + byte[] arrayOfByte = paramState.byteBuffer; + int[] arrayOfInt = paramState.intBuffer; + for (int i = 0; i < paramInt >> 2; i++) { + int j = i * 4; + byte b1 = arrayOfByte[j]; + byte b2 = arrayOfByte[j + 1]; + byte b3 = arrayOfByte[j + 2]; + arrayOfInt[i] = (arrayOfByte[j + 3] & 0xFF) << 24 | b1 & 0xFF | (b2 & 0xFF) << 8 | (b3 & 0xFF) << 16; + } + } + + static void checkHealth(State paramState, int paramInt) { + if (paramState.endOfStreamReached == 0) + return; + int i = (paramState.halfOffset << 2) + (paramState.bitOffset + 7 >> 3) - 8; + if (i <= paramState.tailBytes) { + if (paramInt != 0) { + if (i == paramState.tailBytes) + return; + throw new BrotliRuntimeException("Unused bytes after end"); + } + return; + } + throw new BrotliRuntimeException("Read after end"); + } + + static void copyBytes(State paramState, byte[] paramArrayOfbyte, int paramInt1, int paramInt2) { + if ((paramState.bitOffset & 0x7) == 0) { + int i = paramInt2; + int j; + for (j = paramInt1; paramState.bitOffset != 64 && i != 0; j++) { + paramArrayOfbyte[j] = (byte)peekBits(paramState); + paramState.bitOffset += 8; + i--; + } + if (i == 0) + return; + int k = Math.min(halfAvailable(paramState), i >> 2); + paramInt1 = j; + paramInt2 = i; + if (k > 0) { + paramInt1 = paramState.halfOffset; + paramInt2 = k << 2; + System.arraycopy(paramState.byteBuffer, paramInt1 << 2, paramArrayOfbyte, j, paramInt2); + paramInt1 = j + paramInt2; + paramInt2 = i - paramInt2; + paramState.halfOffset += k; + } + if (paramInt2 == 0) + return; + i = paramInt1; + j = paramInt2; + if (halfAvailable(paramState) > 0) { + fillBitWindow(paramState); + while (paramInt2 != 0) { + paramArrayOfbyte[paramInt1] = (byte)peekBits(paramState); + paramState.bitOffset += 8; + paramInt2--; + paramInt1++; + } + checkHealth(paramState, 0); + return; + } + while (j > 0) { + paramInt1 = Utils.readInput(paramState.input, paramArrayOfbyte, i, j); + if (paramInt1 != -1) { + i += paramInt1; + j -= paramInt1; + continue; + } + throw new BrotliRuntimeException("Unexpected end of input"); + } + return; + } + BrotliRuntimeException brotliRuntimeException = new BrotliRuntimeException("Unaligned copyBytes"); + throw brotliRuntimeException; + } + + private static void doFillBitWindow(State paramState) { + int[] arrayOfInt = paramState.intBuffer; + int i = paramState.halfOffset; + paramState.halfOffset = i + 1; + paramState.accumulator64 = arrayOfInt[i] << 32L | paramState.accumulator64 >>> 32L; + paramState.bitOffset -= 32; + } + + static void doReadMoreInput(State paramState) { + if (paramState.endOfStreamReached != 0) { + if (halfAvailable(paramState) >= -2) + return; + throw new BrotliRuntimeException("No more input"); + } + int j = paramState.halfOffset << 2; + int i = 4096 - j; + Utils.copyBytesWithin(paramState.byteBuffer, 0, j, 4096); + paramState.halfOffset = 0; + while (true) { + j = i; + if (i < 4096) { + j = Utils.readInput(paramState.input, paramState.byteBuffer, i, 4096 - i); + if (j <= 0) { + paramState.endOfStreamReached = 1; + paramState.tailBytes = i; + j = i + 3; + break; + } + i += j; + continue; + } + break; + } + bytesToNibbles(paramState, j); + } + + static void fillBitWindow(State paramState) { + if (paramState.bitOffset >= 32) { + int[] arrayOfInt = paramState.intBuffer; + int i = paramState.halfOffset; + paramState.halfOffset = i + 1; + paramState.accumulator64 = arrayOfInt[i] << 32L | paramState.accumulator64 >>> 32L; + paramState.bitOffset -= 32; + } + } + + static int halfAvailable(State paramState) { + char c; + if (paramState.endOfStreamReached != 0) { + c = paramState.tailBytes + 3 >> 2; + } else { + c = 'Ѐ'; + } + return c - paramState.halfOffset; + } + + static void initBitReader(State paramState) { + paramState.byteBuffer = new byte[4160]; + paramState.accumulator64 = 0L; + paramState.intBuffer = new int[1040]; + paramState.bitOffset = 64; + paramState.halfOffset = 1024; + paramState.endOfStreamReached = 0; + prepare(paramState); + } + + static void jumpToByteBoundary(State paramState) { + int i = 64 - paramState.bitOffset & 0x7; + if (i != 0) { + if (readFewBits(paramState, i) == 0) + return; + throw new BrotliRuntimeException("Corrupted padding bits"); + } + } + + static int peekBits(State paramState) { + return (int)(paramState.accumulator64 >>> paramState.bitOffset); + } + + private static void prepare(State paramState) { + readMoreInput(paramState); + checkHealth(paramState, 0); + doFillBitWindow(paramState); + doFillBitWindow(paramState); + } + + static int readBits(State paramState, int paramInt) { + return readFewBits(paramState, paramInt); + } + + static int readFewBits(State paramState, int paramInt) { + int i = peekBits(paramState); + paramState.bitOffset += paramInt; + return i & (1 << paramInt) - 1; + } + + private static int readManyBits(State paramState, int paramInt) { + int i = readFewBits(paramState, 16); + doFillBitWindow(paramState); + return readFewBits(paramState, paramInt - 16) << 16 | i; + } + + static void readMoreInput(State paramState) { + if (paramState.halfOffset > 1015) + doReadMoreInput(paramState); + } + + static void reload(State paramState) { + if (paramState.bitOffset == 64) + prepare(paramState); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\dec\BitReader.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/dec/BrotliInputStream.java b/df_miniapp/classes/com/tt/miniapp/dec/BrotliInputStream.java new file mode 100644 index 0000000..0930b2e --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/dec/BrotliInputStream.java @@ -0,0 +1,117 @@ +package com.tt.miniapp.dec; + +import java.io.IOException; +import java.io.InputStream; + +public class BrotliInputStream extends InputStream { + private byte[] buffer; + + private int bufferOffset; + + private int remainingBufferBytes; + + private final State state = new State(); + + public BrotliInputStream(InputStream paramInputStream) throws IOException { + this(paramInputStream, 256); + } + + public BrotliInputStream(InputStream paramInputStream, int paramInt) throws IOException { + if (paramInt > 0) { + if (paramInputStream != null) { + this.buffer = new byte[paramInt]; + this.remainingBufferBytes = 0; + this.bufferOffset = 0; + try { + Decode.initState(this.state, paramInputStream); + return; + } catch (BrotliRuntimeException brotliRuntimeException) { + throw new IOException("Brotli decoder initialization failed", brotliRuntimeException); + } + } + throw new IllegalArgumentException("source is null"); + } + StringBuilder stringBuilder = new StringBuilder("Bad buffer size:"); + stringBuilder.append(paramInt); + throw new IllegalArgumentException(stringBuilder.toString()); + } + + public void close() throws IOException { + Decode.close(this.state); + } + + public int read() throws IOException { + if (this.bufferOffset >= this.remainingBufferBytes) { + byte[] arrayOfByte1 = this.buffer; + this.remainingBufferBytes = read(arrayOfByte1, 0, arrayOfByte1.length); + this.bufferOffset = 0; + if (this.remainingBufferBytes == -1) + return -1; + } + byte[] arrayOfByte = this.buffer; + int i = this.bufferOffset; + this.bufferOffset = i + 1; + return arrayOfByte[i] & 0xFF; + } + + public int read(byte[] paramArrayOfbyte, int paramInt1, int paramInt2) throws IOException { + if (paramInt1 >= 0) { + if (paramInt2 >= 0) { + int i = paramInt1 + paramInt2; + if (i <= paramArrayOfbyte.length) { + if (paramInt2 == 0) + return 0; + int m = Math.max(this.remainingBufferBytes - this.bufferOffset, 0); + i = m; + int j = paramInt1; + int k = paramInt2; + if (m != 0) { + m = Math.min(m, paramInt2); + System.arraycopy(this.buffer, this.bufferOffset, paramArrayOfbyte, paramInt1, m); + this.bufferOffset += m; + j = paramInt1 + m; + paramInt1 = paramInt2 - m; + i = m; + k = paramInt1; + if (paramInt1 == 0) + return m; + } + try { + this.state.output = paramArrayOfbyte; + this.state.outputOffset = j; + this.state.outputLength = k; + this.state.outputUsed = 0; + Decode.decompress(this.state); + if (this.state.outputUsed == 0) + return -1; + paramInt1 = this.state.outputUsed; + return paramInt1 + i; + } catch (BrotliRuntimeException brotliRuntimeException) { + throw new IOException("Brotli stream decoding failed", brotliRuntimeException); + } + } + StringBuilder stringBuilder2 = new StringBuilder("Buffer overflow: "); + stringBuilder2.append(i); + stringBuilder2.append(" > "); + stringBuilder2.append(brotliRuntimeException.length); + throw new IllegalArgumentException(stringBuilder2.toString()); + } + StringBuilder stringBuilder1 = new StringBuilder("Bad length: "); + stringBuilder1.append(paramInt2); + throw new IllegalArgumentException(stringBuilder1.toString()); + } + StringBuilder stringBuilder = new StringBuilder("Bad offset: "); + stringBuilder.append(paramInt1); + throw new IllegalArgumentException(stringBuilder.toString()); + } + + public void setEager(boolean paramBoolean) { + throw new RuntimeException("d2j fail translate: java.lang.RuntimeException: can not merge I and Z\r\n\tat com.googlecode.dex2jar.ir.TypeClass.merge(TypeClass.java:100)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeRef.updateTypeClass(TypeTransformer.java:174)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.copyTypes(TypeTransformer.java:311)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.fixTypes(TypeTransformer.java:226)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer$TypeAnalyze.analyze(TypeTransformer.java:207)\r\n\tat com.googlecode.dex2jar.ir.ts.TypeTransformer.transform(TypeTransformer.java:44)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.optimize(Dex2jar.java:162)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertCode(Dex2Asm.java:414)\r\n\tat com.googlecode.d2j.dex.ExDex2Asm.convertCode(ExDex2Asm.java:42)\r\n\tat com.googlecode.d2j.dex.Dex2jar$2.convertCode(Dex2jar.java:128)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertMethod(Dex2Asm.java:509)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertClass(Dex2Asm.java:406)\r\n\tat com.googlecode.d2j.dex.Dex2Asm.convertDex(Dex2Asm.java:422)\r\n\tat com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:172)\r\n\tat com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:272)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:108)\r\n\tat com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)\r\n\tat com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)\r\n"); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\dec\BrotliInputStream.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/dec/BrotliRuntimeException.java b/df_miniapp/classes/com/tt/miniapp/dec/BrotliRuntimeException.java new file mode 100644 index 0000000..0d0a47a --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/dec/BrotliRuntimeException.java @@ -0,0 +1,17 @@ +package com.tt.miniapp.dec; + +class BrotliRuntimeException extends RuntimeException { + BrotliRuntimeException(String paramString) { + super(paramString); + } + + BrotliRuntimeException(String paramString, Throwable paramThrowable) { + super(paramString, paramThrowable); + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\dec\BrotliRuntimeException.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/dec/Context.java b/df_miniapp/classes/com/tt/miniapp/dec/Context.java new file mode 100644 index 0000000..a3b9a31 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/dec/Context.java @@ -0,0 +1,54 @@ +package com.tt.miniapp.dec; + +final class Context { + static final int[] LOOKUP; + + static { + int[] arrayOfInt = new int[2048]; + LOOKUP = arrayOfInt; + unpackLookupTable(arrayOfInt, " !! ! \"#$##%#$&'##(#)#++++++++++((&*'##,---,---,-----,-----,-----&#'###.///.///./////./////./////&#'# ", "A/* ': & : $  @"); + } + + private static void unpackLookupTable(int[] paramArrayOfint, String paramString1, String paramString2) { + boolean bool = false; + int i; + for (i = 0; i < 256; i++) { + paramArrayOfint[i] = i & 0x3F; + paramArrayOfint[i + 512] = i >> 2; + paramArrayOfint[i + 1792] = (i >> 6) + 2; + } + for (i = 0; i < 128; i++) + paramArrayOfint[i + 1024] = (paramString1.charAt(i) - 32) * 4; + for (i = 0; i < 64; i++) { + int k = i & 0x1; + paramArrayOfint[i + 1152] = k; + paramArrayOfint[i + 1216] = k + 2; + } + int j = 0; + i = 1280; + while (j < 19) { + char c = paramString2.charAt(j); + int k = 0; + while (k < c - 32) { + paramArrayOfint[i] = j & 0x3; + k++; + i++; + } + j++; + } + for (i = 0; i < 16; i++) { + paramArrayOfint[i + 1792] = 1; + paramArrayOfint[i + 2032] = 6; + } + paramArrayOfint[1792] = 0; + paramArrayOfint[2047] = 7; + for (i = bool; i < 256; i++) + paramArrayOfint[i + 1536] = paramArrayOfint[i + 1792] << 3; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\dec\Context.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/dec/Decode.java b/df_miniapp/classes/com/tt/miniapp/dec/Decode.java new file mode 100644 index 0000000..c8550a7 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/dec/Decode.java @@ -0,0 +1,1585 @@ +package com.tt.miniapp.dec; + +import java.io.IOException; +import java.io.InputStream; + +final class Decode { + static final int[] BLOCK_LENGTH_N_BITS; + + static final int[] BLOCK_LENGTH_OFFSET; + + private static final int[] CODE_LENGTH_CODE_ORDER = new int[] { + 1, 2, 3, 4, 0, 5, 17, 6, 16, 7, + 8, 9, 10, 11, 12, 13, 14, 15 }; + + static final int[] COPY_LENGTH_N_BITS; + + static final int[] COPY_LENGTH_OFFSET; + + static final int[] COPY_RANGE_LUT; + + static final int[] DICTIONARY_OFFSETS_BY_LENGTH; + + static final int[] DICTIONARY_SIZE_BITS_BY_LENGTH; + + private static final int[] DISTANCE_SHORT_CODE_INDEX_OFFSET = new int[] { + 3, 2, 1, 0, 3, 3, 3, 3, 3, 3, + 2, 2, 2, 2, 2, 2 }; + + private static final int[] DISTANCE_SHORT_CODE_VALUE_OFFSET = new int[] { + 0, 0, 0, 0, -1, 1, -2, 2, -3, 3, + -1, 1, -2, 2, -3, 3 }; + + private static final int[] FIXED_TABLE = new int[] { + 131072, 131076, 131075, 196610, 131072, 131076, 131075, 262145, 131072, 131076, + 131075, 196610, 131072, 131076, 131075, 262149 }; + + static final int[] INSERT_LENGTH_N_BITS; + + static final int[] INSERT_LENGTH_OFFSET; + + static final int[] INSERT_RANGE_LUT; + + static { + DICTIONARY_OFFSETS_BY_LENGTH = new int[] { + 0, 0, 0, 0, 0, 4096, 9216, 21504, 35840, 44032, + 53248, 63488, 74752, 87040, 93696, 100864, 104704, 106752, 108928, 113536, + 115968, 118528, 119872, 121280, 122016 }; + DICTIONARY_SIZE_BITS_BY_LENGTH = new int[] { + 0, 0, 0, 0, 10, 10, 11, 11, 10, 10, + 10, 10, 10, 9, 9, 8, 7, 7, 8, 7, + 7, 6, 6, 5, 5 }; + BLOCK_LENGTH_OFFSET = new int[] { + 1, 5, 9, 13, 17, 25, 33, 41, 49, 65, + 81, 97, 113, 145, 177, 209, 241, 305, 369, 497, + 753, 1265, 2289, 4337, 8433, 16625 }; + BLOCK_LENGTH_N_BITS = new int[] { + 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, + 4, 4, 5, 5, 5, 5, 6, 6, 7, 8, + 9, 10, 11, 12, 13, 24 }; + INSERT_LENGTH_OFFSET = new int[] { + 0, 1, 2, 3, 4, 5, 6, 8, 10, 14, + 18, 26, 34, 50, 66, 98, 130, 194, 322, 578, + 1090, 2114, 6210, 22594 }; + INSERT_LENGTH_N_BITS = new int[] { + 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, + 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, + 10, 12, 14, 24 }; + COPY_LENGTH_OFFSET = new int[] { + 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, + 14, 18, 22, 30, 38, 54, 70, 102, 134, 198, + 326, 582, 1094, 2118 }; + COPY_LENGTH_N_BITS = new int[] { + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, + 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, + 8, 9, 10, 24 }; + INSERT_RANGE_LUT = new int[] { 0, 0, 8, 8, 0, 16, 8, 16, 16 }; + COPY_RANGE_LUT = new int[] { 0, 8, 0, 8, 16, 0, 16, 8, 16 }; + } + + private static int calculateFence(State paramState) { + int j = paramState.ringBufferSize; + int i = j; + if (paramState.isEager != 0) + i = Math.min(j, paramState.ringBufferBytesWritten + paramState.outputLength - paramState.outputUsed); + return i; + } + + static int checkDupes(int[] paramArrayOfint, int paramInt) { + for (int i = 0; i < paramInt - 1; i = j) { + int j = i + 1; + int k; + for (k = j; k < paramInt; k++) { + if (paramArrayOfint[i] == paramArrayOfint[k]) + return 0; + } + } + return 1; + } + + static void close(State paramState) throws IOException { + if (paramState.runningState != 0) { + if (paramState.runningState == 10) + return; + paramState.runningState = 10; + if (paramState.input != null) { + Utils.closeInput(paramState.input); + paramState.input = null; + } + return; + } + throw new IllegalStateException("State MUST be initialized"); + } + + private static void copyUncompressedData(State paramState) { + byte[] arrayOfByte = paramState.ringBuffer; + if (paramState.metaBlockLength <= 0) { + BitReader.reload(paramState); + paramState.runningState = 1; + return; + } + int i = Math.min(paramState.ringBufferSize - paramState.pos, paramState.metaBlockLength); + BitReader.copyBytes(paramState, arrayOfByte, paramState.pos, i); + paramState.metaBlockLength -= i; + paramState.pos += i; + if (paramState.pos == paramState.ringBufferSize) { + paramState.nextRunningState = 5; + paramState.runningState = 11; + return; + } + BitReader.reload(paramState); + paramState.runningState = 1; + } + + private static int decodeBlockTypeAndLength(State paramState, int paramInt1, int paramInt2) { + int[] arrayOfInt = paramState.rings; + int j = paramInt1 * 2 + 4; + BitReader.fillBitWindow(paramState); + int i = readSymbol(paramState.blockTrees, paramInt1 * 1080, paramState); + int k = readBlockLength(paramState.blockTrees, (paramInt1 + 3) * 1080, paramState); + if (i == 1) { + paramInt1 = arrayOfInt[j + 1] + 1; + } else if (i == 0) { + paramInt1 = arrayOfInt[j]; + } else { + paramInt1 = i - 2; + } + i = paramInt1; + if (paramInt1 >= paramInt2) + i = paramInt1 - paramInt2; + paramInt1 = j + 1; + arrayOfInt[j] = arrayOfInt[paramInt1]; + arrayOfInt[paramInt1] = i; + return k; + } + + private static void decodeCommandBlockSwitch(State paramState) { + paramState.commandBlockLength = decodeBlockTypeAndLength(paramState, 1, paramState.numCommandBlockTypes); + paramState.treeCommandOffset = paramState.hGroup1[paramState.rings[7]]; + } + + private static int decodeContextMap(int paramInt, byte[] paramArrayOfbyte, State paramState) { + byte b; + BitReader.readMoreInput(paramState); + int j = decodeVarLenUnsignedByte(paramState) + 1; + if (j == 1) { + Utils.fillBytesWithZeroes(paramArrayOfbyte, 0, paramInt); + return j; + } + BitReader.fillBitWindow(paramState); + if (BitReader.readFewBits(paramState, 1) != 0) { + b = BitReader.readFewBits(paramState, 4) + 1; + } else { + b = 0; + } + int[] arrayOfInt = new int[1080]; + readHuffmanCode(j + b, arrayOfInt, 0, paramState); + int i; + label32: for (i = 0; i < paramInt; i++) { + BitReader.readMoreInput(paramState); + BitReader.fillBitWindow(paramState); + int k = readSymbol(arrayOfInt, 0, paramState); + if (k == 0) { + paramArrayOfbyte[i] = 0; + } else { + if (k <= b) { + BitReader.fillBitWindow(paramState); + int m = (1 << k) + BitReader.readFewBits(paramState, k); + k = i; + while (true) { + i = k; + if (m != 0) { + if (k < paramInt) { + paramArrayOfbyte[k] = 0; + k++; + m--; + continue; + } + throw new BrotliRuntimeException("Corrupted context map"); + } + continue label32; + } + } + paramArrayOfbyte[i] = (byte)(k - b); + } + } + BitReader.fillBitWindow(paramState); + if (BitReader.readFewBits(paramState, 1) == 1) + inverseMoveToFrontTransform(paramArrayOfbyte, paramInt); + return j; + } + + private static void decodeDistanceBlockSwitch(State paramState) { + paramState.distanceBlockLength = decodeBlockTypeAndLength(paramState, 2, paramState.numDistanceBlockTypes); + paramState.distContextMapSlice = paramState.rings[9] << 2; + } + + private static int[] decodeHuffmanTreeGroup(int paramInt1, int paramInt2, State paramState) { + int[] arrayOfInt = new int[paramInt2 * 1080 + paramInt2]; + int i = 0; + int j = paramInt2; + while (i < paramInt2) { + arrayOfInt[i] = j; + readHuffmanCode(paramInt1, arrayOfInt, j, paramState); + j += 1080; + i++; + } + return arrayOfInt; + } + + private static void decodeLiteralBlockSwitch(State paramState) { + paramState.literalBlockLength = decodeBlockTypeAndLength(paramState, 0, paramState.numLiteralBlockTypes); + int i = paramState.rings[5]; + paramState.contextMapSlice = i << 6; + paramState.literalTreeIndex = paramState.contextMap[paramState.contextMapSlice] & 0xFF; + paramState.literalTree = paramState.hGroup0[paramState.literalTreeIndex]; + paramState.contextLookupOffset1 = paramState.contextModes[i] << 9; + paramState.contextLookupOffset2 = paramState.contextLookupOffset1 + 256; + } + + private static void decodeMetaBlockLength(State paramState) { + BitReader.fillBitWindow(paramState); + paramState.inputEnd = BitReader.readFewBits(paramState, 1); + int i = 0; + int j = 0; + paramState.metaBlockLength = 0; + paramState.isUncompressed = 0; + paramState.isMetadata = 0; + if (paramState.inputEnd != 0 && BitReader.readFewBits(paramState, 1) != 0) + return; + int k = BitReader.readFewBits(paramState, 2) + 4; + if (k == 7) { + paramState.isMetadata = 1; + if (BitReader.readFewBits(paramState, 1) == 0) { + k = BitReader.readFewBits(paramState, 2); + i = j; + if (k == 0) + return; + while (i < k) { + BitReader.fillBitWindow(paramState); + j = BitReader.readFewBits(paramState, 8); + if (j != 0 || i + 1 != k || k <= 1) { + paramState.metaBlockLength = j << i * 8 | paramState.metaBlockLength; + i++; + continue; + } + throw new BrotliRuntimeException("Exuberant nibble"); + } + } else { + throw new BrotliRuntimeException("Corrupted reserved bit"); + } + } else { + while (i < k) { + BitReader.fillBitWindow(paramState); + j = BitReader.readFewBits(paramState, 4); + if (j != 0 || i + 1 != k || k <= 4) { + paramState.metaBlockLength = j << i * 4 | paramState.metaBlockLength; + i++; + continue; + } + throw new BrotliRuntimeException("Exuberant nibble"); + } + } + paramState.metaBlockLength++; + if (paramState.inputEnd == 0) + paramState.isUncompressed = BitReader.readFewBits(paramState, 1); + } + + private static int decodeVarLenUnsignedByte(State paramState) { + BitReader.fillBitWindow(paramState); + if (BitReader.readFewBits(paramState, 1) != 0) { + int i = BitReader.readFewBits(paramState, 3); + return (i == 0) ? 1 : (BitReader.readFewBits(paramState, i) + (1 << i)); + } + return 0; + } + + private static int decodeWindowBits(State paramState) { + BitReader.fillBitWindow(paramState); + if (BitReader.readFewBits(paramState, 1) == 0) + return 16; + int i = BitReader.readFewBits(paramState, 3); + if (i != 0) + return i + 17; + i = BitReader.readFewBits(paramState, 3); + return (i != 0) ? (i + 8) : 17; + } + + static void decompress(State paramState) { + // Byte code: + // 0: aload_0 + // 1: getfield runningState : I + // 4: ifeq -> 1732 + // 7: aload_0 + // 8: getfield runningState : I + // 11: bipush #10 + // 13: if_icmpeq -> 1721 + // 16: aload_0 + // 17: invokestatic calculateFence : (Lcom/tt/miniapp/dec/State;)I + // 20: istore #7 + // 22: aload_0 + // 23: getfield ringBufferSize : I + // 26: iconst_1 + // 27: isub + // 28: istore #8 + // 30: aload_0 + // 31: getfield ringBuffer : [B + // 34: astore #12 + // 36: aload_0 + // 37: getfield runningState : I + // 40: bipush #9 + // 42: if_icmpeq -> 1683 + // 45: aload_0 + // 46: getfield runningState : I + // 49: tableswitch default -> 112, 1 -> 1658, 2 -> 480, 3 -> 489, 4 -> 437, 5 -> 430, 6 -> 659, 7 -> 427, 8 -> 258, 9 -> 112, 10 -> 112, 11 -> 147, 12 -> 168 + // 112: new java/lang/StringBuilder + // 115: dup + // 116: ldc_w 'Unexpected state ' + // 119: invokespecial : (Ljava/lang/String;)V + // 122: astore #12 + // 124: aload #12 + // 126: aload_0 + // 127: getfield runningState : I + // 130: invokevirtual append : (I)Ljava/lang/StringBuilder; + // 133: pop + // 134: new com/tt/miniapp/dec/BrotliRuntimeException + // 137: dup + // 138: aload #12 + // 140: invokevirtual toString : ()Ljava/lang/String; + // 143: invokespecial : (Ljava/lang/String;)V + // 146: athrow + // 147: aload_0 + // 148: aload_0 + // 149: getfield pos : I + // 152: aload_0 + // 153: getfield ringBufferSize : I + // 156: invokestatic min : (II)I + // 159: putfield ringBufferBytesReady : I + // 162: aload_0 + // 163: bipush #12 + // 165: putfield runningState : I + // 168: aload_0 + // 169: invokestatic writeRingBuffer : (Lcom/tt/miniapp/dec/State;)I + // 172: ifne -> 176 + // 175: return + // 176: aload_0 + // 177: getfield pos : I + // 180: aload_0 + // 181: getfield maxBackwardDistance : I + // 184: if_icmplt -> 195 + // 187: aload_0 + // 188: aload_0 + // 189: getfield maxBackwardDistance : I + // 192: putfield maxDistance : I + // 195: aload_0 + // 196: getfield pos : I + // 199: aload_0 + // 200: getfield ringBufferSize : I + // 203: if_icmplt -> 247 + // 206: aload_0 + // 207: getfield pos : I + // 210: aload_0 + // 211: getfield ringBufferSize : I + // 214: if_icmple -> 231 + // 217: aload #12 + // 219: iconst_0 + // 220: aload_0 + // 221: getfield ringBufferSize : I + // 224: aload_0 + // 225: getfield pos : I + // 228: invokestatic copyBytesWithin : ([BIII)V + // 231: aload_0 + // 232: aload_0 + // 233: getfield pos : I + // 236: iload #8 + // 238: iand + // 239: putfield pos : I + // 242: aload_0 + // 243: iconst_0 + // 244: putfield ringBufferBytesWritten : I + // 247: aload_0 + // 248: aload_0 + // 249: getfield nextRunningState : I + // 252: putfield runningState : I + // 255: goto -> 36 + // 258: aload_0 + // 259: getfield copyLength : I + // 262: iconst_4 + // 263: if_icmplt -> 416 + // 266: aload_0 + // 267: getfield copyLength : I + // 270: bipush #24 + // 272: if_icmpgt -> 416 + // 275: getstatic com/tt/miniapp/dec/Decode.DICTIONARY_OFFSETS_BY_LENGTH : [I + // 278: aload_0 + // 279: getfield copyLength : I + // 282: iaload + // 283: istore_1 + // 284: aload_0 + // 285: getfield distance : I + // 288: aload_0 + // 289: getfield maxDistance : I + // 292: isub + // 293: iconst_1 + // 294: isub + // 295: istore_2 + // 296: getstatic com/tt/miniapp/dec/Decode.DICTIONARY_SIZE_BITS_BY_LENGTH : [I + // 299: aload_0 + // 300: getfield copyLength : I + // 303: iaload + // 304: istore_3 + // 305: iload_2 + // 306: iload_3 + // 307: iushr + // 308: istore #4 + // 310: aload_0 + // 311: getfield copyLength : I + // 314: istore #5 + // 316: iload #4 + // 318: bipush #121 + // 320: if_icmpge -> 405 + // 323: aload #12 + // 325: aload_0 + // 326: getfield pos : I + // 329: invokestatic getData : ()Ljava/nio/ByteBuffer; + // 332: iconst_1 + // 333: iload_3 + // 334: ishl + // 335: iconst_1 + // 336: isub + // 337: iload_2 + // 338: iand + // 339: iload #5 + // 341: imul + // 342: iload_1 + // 343: iadd + // 344: aload_0 + // 345: getfield copyLength : I + // 348: iload #4 + // 350: invokestatic transformDictionaryWord : ([BILjava/nio/ByteBuffer;III)I + // 353: istore_1 + // 354: aload_0 + // 355: aload_0 + // 356: getfield pos : I + // 359: iload_1 + // 360: iadd + // 361: putfield pos : I + // 364: aload_0 + // 365: aload_0 + // 366: getfield metaBlockLength : I + // 369: iload_1 + // 370: isub + // 371: putfield metaBlockLength : I + // 374: aload_0 + // 375: getfield pos : I + // 378: iload #7 + // 380: if_icmplt -> 397 + // 383: aload_0 + // 384: iconst_3 + // 385: putfield nextRunningState : I + // 388: aload_0 + // 389: bipush #11 + // 391: putfield runningState : I + // 394: goto -> 36 + // 397: aload_0 + // 398: iconst_3 + // 399: putfield runningState : I + // 402: goto -> 36 + // 405: new com/tt/miniapp/dec/BrotliRuntimeException + // 408: dup + // 409: ldc_w 'Invalid backward reference' + // 412: invokespecial : (Ljava/lang/String;)V + // 415: athrow + // 416: new com/tt/miniapp/dec/BrotliRuntimeException + // 419: dup + // 420: ldc_w 'Invalid backward reference' + // 423: invokespecial : (Ljava/lang/String;)V + // 426: athrow + // 427: goto -> 1349 + // 430: aload_0 + // 431: invokestatic copyUncompressedData : (Lcom/tt/miniapp/dec/State;)V + // 434: goto -> 36 + // 437: aload_0 + // 438: getfield metaBlockLength : I + // 441: ifle -> 472 + // 444: aload_0 + // 445: invokestatic readMoreInput : (Lcom/tt/miniapp/dec/State;)V + // 448: aload_0 + // 449: invokestatic fillBitWindow : (Lcom/tt/miniapp/dec/State;)V + // 452: aload_0 + // 453: bipush #8 + // 455: invokestatic readFewBits : (Lcom/tt/miniapp/dec/State;I)I + // 458: pop + // 459: aload_0 + // 460: aload_0 + // 461: getfield metaBlockLength : I + // 464: iconst_1 + // 465: isub + // 466: putfield metaBlockLength : I + // 469: goto -> 437 + // 472: aload_0 + // 473: iconst_1 + // 474: putfield runningState : I + // 477: goto -> 36 + // 480: aload_0 + // 481: invokestatic readMetablockHuffmanCodesAndContextMaps : (Lcom/tt/miniapp/dec/State;)V + // 484: aload_0 + // 485: iconst_3 + // 486: putfield runningState : I + // 489: aload_0 + // 490: getfield metaBlockLength : I + // 493: ifgt -> 504 + // 496: aload_0 + // 497: iconst_1 + // 498: putfield runningState : I + // 501: goto -> 36 + // 504: aload_0 + // 505: invokestatic readMoreInput : (Lcom/tt/miniapp/dec/State;)V + // 508: aload_0 + // 509: getfield commandBlockLength : I + // 512: ifne -> 519 + // 515: aload_0 + // 516: invokestatic decodeCommandBlockSwitch : (Lcom/tt/miniapp/dec/State;)V + // 519: aload_0 + // 520: aload_0 + // 521: getfield commandBlockLength : I + // 524: iconst_1 + // 525: isub + // 526: putfield commandBlockLength : I + // 529: aload_0 + // 530: invokestatic fillBitWindow : (Lcom/tt/miniapp/dec/State;)V + // 533: aload_0 + // 534: getfield hGroup1 : [I + // 537: aload_0 + // 538: getfield treeCommandOffset : I + // 541: aload_0 + // 542: invokestatic readSymbol : ([IILcom/tt/miniapp/dec/State;)I + // 545: istore_3 + // 546: iload_3 + // 547: bipush #6 + // 549: iushr + // 550: istore_2 + // 551: aload_0 + // 552: iconst_0 + // 553: putfield distanceCode : I + // 556: iload_2 + // 557: istore_1 + // 558: iload_2 + // 559: iconst_2 + // 560: if_icmplt -> 572 + // 563: iload_2 + // 564: iconst_2 + // 565: isub + // 566: istore_1 + // 567: aload_0 + // 568: iconst_m1 + // 569: putfield distanceCode : I + // 572: getstatic com/tt/miniapp/dec/Decode.INSERT_RANGE_LUT : [I + // 575: iload_1 + // 576: iaload + // 577: iload_3 + // 578: iconst_3 + // 579: iushr + // 580: bipush #7 + // 582: iand + // 583: iadd + // 584: istore_2 + // 585: aload_0 + // 586: invokestatic fillBitWindow : (Lcom/tt/miniapp/dec/State;)V + // 589: aload_0 + // 590: getstatic com/tt/miniapp/dec/Decode.INSERT_LENGTH_N_BITS : [I + // 593: iload_2 + // 594: iaload + // 595: invokestatic readBits : (Lcom/tt/miniapp/dec/State;I)I + // 598: istore #4 + // 600: aload_0 + // 601: getstatic com/tt/miniapp/dec/Decode.INSERT_LENGTH_OFFSET : [I + // 604: iload_2 + // 605: iaload + // 606: iload #4 + // 608: iadd + // 609: putfield insertLength : I + // 612: getstatic com/tt/miniapp/dec/Decode.COPY_RANGE_LUT : [I + // 615: iload_1 + // 616: iaload + // 617: iload_3 + // 618: bipush #7 + // 620: iand + // 621: iadd + // 622: istore_1 + // 623: aload_0 + // 624: invokestatic fillBitWindow : (Lcom/tt/miniapp/dec/State;)V + // 627: aload_0 + // 628: getstatic com/tt/miniapp/dec/Decode.COPY_LENGTH_N_BITS : [I + // 631: iload_1 + // 632: iaload + // 633: invokestatic readBits : (Lcom/tt/miniapp/dec/State;I)I + // 636: istore_2 + // 637: aload_0 + // 638: getstatic com/tt/miniapp/dec/Decode.COPY_LENGTH_OFFSET : [I + // 641: iload_1 + // 642: iaload + // 643: iload_2 + // 644: iadd + // 645: putfield copyLength : I + // 648: aload_0 + // 649: iconst_0 + // 650: putfield j : I + // 653: aload_0 + // 654: bipush #6 + // 656: putfield runningState : I + // 659: aload_0 + // 660: getfield trivialLiteralContext : I + // 663: ifeq -> 770 + // 666: aload_0 + // 667: getfield j : I + // 670: aload_0 + // 671: getfield insertLength : I + // 674: if_icmpge -> 767 + // 677: aload_0 + // 678: invokestatic readMoreInput : (Lcom/tt/miniapp/dec/State;)V + // 681: aload_0 + // 682: getfield literalBlockLength : I + // 685: ifne -> 692 + // 688: aload_0 + // 689: invokestatic decodeLiteralBlockSwitch : (Lcom/tt/miniapp/dec/State;)V + // 692: aload_0 + // 693: aload_0 + // 694: getfield literalBlockLength : I + // 697: iconst_1 + // 698: isub + // 699: putfield literalBlockLength : I + // 702: aload_0 + // 703: invokestatic fillBitWindow : (Lcom/tt/miniapp/dec/State;)V + // 706: aload #12 + // 708: aload_0 + // 709: getfield pos : I + // 712: aload_0 + // 713: getfield hGroup0 : [I + // 716: aload_0 + // 717: getfield literalTree : I + // 720: aload_0 + // 721: invokestatic readSymbol : ([IILcom/tt/miniapp/dec/State;)I + // 724: i2b + // 725: bastore + // 726: aload_0 + // 727: aload_0 + // 728: getfield pos : I + // 731: iconst_1 + // 732: iadd + // 733: putfield pos : I + // 736: aload_0 + // 737: aload_0 + // 738: getfield j : I + // 741: iconst_1 + // 742: iadd + // 743: putfield j : I + // 746: aload_0 + // 747: getfield pos : I + // 750: iload #7 + // 752: if_icmplt -> 666 + // 755: aload_0 + // 756: bipush #6 + // 758: putfield nextRunningState : I + // 761: aload_0 + // 762: bipush #11 + // 764: putfield runningState : I + // 767: goto -> 965 + // 770: aload #12 + // 772: aload_0 + // 773: getfield pos : I + // 776: iconst_1 + // 777: isub + // 778: iload #8 + // 780: iand + // 781: baload + // 782: sipush #255 + // 785: iand + // 786: istore_1 + // 787: aload #12 + // 789: aload_0 + // 790: getfield pos : I + // 793: iconst_2 + // 794: isub + // 795: iload #8 + // 797: iand + // 798: baload + // 799: sipush #255 + // 802: iand + // 803: istore_2 + // 804: iload_2 + // 805: istore_3 + // 806: iload_1 + // 807: istore_2 + // 808: aload_0 + // 809: getfield j : I + // 812: aload_0 + // 813: getfield insertLength : I + // 816: if_icmpge -> 767 + // 819: aload_0 + // 820: invokestatic readMoreInput : (Lcom/tt/miniapp/dec/State;)V + // 823: aload_0 + // 824: getfield literalBlockLength : I + // 827: ifne -> 834 + // 830: aload_0 + // 831: invokestatic decodeLiteralBlockSwitch : (Lcom/tt/miniapp/dec/State;)V + // 834: aload_0 + // 835: getfield contextMap : [B + // 838: astore #13 + // 840: aload_0 + // 841: getfield contextMapSlice : I + // 844: istore_1 + // 845: getstatic com/tt/miniapp/dec/Context.LOOKUP : [I + // 848: aload_0 + // 849: getfield contextLookupOffset1 : I + // 852: iload_2 + // 853: iadd + // 854: iaload + // 855: istore #4 + // 857: aload #13 + // 859: iload_1 + // 860: getstatic com/tt/miniapp/dec/Context.LOOKUP : [I + // 863: aload_0 + // 864: getfield contextLookupOffset2 : I + // 867: iload_3 + // 868: iadd + // 869: iaload + // 870: iload #4 + // 872: ior + // 873: iadd + // 874: baload + // 875: istore_1 + // 876: aload_0 + // 877: aload_0 + // 878: getfield literalBlockLength : I + // 881: iconst_1 + // 882: isub + // 883: putfield literalBlockLength : I + // 886: aload_0 + // 887: invokestatic fillBitWindow : (Lcom/tt/miniapp/dec/State;)V + // 890: aload_0 + // 891: getfield hGroup0 : [I + // 894: aload_0 + // 895: getfield hGroup0 : [I + // 898: iload_1 + // 899: sipush #255 + // 902: iand + // 903: iaload + // 904: aload_0 + // 905: invokestatic readSymbol : ([IILcom/tt/miniapp/dec/State;)I + // 908: istore_1 + // 909: aload #12 + // 911: aload_0 + // 912: getfield pos : I + // 915: iload_1 + // 916: i2b + // 917: bastore + // 918: aload_0 + // 919: aload_0 + // 920: getfield pos : I + // 923: iconst_1 + // 924: iadd + // 925: putfield pos : I + // 928: aload_0 + // 929: aload_0 + // 930: getfield j : I + // 933: iconst_1 + // 934: iadd + // 935: putfield j : I + // 938: aload_0 + // 939: getfield pos : I + // 942: iload #7 + // 944: if_icmplt -> 962 + // 947: aload_0 + // 948: bipush #6 + // 950: putfield nextRunningState : I + // 953: aload_0 + // 954: bipush #11 + // 956: putfield runningState : I + // 959: goto -> 965 + // 962: goto -> 804 + // 965: aload_0 + // 966: getfield runningState : I + // 969: bipush #6 + // 971: if_icmpne -> 36 + // 974: aload_0 + // 975: aload_0 + // 976: getfield metaBlockLength : I + // 979: aload_0 + // 980: getfield insertLength : I + // 983: isub + // 984: putfield metaBlockLength : I + // 987: aload_0 + // 988: getfield metaBlockLength : I + // 991: ifgt -> 1002 + // 994: aload_0 + // 995: iconst_3 + // 996: putfield runningState : I + // 999: goto -> 36 + // 1002: aload_0 + // 1003: getfield distanceCode : I + // 1006: ifge -> 1208 + // 1009: aload_0 + // 1010: invokestatic readMoreInput : (Lcom/tt/miniapp/dec/State;)V + // 1013: aload_0 + // 1014: getfield distanceBlockLength : I + // 1017: ifne -> 1024 + // 1020: aload_0 + // 1021: invokestatic decodeDistanceBlockSwitch : (Lcom/tt/miniapp/dec/State;)V + // 1024: aload_0 + // 1025: aload_0 + // 1026: getfield distanceBlockLength : I + // 1029: iconst_1 + // 1030: isub + // 1031: putfield distanceBlockLength : I + // 1034: aload_0 + // 1035: invokestatic fillBitWindow : (Lcom/tt/miniapp/dec/State;)V + // 1038: aload_0 + // 1039: getfield hGroup2 : [I + // 1042: astore #13 + // 1044: aload_0 + // 1045: getfield hGroup2 : [I + // 1048: astore #14 + // 1050: aload_0 + // 1051: getfield distContextMap : [B + // 1054: astore #15 + // 1056: aload_0 + // 1057: getfield distContextMapSlice : I + // 1060: istore_2 + // 1061: aload_0 + // 1062: getfield copyLength : I + // 1065: iconst_4 + // 1066: if_icmple -> 1074 + // 1069: iconst_3 + // 1070: istore_1 + // 1071: goto -> 1081 + // 1074: aload_0 + // 1075: getfield copyLength : I + // 1078: iconst_2 + // 1079: isub + // 1080: istore_1 + // 1081: aload_0 + // 1082: aload #13 + // 1084: aload #14 + // 1086: aload #15 + // 1088: iload_2 + // 1089: iload_1 + // 1090: iadd + // 1091: baload + // 1092: sipush #255 + // 1095: iand + // 1096: iaload + // 1097: aload_0 + // 1098: invokestatic readSymbol : ([IILcom/tt/miniapp/dec/State;)I + // 1101: putfield distanceCode : I + // 1104: aload_0 + // 1105: getfield distanceCode : I + // 1108: aload_0 + // 1109: getfield numDirectDistanceCodes : I + // 1112: if_icmplt -> 1208 + // 1115: aload_0 + // 1116: aload_0 + // 1117: getfield distanceCode : I + // 1120: aload_0 + // 1121: getfield numDirectDistanceCodes : I + // 1124: isub + // 1125: putfield distanceCode : I + // 1128: aload_0 + // 1129: getfield distanceCode : I + // 1132: istore_1 + // 1133: aload_0 + // 1134: getfield distancePostfixMask : I + // 1137: istore_2 + // 1138: aload_0 + // 1139: aload_0 + // 1140: getfield distanceCode : I + // 1143: aload_0 + // 1144: getfield distancePostfixBits : I + // 1147: iushr + // 1148: putfield distanceCode : I + // 1151: aload_0 + // 1152: getfield distanceCode : I + // 1155: iconst_1 + // 1156: iushr + // 1157: iconst_1 + // 1158: iadd + // 1159: istore_3 + // 1160: aload_0 + // 1161: getfield distanceCode : I + // 1164: istore #4 + // 1166: aload_0 + // 1167: invokestatic fillBitWindow : (Lcom/tt/miniapp/dec/State;)V + // 1170: aload_0 + // 1171: iload_3 + // 1172: invokestatic readBits : (Lcom/tt/miniapp/dec/State;I)I + // 1175: istore #5 + // 1177: aload_0 + // 1178: aload_0 + // 1179: getfield numDirectDistanceCodes : I + // 1182: iload_1 + // 1183: iload_2 + // 1184: iand + // 1185: iadd + // 1186: iload #4 + // 1188: iconst_1 + // 1189: iand + // 1190: iconst_2 + // 1191: iadd + // 1192: iload_3 + // 1193: ishl + // 1194: iconst_4 + // 1195: isub + // 1196: iload #5 + // 1198: iadd + // 1199: aload_0 + // 1200: getfield distancePostfixBits : I + // 1203: ishl + // 1204: iadd + // 1205: putfield distanceCode : I + // 1208: aload_0 + // 1209: aload_0 + // 1210: getfield distanceCode : I + // 1213: aload_0 + // 1214: getfield rings : [I + // 1217: aload_0 + // 1218: getfield distRbIdx : I + // 1221: invokestatic translateShortCodes : (I[II)I + // 1224: putfield distance : I + // 1227: aload_0 + // 1228: getfield distance : I + // 1231: iflt -> 1647 + // 1234: aload_0 + // 1235: getfield maxDistance : I + // 1238: aload_0 + // 1239: getfield maxBackwardDistance : I + // 1242: if_icmpeq -> 1267 + // 1245: aload_0 + // 1246: getfield pos : I + // 1249: aload_0 + // 1250: getfield maxBackwardDistance : I + // 1253: if_icmpge -> 1267 + // 1256: aload_0 + // 1257: aload_0 + // 1258: getfield pos : I + // 1261: putfield maxDistance : I + // 1264: goto -> 1275 + // 1267: aload_0 + // 1268: aload_0 + // 1269: getfield maxBackwardDistance : I + // 1272: putfield maxDistance : I + // 1275: aload_0 + // 1276: getfield distance : I + // 1279: aload_0 + // 1280: getfield maxDistance : I + // 1283: if_icmple -> 1295 + // 1286: aload_0 + // 1287: bipush #8 + // 1289: putfield runningState : I + // 1292: goto -> 36 + // 1295: aload_0 + // 1296: getfield distanceCode : I + // 1299: ifle -> 1327 + // 1302: aload_0 + // 1303: getfield rings : [I + // 1306: aload_0 + // 1307: getfield distRbIdx : I + // 1310: iconst_3 + // 1311: iand + // 1312: aload_0 + // 1313: getfield distance : I + // 1316: iastore + // 1317: aload_0 + // 1318: aload_0 + // 1319: getfield distRbIdx : I + // 1322: iconst_1 + // 1323: iadd + // 1324: putfield distRbIdx : I + // 1327: aload_0 + // 1328: getfield copyLength : I + // 1331: aload_0 + // 1332: getfield metaBlockLength : I + // 1335: if_icmpgt -> 1636 + // 1338: aload_0 + // 1339: iconst_0 + // 1340: putfield j : I + // 1343: aload_0 + // 1344: bipush #7 + // 1346: putfield runningState : I + // 1349: iconst_0 + // 1350: istore #4 + // 1352: aload_0 + // 1353: getfield pos : I + // 1356: aload_0 + // 1357: getfield distance : I + // 1360: isub + // 1361: iload #8 + // 1363: iand + // 1364: istore #5 + // 1366: aload_0 + // 1367: getfield pos : I + // 1370: istore #6 + // 1372: aload_0 + // 1373: getfield copyLength : I + // 1376: aload_0 + // 1377: getfield j : I + // 1380: isub + // 1381: istore #9 + // 1383: iload #5 + // 1385: iload #9 + // 1387: iadd + // 1388: istore #10 + // 1390: iload #6 + // 1392: iload #9 + // 1394: iadd + // 1395: istore #11 + // 1397: iload #10 + // 1399: iload #8 + // 1401: if_icmpge -> 1532 + // 1404: iload #11 + // 1406: iload #8 + // 1408: if_icmpge -> 1532 + // 1411: iload #4 + // 1413: istore_1 + // 1414: iload #5 + // 1416: istore_2 + // 1417: iload #6 + // 1419: istore_3 + // 1420: iload #9 + // 1422: bipush #12 + // 1424: if_icmplt -> 1467 + // 1427: iload #10 + // 1429: iload #6 + // 1431: if_icmple -> 1453 + // 1434: iload #11 + // 1436: iload #5 + // 1438: if_icmple -> 1453 + // 1441: iload #4 + // 1443: istore_1 + // 1444: iload #5 + // 1446: istore_2 + // 1447: iload #6 + // 1449: istore_3 + // 1450: goto -> 1467 + // 1453: aload #12 + // 1455: iload #6 + // 1457: iload #5 + // 1459: iload #10 + // 1461: invokestatic copyBytesWithin : ([BIII)V + // 1464: goto -> 1496 + // 1467: iload_1 + // 1468: iload #9 + // 1470: if_icmpge -> 1496 + // 1473: aload #12 + // 1475: iload_3 + // 1476: aload #12 + // 1478: iload_2 + // 1479: baload + // 1480: bastore + // 1481: iload_1 + // 1482: iconst_1 + // 1483: iadd + // 1484: istore_1 + // 1485: iload_3 + // 1486: iconst_1 + // 1487: iadd + // 1488: istore_3 + // 1489: iload_2 + // 1490: iconst_1 + // 1491: iadd + // 1492: istore_2 + // 1493: goto -> 1467 + // 1496: aload_0 + // 1497: aload_0 + // 1498: getfield j : I + // 1501: iload #9 + // 1503: iadd + // 1504: putfield j : I + // 1507: aload_0 + // 1508: aload_0 + // 1509: getfield metaBlockLength : I + // 1512: iload #9 + // 1514: isub + // 1515: putfield metaBlockLength : I + // 1518: aload_0 + // 1519: aload_0 + // 1520: getfield pos : I + // 1523: iload #9 + // 1525: iadd + // 1526: putfield pos : I + // 1529: goto -> 1619 + // 1532: aload_0 + // 1533: getfield j : I + // 1536: aload_0 + // 1537: getfield copyLength : I + // 1540: if_icmpge -> 1619 + // 1543: aload #12 + // 1545: aload_0 + // 1546: getfield pos : I + // 1549: aload #12 + // 1551: aload_0 + // 1552: getfield pos : I + // 1555: aload_0 + // 1556: getfield distance : I + // 1559: isub + // 1560: iload #8 + // 1562: iand + // 1563: baload + // 1564: bastore + // 1565: aload_0 + // 1566: aload_0 + // 1567: getfield metaBlockLength : I + // 1570: iconst_1 + // 1571: isub + // 1572: putfield metaBlockLength : I + // 1575: aload_0 + // 1576: aload_0 + // 1577: getfield pos : I + // 1580: iconst_1 + // 1581: iadd + // 1582: putfield pos : I + // 1585: aload_0 + // 1586: aload_0 + // 1587: getfield j : I + // 1590: iconst_1 + // 1591: iadd + // 1592: putfield j : I + // 1595: aload_0 + // 1596: getfield pos : I + // 1599: iload #7 + // 1601: if_icmplt -> 1532 + // 1604: aload_0 + // 1605: bipush #7 + // 1607: putfield nextRunningState : I + // 1610: aload_0 + // 1611: bipush #11 + // 1613: putfield runningState : I + // 1616: goto -> 1619 + // 1619: aload_0 + // 1620: getfield runningState : I + // 1623: bipush #7 + // 1625: if_icmpne -> 36 + // 1628: aload_0 + // 1629: iconst_3 + // 1630: putfield runningState : I + // 1633: goto -> 36 + // 1636: new com/tt/miniapp/dec/BrotliRuntimeException + // 1639: dup + // 1640: ldc_w 'Invalid backward reference' + // 1643: invokespecial : (Ljava/lang/String;)V + // 1646: athrow + // 1647: new com/tt/miniapp/dec/BrotliRuntimeException + // 1650: dup + // 1651: ldc_w 'Negative distance' + // 1654: invokespecial : (Ljava/lang/String;)V + // 1657: athrow + // 1658: aload_0 + // 1659: getfield metaBlockLength : I + // 1662: iflt -> 1672 + // 1665: aload_0 + // 1666: invokestatic readNextMetablockHeader : (Lcom/tt/miniapp/dec/State;)V + // 1669: goto -> 16 + // 1672: new com/tt/miniapp/dec/BrotliRuntimeException + // 1675: dup + // 1676: ldc_w 'Invalid metablock length' + // 1679: invokespecial : (Ljava/lang/String;)V + // 1682: athrow + // 1683: aload_0 + // 1684: getfield runningState : I + // 1687: bipush #9 + // 1689: if_icmpne -> 1720 + // 1692: aload_0 + // 1693: getfield metaBlockLength : I + // 1696: iflt -> 1709 + // 1699: aload_0 + // 1700: invokestatic jumpToByteBoundary : (Lcom/tt/miniapp/dec/State;)V + // 1703: aload_0 + // 1704: iconst_1 + // 1705: invokestatic checkHealth : (Lcom/tt/miniapp/dec/State;I)V + // 1708: return + // 1709: new com/tt/miniapp/dec/BrotliRuntimeException + // 1712: dup + // 1713: ldc_w 'Invalid metablock length' + // 1716: invokespecial : (Ljava/lang/String;)V + // 1719: athrow + // 1720: return + // 1721: new java/lang/IllegalStateException + // 1724: dup + // 1725: ldc_w 'Can't decompress after close' + // 1728: invokespecial : (Ljava/lang/String;)V + // 1731: athrow + // 1732: new java/lang/IllegalStateException + // 1735: dup + // 1736: ldc_w 'Can't decompress until initialized' + // 1739: invokespecial : (Ljava/lang/String;)V + // 1742: astore_0 + // 1743: goto -> 1748 + // 1746: aload_0 + // 1747: athrow + // 1748: goto -> 1746 + } + + static void initState(State paramState, InputStream paramInputStream) { + if (paramState.runningState == 0) { + paramState.blockTrees = new int[6480]; + paramState.input = paramInputStream; + BitReader.initBitReader(paramState); + int i = decodeWindowBits(paramState); + if (i != 9) { + paramState.maxRingBufferSize = 1 << i; + paramState.maxBackwardDistance = paramState.maxRingBufferSize - 16; + paramState.runningState = 1; + return; + } + throw new BrotliRuntimeException("Invalid 'windowBits' code"); + } + throw new IllegalStateException("State MUST be uninitialized"); + } + + private static void inverseMoveToFrontTransform(byte[] paramArrayOfbyte, int paramInt) { + int i; + int[] arrayOfInt = new int[256]; + byte b = 0; + int j = 0; + while (true) { + i = b; + if (j < 256) { + arrayOfInt[j] = j; + j++; + continue; + } + break; + } + while (i < paramInt) { + j = paramArrayOfbyte[i] & 0xFF; + paramArrayOfbyte[i] = (byte)arrayOfInt[j]; + if (j != 0) + moveToFront(arrayOfInt, j); + i++; + } + } + + private static void maybeReallocateRingBuffer(State paramState) { + int i = paramState.maxRingBufferSize; + int j = i; + if (i > paramState.expectedTotalSize) { + int k = paramState.expectedTotalSize; + while (true) { + j = i >> 1; + if (j > k) { + i = j; + continue; + } + j = i; + if (paramState.inputEnd == 0) { + j = i; + if (i < 16384) { + j = i; + if (paramState.maxRingBufferSize >= 16384) + j = 16384; + } + } + break; + } + } + if (j <= paramState.ringBufferSize) + return; + byte[] arrayOfByte = new byte[j + 37]; + if (paramState.ringBuffer.length != 0) + System.arraycopy(paramState.ringBuffer, 0, arrayOfByte, 0, paramState.ringBufferSize); + paramState.ringBuffer = arrayOfByte; + paramState.ringBufferSize = j; + } + + private static void moveToFront(int[] paramArrayOfint, int paramInt) { + int i = paramArrayOfint[paramInt]; + while (paramInt > 0) { + paramArrayOfint[paramInt] = paramArrayOfint[paramInt - 1]; + paramInt--; + } + paramArrayOfint[0] = i; + } + + private static int readBlockLength(int[] paramArrayOfint, int paramInt, State paramState) { + BitReader.fillBitWindow(paramState); + paramInt = readSymbol(paramArrayOfint, paramInt, paramState); + int i = BLOCK_LENGTH_N_BITS[paramInt]; + BitReader.fillBitWindow(paramState); + return BLOCK_LENGTH_OFFSET[paramInt] + BitReader.readBits(paramState, i); + } + + static void readHuffmanCode(int paramInt1, int[] paramArrayOfint, int paramInt2, State paramState) { + int i; + BitReader.readMoreInput(paramState); + int[] arrayOfInt = new int[paramInt1]; + BitReader.fillBitWindow(paramState); + int j = BitReader.readFewBits(paramState, 2); + boolean bool = false; + if (j == 1) { + j = paramInt1 - 1; + int[] arrayOfInt1 = new int[4]; + int k = BitReader.readFewBits(paramState, 2) + 1; + for (i = 0; j != 0; i++) + j >>= 1; + for (j = 0; j < k; j++) { + BitReader.fillBitWindow(paramState); + arrayOfInt1[j] = BitReader.readFewBits(paramState, i) % paramInt1; + arrayOfInt[arrayOfInt1[j]] = 2; + } + arrayOfInt[arrayOfInt1[0]] = 1; + if (k != 2) { + if (k == 4) + if (BitReader.readFewBits(paramState, 1) == 1) { + arrayOfInt[arrayOfInt1[2]] = 3; + arrayOfInt[arrayOfInt1[3]] = 3; + } else { + arrayOfInt[arrayOfInt1[0]] = 2; + } + } else { + arrayOfInt[arrayOfInt1[1]] = 1; + } + i = checkDupes(arrayOfInt1, k); + } else { + int[] arrayOfInt1 = new int[18]; + int k = 32; + for (i = 0; j < 18 && k > 0; i = m) { + int m = CODE_LENGTH_CODE_ORDER[j]; + BitReader.fillBitWindow(paramState); + int n = BitReader.peekBits(paramState) & 0xF; + int i1 = paramState.bitOffset; + int[] arrayOfInt2 = FIXED_TABLE; + paramState.bitOffset = i1 + (arrayOfInt2[n] >> 16); + i1 = arrayOfInt2[n] & 0xFFFF; + arrayOfInt1[m] = i1; + n = k; + m = i; + if (i1 != 0) { + n = k - (32 >> i1); + m = i + 1; + } + j++; + k = n; + } + if (k != 0 && i != 1) { + i = bool; + } else { + i = 1; + } + readHuffmanCodeLengths(arrayOfInt1, paramInt1, arrayOfInt, paramState); + } + if (i != 0) { + Huffman.buildHuffmanTable(paramArrayOfint, paramInt2, 8, arrayOfInt, paramInt1); + return; + } + BrotliRuntimeException brotliRuntimeException = new BrotliRuntimeException("Can't readHuffmanCode"); + throw brotliRuntimeException; + } + + private static void readHuffmanCodeLengths(int[] paramArrayOfint1, int paramInt, int[] paramArrayOfint2, State paramState) { + int m; + int[] arrayOfInt = new int[32]; + Huffman.buildHuffmanTable(arrayOfInt, 0, 5, paramArrayOfint1, 18); + int i = 0; + int k = 32768; + int j = 8; + int n = 0; + label48: while (true) { + int i1 = 0; + m = k; + while (i < paramInt && m > 0) { + BitReader.readMoreInput(paramState); + BitReader.fillBitWindow(paramState); + k = BitReader.peekBits(paramState) & 0x1F; + paramState.bitOffset += arrayOfInt[k] >> 16; + k = arrayOfInt[k] & 0xFFFF; + if (k < 16) { + i1 = i + 1; + paramArrayOfint2[i] = k; + if (k != 0) { + m -= 32768 >> k; + i = i1; + j = k; + k = m; + continue label48; + } + i = i1; + k = m; + continue label48; + } + int i3 = k - 14; + if (k == 16) { + k = j; + } else { + k = 0; + } + int i2 = n; + if (n != k) { + i1 = 0; + i2 = k; + } + if (i1 > 0) { + k = i1 - 2 << i3; + } else { + k = i1; + } + BitReader.fillBitWindow(paramState); + k += BitReader.readFewBits(paramState, i3) + 3; + n = k - i1; + if (i + n <= paramInt) { + i1 = 0; + while (i1 < n) { + paramArrayOfint2[i] = i2; + i1++; + i++; + } + i1 = m; + if (i2 != 0) + i1 = m - (n << 15 - i2); + m = i1; + n = i2; + i1 = k; + continue; + } + throw new BrotliRuntimeException("symbol + repeatDelta > numSymbols"); + } + break; + } + if (m == 0) { + Utils.fillIntsWithZeroes(paramArrayOfint2, i, paramInt); + return; + } + BrotliRuntimeException brotliRuntimeException = new BrotliRuntimeException("Unused space"); + throw brotliRuntimeException; + } + + private static void readMetablockHuffmanCodesAndContextMaps(State paramState) { + paramState.numLiteralBlockTypes = decodeVarLenUnsignedByte(paramState) + 1; + paramState.literalBlockLength = readMetablockPartition(paramState, 0, paramState.numLiteralBlockTypes); + paramState.numCommandBlockTypes = decodeVarLenUnsignedByte(paramState) + 1; + paramState.commandBlockLength = readMetablockPartition(paramState, 1, paramState.numCommandBlockTypes); + paramState.numDistanceBlockTypes = decodeVarLenUnsignedByte(paramState) + 1; + paramState.distanceBlockLength = readMetablockPartition(paramState, 2, paramState.numDistanceBlockTypes); + BitReader.readMoreInput(paramState); + BitReader.fillBitWindow(paramState); + paramState.distancePostfixBits = BitReader.readFewBits(paramState, 2); + paramState.numDirectDistanceCodes = (BitReader.readFewBits(paramState, 4) << paramState.distancePostfixBits) + 16; + paramState.distancePostfixMask = (1 << paramState.distancePostfixBits) - 1; + int j = paramState.numDirectDistanceCodes; + int k = paramState.distancePostfixBits; + paramState.contextModes = new byte[paramState.numLiteralBlockTypes]; + int i = 0; + while (i < paramState.numLiteralBlockTypes) { + int n = Math.min(i + 96, paramState.numLiteralBlockTypes); + while (i < n) { + BitReader.fillBitWindow(paramState); + paramState.contextModes[i] = (byte)BitReader.readFewBits(paramState, 2); + i++; + } + BitReader.readMoreInput(paramState); + } + paramState.contextMap = new byte[paramState.numLiteralBlockTypes << 6]; + int m = decodeContextMap(paramState.numLiteralBlockTypes << 6, paramState.contextMap, paramState); + paramState.trivialLiteralContext = 1; + for (i = 0; i < paramState.numLiteralBlockTypes << 6; i++) { + if (paramState.contextMap[i] != i >> 6) { + paramState.trivialLiteralContext = 0; + break; + } + } + paramState.distContextMap = new byte[paramState.numDistanceBlockTypes << 2]; + i = decodeContextMap(paramState.numDistanceBlockTypes << 2, paramState.distContextMap, paramState); + paramState.hGroup0 = decodeHuffmanTreeGroup(256, m, paramState); + paramState.hGroup1 = decodeHuffmanTreeGroup(704, paramState.numCommandBlockTypes, paramState); + paramState.hGroup2 = decodeHuffmanTreeGroup(j + (48 << k), i, paramState); + paramState.contextMapSlice = 0; + paramState.distContextMapSlice = 0; + paramState.contextLookupOffset1 = paramState.contextModes[0] << 9; + paramState.contextLookupOffset2 = paramState.contextLookupOffset1 + 256; + paramState.literalTreeIndex = 0; + paramState.literalTree = paramState.hGroup0[0]; + paramState.treeCommandOffset = paramState.hGroup1[0]; + paramState.rings[4] = 1; + paramState.rings[5] = 0; + paramState.rings[6] = 1; + paramState.rings[7] = 0; + paramState.rings[8] = 1; + paramState.rings[9] = 0; + } + + private static int readMetablockPartition(State paramState, int paramInt1, int paramInt2) { + if (paramInt2 <= 1) + return 268435456; + readHuffmanCode(paramInt2 + 2, paramState.blockTrees, paramInt1 * 1080, paramState); + int[] arrayOfInt = paramState.blockTrees; + paramInt1 = (paramInt1 + 3) * 1080; + readHuffmanCode(26, arrayOfInt, paramInt1, paramState); + return readBlockLength(paramState.blockTrees, paramInt1, paramState); + } + + private static void readNextMetablockHeader(State paramState) { + if (paramState.inputEnd != 0) { + paramState.nextRunningState = 9; + paramState.runningState = 11; + return; + } + paramState.hGroup0 = new int[0]; + paramState.hGroup1 = new int[0]; + paramState.hGroup2 = new int[0]; + BitReader.readMoreInput(paramState); + decodeMetaBlockLength(paramState); + if (paramState.metaBlockLength == 0 && paramState.isMetadata == 0) + return; + if (paramState.isUncompressed != 0 || paramState.isMetadata != 0) { + byte b; + BitReader.jumpToByteBoundary(paramState); + if (paramState.isMetadata != 0) { + b = 4; + } else { + b = 5; + } + paramState.runningState = b; + } else { + paramState.runningState = 2; + } + if (paramState.isMetadata != 0) + return; + paramState.expectedTotalSize += paramState.metaBlockLength; + if (paramState.expectedTotalSize > 1073741824) + paramState.expectedTotalSize = 1073741824; + if (paramState.ringBufferSize < paramState.maxRingBufferSize) + maybeReallocateRingBuffer(paramState); + } + + private static int readSymbol(int[] paramArrayOfint, int paramInt, State paramState) { + int i = BitReader.peekBits(paramState); + paramInt += i & 0xFF; + int j = paramArrayOfint[paramInt] >> 16; + int k = paramArrayOfint[paramInt] & 0xFFFF; + if (j <= 8) { + paramState.bitOffset += j; + return k; + } + paramInt = paramInt + k + ((i & (1 << j) - 1) >>> 8); + paramState.bitOffset += (paramArrayOfint[paramInt] >> 16) + 8; + return paramArrayOfint[paramInt] & 0xFFFF; + } + + private static int translateShortCodes(int paramInt1, int[] paramArrayOfint, int paramInt2) { + return (paramInt1 < 16) ? (paramArrayOfint[paramInt2 + DISTANCE_SHORT_CODE_INDEX_OFFSET[paramInt1] & 0x3] + DISTANCE_SHORT_CODE_VALUE_OFFSET[paramInt1]) : (paramInt1 - 16 + 1); + } + + private static int writeRingBuffer(State paramState) { + int i = Math.min(paramState.outputLength - paramState.outputUsed, paramState.ringBufferBytesReady - paramState.ringBufferBytesWritten); + if (i != 0) { + System.arraycopy(paramState.ringBuffer, paramState.ringBufferBytesWritten, paramState.output, paramState.outputOffset + paramState.outputUsed, i); + paramState.outputUsed += i; + paramState.ringBufferBytesWritten += i; + } + return (paramState.outputUsed < paramState.outputLength) ? 1 : 0; + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\dec\Decode.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/dec/Dictionary.java b/df_miniapp/classes/com/tt/miniapp/dec/Dictionary.java new file mode 100644 index 0000000..b765172 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/dec/Dictionary.java @@ -0,0 +1,46 @@ +package com.tt.miniapp.dec; + +import java.nio.ByteBuffer; + +public final class Dictionary { + private static volatile ByteBuffer data; + + public static ByteBuffer getData() { + if (data != null) + return data; + if (DataLoader.OK) + return data; + throw new BrotliRuntimeException("brotli dictionary is not set"); + } + + public static void setData(ByteBuffer paramByteBuffer) { + if (paramByteBuffer.isDirect() && paramByteBuffer.isReadOnly()) { + data = paramByteBuffer; + return; + } + throw new BrotliRuntimeException("data must be a direct read-only byte buffer"); + } + + static class DataLoader { + static final boolean OK; + + static { + boolean bool; + try { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(Dictionary.class.getPackage().getName()); + stringBuilder.append(".DictionaryData"); + Class.forName(stringBuilder.toString()); + } finally { + Exception exception = null; + } + OK = bool; + } + } +} + + +/* Location: C:\Users\august\Desktop\tik\df_miniapp\classes.jar!\com\tt\miniapp\dec\Dictionary.class + * Java compiler version: 6 (50.0) + * JD-Core Version: 1.1.3 + */ \ No newline at end of file diff --git a/df_miniapp/classes/com/tt/miniapp/dec/DictionaryData.java b/df_miniapp/classes/com/tt/miniapp/dec/DictionaryData.java new file mode 100644 index 0000000..3eec7a8 --- /dev/null +++ b/df_miniapp/classes/com/tt/miniapp/dec/DictionaryData.java @@ -0,0 +1,46 @@ +package com.tt.miniapp.dec; + +import java.nio.ByteBuffer; + +final class DictionaryData { + static { + ByteBuffer byteBuffer = ByteBuffer.allocateDirect(122784); + unpackDictionaryData(byteBuffer, "timedownlifeleftbackcodedatashowonlysitecityopenjustlikefreeworktextyearoverbodyloveformbookplaylivelinehelphomesidemorewordlongthemviewfindpagedaysfullheadtermeachareafromtruemarkableuponhighdatelandnewsevennextcasebothpostusedmadehandherewhatnameLinkblogsizebaseheldmakemainuser') +holdendswithNewsreadweresigntakehavegameseencallpathwellplusmenufilmpartjointhislistgoodneedwayswestjobsmindalsologorichuseslastteamarmyfoodkingwilleastwardbestfirePageknowaway.pngmovethanloadgiveselfnotemuchfeedmanyrockicononcelookhidediedHomerulehostajaxinfoclublawslesshalfsomesuchzone100%onescareTimeracebluefourweekfacehopegavehardlostwhenparkkeptpassshiproomHTMLplanTypedonesavekeepflaglinksoldfivetookratetownjumpthusdarkcardfilefearstaykillthatfallautoever.comtalkshopvotedeepmoderestturnbornbandfellroseurl(skinrolecomeactsagesmeetgold.jpgitemvaryfeltthensenddropViewcopy1.0\"stopelseliestourpack.gifpastcss?graymean>rideshotlatesaidroadvar feeljohnrickportfast'UA-deadpoorbilltypeU.S.woodmust2px;Inforankwidewantwalllead[0];paulwavesure$('#waitmassarmsgoesgainlangpaid!-- lockunitrootwalkfirmwifexml\"songtest20pxkindrowstoolfontmailsafestarmapscorerainflowbabyspansays4px;6px;artsfootrealwikiheatsteptriporg/lakeweaktoldFormcastfansbankveryrunsjulytask1px;goalgrewslowedgeid=\"sets5px;.js?40pxif (soonseatnonetubezerosentreedfactintogiftharm18pxcamehillboldzoomvoideasyringfillpeakinitcost3px;jacktagsbitsrolleditknewnearironfreddiskwentsoilputs/js/holyT22:ISBNT20:adamsees

json', 'contT21: RSSloopasiamoon

soulLINEfortcartT14:

80px!--<9px;T04:mike:46ZniceinchYorkricezh:d'));puremageparatonebond:37Z_of_']);000,zh:gtankyardbowlbush:56ZJava30px\n|}\n%C3%:34ZjeffEXPIcashvisagolfsnowzh:iquer.csssickmeatmin.binddellhirepicsrent:36ZHTTP-201fotowolfEND xbox:54ZBODYdick;\n}\nexit:35Zvarsbeat'});diet999;anne}}sonyguysfuckpipe|-\n!002)ndow[1];[];\nLog salt\r\n\t\tbangtrimbath){\r\n00px\n});ko:lfeesad>\rs:// [];tollplug(){\n{\r\n .js'200pdualboat.JPG);\n}quot);\n\n');\n\r\n}\r201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037201320122011201020092008200720062005200420032002200120001999199819971996199519941993199219911990198919881987198619851984198319821981198019791978197719761975197419731972197119701969196819671966196519641963196219611960195919581957195619551954195319521951195010001024139400009999comomC!sesteestaperotodohacecadaaC1obiendC-aasC-vidacasootroforosolootracualdijosidograntipotemadebealgoquC)estonadatrespococasabajotodasinoaguapuesunosantediceluisellamayozonaamorpisoobraclicellodioshoracasiP7P0P=P0P>PP>Q\002P8P7P=P>P4P>Q\002P>P6P5P>P=P8Q\005P\035P0P5P5P1Q\013PP2Q\013P2P>P\035P>P>P1P\037P>P;P8P=P8P P$P\035P5P\034Q\013Q\002Q\013P\036P=P8Pthing.org/multiheardPowerstandtokensolid(thisbringshipsstafftriedcallsfullyfactsagentThis //-->adminegyptEvent15px;Emailtrue\"crossspentblogsbox\">notedleavechinasizesguest

robotheavytrue,sevengrandcrimesignsawaredancephase>\n\n\r\nname=diegopage swiss-->\n\n#fff;\">Log.com\"treatsheet) && 14px;sleepntentfiledja:c\003id=\"cName\"worseshots-box-delta\n<bears:48Z spendbakershops= \"\";php\">ction13px;brianhellosize=o=%2F joinmaybe, fjsimg\" \")[0]MTopBType\"newlyDanskczechtrailknowsfaq\">zh-cn10);\n-1\");type=bluestrulydavis.js';>\r\n\r\nform jesus100% menu.\r\n\t\r\nwalesrisksumentddingb-likteachgif\" vegasdanskeestishqipsuomisobredesdeentretodospuedeaC1osestC!tienehastaotrospartedondenuevohacerformamismomejormundoaquC-dC-assC3loayudafechatodastantomenosdatosotrassitiomuchoahoralugarmayorestoshorastenerantesfotosestaspaC-snuevasaludforosmedioquienmesespoderchileserC!vecesdecirjosC)estarventagrupohechoellostengoamigocosasnivelgentemismaairesjuliotemashaciafavorjuniolibrepuntobuenoautorabrilbuenatextomarzosaberlistaluegocC3moenerojuegoperC:haberestoynuncamujervalorfueralibrogustaigualvotoscasosguC-apuedosomosavisousteddebennochebuscafaltaeurosseriedichocursoclavecasasleC3nplazolargoobrasvistaapoyojuntotratavistocrearcampohemoscincocargopisosordenhacenC!readiscopedrocercapuedapapelmenorC:tilclarojorgecalleponertardenadiemarcasigueellassiglocochemotosmadreclaserestoniC1oquedapasarbancohijosviajepabloC)stevienereinodejarfondocanalnorteletracausatomarmanoslunesautosvillavendopesartipostengamarcollevapadreunidovamoszonasambosbandamariaabusomuchasubirriojavivirgradochicaallC-jovendichaestantalessalirsuelopesosfinesllamabuscoC)stalleganegroplazahumorpagarjuntadobleislasbolsabaC1ohablaluchaC\001readicenjugarnotasvalleallC!cargadolorabajoestC)gustomentemariofirmacostofichaplatahogarartesleyesaquelmuseobasespocosmitadcielochicomiedoganarsantoetapadebesplayaredessietecortecoreadudasdeseoviejodeseaaguas"domaincommonstatuseventsmastersystemactionbannerremovescrollupdateglobalmediumfilternumberchangeresultpublicscreenchoosenormaltravelissuessourcetargetspringmodulemobileswitchphotosborderregionitselfsocialactivecolumnrecordfollowtitle>eitherlengthfamilyfriendlayoutauthorcreatereviewsummerserverplayedplayerexpandpolicyformatdoublepointsseriespersonlivingdesignmonthsforcesuniqueweightpeopleenergynaturesearchfigurehavingcustomoffsetletterwindowsubmitrendergroupsuploadhealthmethodvideosschoolfutureshadowdebatevaluesObjectothersrightsleaguechromesimplenoticesharedendingseasonreportonlinesquarebuttonimagesenablemovinglatestwinterFranceperiodstrongrepeatLondondetailformeddemandsecurepassedtoggleplacesdevicestaticcitiesstreamyellowattackstreetflighthiddeninfo\">openedusefulvalleycausesleadersecretseconddamagesportsexceptratingsignedthingseffectfieldsstatesofficevisualeditorvolumeReportmuseummoviesparentaccessmostlymother\" id=\"marketgroundchancesurveybeforesymbolmomentspeechmotioninsidematterCenterobjectexistsmiddleEuropegrowthlegacymannerenoughcareeransweroriginportalclientselectrandomclosedtopicscomingfatheroptionsimplyraisedescapechosenchurchdefinereasoncorneroutputmemoryiframepolicemodelsNumberduringoffersstyleskilledlistedcalledsilvermargindeletebetterbrowselimitsGlobalsinglewidgetcenterbudgetnowrapcreditclaimsenginesafetychoicespirit-stylespreadmakingneededrussiapleaseextentScriptbrokenallowschargedividefactormember-basedtheoryconfigaroundworkedhelpedChurchimpactshouldalwayslogo\" bottomlist\">){var prefixorangeHeader.push(couplegardenbridgelaunchReviewtakingvisionlittledatingButtonbeautythemesforgotSearchanchoralmostloadedChangereturnstringreloadMobileincomesupplySourceordersviewed courseAbout island: The dialoghousesBEGIN MexicostartscentreheightaddingIslandassetsEmpireSchooleffortdirectnearlymanualSelect.\n\nOnejoinedmenu\">PhilipawardshandleimportOfficeregardskillsnationSportsdegreeweekly (e.g.behinddoctorloggedunitedbeyond-scaleacceptservedmarineFootercamera\n_form\"leavesstress\" />\r\n.gif\" onloadloaderOxfordsistersurvivlistenfemaleDesignsize=\"appealtext\">levelsthankshigherforcedanimalanyoneAfricaagreedrecentPeople
wonderpricesturned|| {};main\">inlinesundaywrap\">failedcensusminutebeaconquotes150px|estateremoteemail\"linkedright;signalformal1.htmlsignupprincefloat:.png\" forum.AccesspaperssoundsextendHeightsliderUTF-8\"& Before. WithstudioownersmanageprofitjQueryannualparamsboughtfamousgooglelongeri++) {israelsayingdecidehome\">headerensurebranchpiecesblock;statedtop\">boston.test(avatartested_countforumsschemaindex,filledsharesreaderalert(appearSubmitline\">body\">\n* TheThoughseeingjerseyNews\nSystem DavidcancertablesprovedApril reallydriveritem\">more\">boardscolorscampusfirst || [];media.guitarfinishwidth:showedOther .php\" assumelayerswilsonstoresreliefswedenCustomeasily your String\n\nWhiltaylorclear:resortfrenchthough\") + \"buyingbrandsMembername\">oppingsector5px;\">vspacepostermajor coffeemartinmaturehappenkansaslink\">Images=falsewhile hspace0& \n\nIn powerPolski-colorjordanBottomStart -count2.htmlnews\">01.jpgOnline-rightmillerseniorISBN 00,000 guidesvalue)ectionrepair.xml\" rights.html-blockregExp:hoverwithinvirginphones\rusing \n\tvar >');\n\t\n\nbahasabrasilgalegomagyarpolskisrpskiX1X/Y\bd8-f\026\007g.\000d=\023g9\001i+\024d?!f\001/d8-e\033=f\b\021d;,d8\000d8*e\005,e\0178g.!g\020\006h.:e\035\033e\017/d;%f\034\re\n!f\0276i\0274d8*d::d:'e\023\001h\007*e71d<\001d8\032f\037%g\034\013e7%d=\034h\001\024g3;f2!f\034\tg=\021g+\031f\t\000f\034\th/\004h.:d8-e?\003f\026\007g+ g\024(f\b7i&\026i!5d=\034h\000\005f\n\000f\034/i\027.i\"\030g\0338e\0053d8\013h==f\020\034g4\"d=?g\024(h=/d;6e\034(g:?d8;i\"\030h5\004f\026\031h'\006i\"\021e\033\036e$\rf3(e\006\fg=\021g;\034f\0246h\027\017e\006\005e.9f\016(h\r\020e8\002e\034:f6\bf\001/g):i\0274e\017\021e8\003d;\000d9\be%=e\017\013g\024\037f4;e\033>g\t\007e\017\021e1\025e&\002f\036\034f\t\013f\034:f\0260i\027;f\034\000f\0260f\0269e<\017e\f\027d:,f\017\020d>\033e\0053d:\016f\0334e$\032h?\031d8*g3;g;\037g\037%i\001\023f88f\b\017e9?e\021\ne\0056d;\026e\017\021h!(e.\te\005(g,,d8\000d<\032e\021\030h?\033h!\fg\0029e\007;g\t\bf\035\003g\0245e-\020d8\026g\025\fh.>h.!e\005\rh49f\025\031h\0022e\n e\005%f4;e\n(d;\026d;,e\025\006e\023\001e\r\032e.\"g\0160e\034(d8\nf57e&\002d=\025e72g;\017g\025\031h(\000h/&g;\006g$>e\f:g\031;e=\025f\034,g+\031i\034\000h&\001d;7f f\016%e\033=e.6e;:h.>f\034\013e\017\013i\030\005h/;f3\025e>\013d=\rg=.g;\017f5\016i\000\tf\013)h?\031f 7e=\023e\t\re\b\006g1;f\016\022h!\fe\033 d8:d:$f\030\023f\034\000e\020\016i\0373d9\020d8\rh\003=i\000\032h?\007h!\fd8\032g'\021f\n\000e\017/h\003=h.>e$\007e\020\bd=\034e$'e.6g$>d<\032g \024g)6d8\023d8\032e\005(i\003(i!9g\033.h?\031i\007\fh?\030f\030/e<\000e'\013f\003\005e\0065g\0245h\004\021f\026\007d;6e\023\001g\t\fe8.e\n)f\026\007e\f\026h5\004f:\020e$'e-&e-&d9 e\0340e\035\000f5\017h'\bf\n\025h5\004e7%g(\013h&\001f1\002f\000\016d9\bf\0276e\000\031e\n\037h\003=d8;h&\001g\033.e\t\rh5\004h./e\037\016e8\002f\0269f3\025g\0245e=1f\013\033h\001\030e#0f\030\016d;;d=\025e\001%e:7f\0250f\r.g>\016e\033=f1=h=&d;\013g;\rd=\006f\030/d:$f5\001g\024\037d:'f\t\000d;%g\0245h/\035f\030>g$:d8\000d:\033e\r\025d=\rd::e\021\030e\b\006f\036\020e\0340e\033>f\027\005f88e7%e\0057e-&g\024\037g3;e\b\027g=\021e\017\013e8\026e-\020e/\006g \001i\"\021i\001\023f\016'e\b6e\0340e\f:e\037:f\034,e\005(e\033=g=\021d8\ni\007\rh&\001g,,d:\fe\026\034f,\"h?\033e\005%e\017\013f\003\005h?\031d:\033h\000\003h/\025e\017\021g\0160e\0379h.-d;%d8\nf\024?e:\034f\b\020d8:g\016/e\"\003i&\031f8/e\020\ff\0276e(1d9\020e\017\021i\000\001d8\000e.\032e<\000e\017\021d=\034e\023\001f \007e\007\006f,\"h?\016h'#e\0063e\0340f\0269d8\000d8\013d;%e\017\nh4#d;;f\b\026h\000\005e.\"f\b7d;#h!(g'/e\b\006e%3d::f\0250g \001i\024\000e\024.e\007:g\0160g&;g:?e:\024g\024(e\b\027h!(d8\re\020\fg<\026h>\021g;\037h.!f\037%h/\"d8\rh&\001f\034\te\0053f\034:f\036\004e>\be$\032f\022-f\024>g;\004g;\007f\024?g-\026g\0334f\016%h\003=e\n\033f\035%f:\020f\031\002i\026\023g\034\013e\b0g\003-i\027(e\0053i\024.d8\023e\f:i\035\036e88h\0131h/-g\031>e:&e8\ff\034\033g>\016e%3f/\024h>\003g\037%h/\006h'\004e.\032e;:h..i\003(i\027(f\004\017h'\001g2>e=)f\027%f\034,f\017\020i+\030e\017\021h(\000f\0269i\035\"e\037:i\007\021e$\004g\020\006f\035\003i\031\020e=1g\t\007i\0236h!\fh?\030f\034\te\b\006d:+g\t)e\023\001g;\017h\020%f7;e\n d8\023e.6h?\031g'\rh/\035i\"\030h57f\035%d8\032e\n!e\005,e\021\nh.0e=\025g.\000d;\013h4(i\007\017g\0247d::e=1e\023\re<\025g\024(f\n%e\021\ni\003(e\b\006e?+i\000\037e\022(h/\"f\0276e0\032f3(f\004\017g\0243h/7e-&f !e:\024h/%e\016\006e\0172e\017*f\030/h?\024e\033\036h4-d90e\020\rg'0d8:d:\006f\b\020e\n\037h/4f\030\016d>\033e:\024e-)e-\020d8\023i\"\030g(\013e:\017d8\000h\b,f\034\003e\023!e\017*f\034\te\0056e.\003d?\035f\n$h\000\fd8\024d;\ne$)g*\027e\017#e\n(f\000\001g\n6f\000\001g\t9e\b+h.$d8:e?\005i!;f\0334f\0260e0\017h/4f\b\021e\000\021d=\034d8:e*\022d=\023e\f\005f\013,i\002#d9\bd8\000f 7e\033=e\006\005f\030/e\020&f 9f\r.g\0245h'\006e-&i\031\"e\0057f\034\th?\007g(\013g\0241d:\016d::f\t\re\007:f\035%d8\rh?\007f-#e\034(f\030\016f\030\037f\025\005d:\013e\0053g3;f \007i\"\030e\025\006e\n!h>\023e\005%d8\000g\0334e\037:g!\000f\025\031e-&d:\006h'#e;:g-\021g;\023f\036\034e\005(g\020\003i\000\032g\037%h.!e\b\022e/9d:\016h\t:f\034/g\0338e\006\fe\017\021g\024\037g\034\037g\032\004e;:g+\013g-\tg:'g1;e\036\013g;\017i*\fe.\036g\0160e\b6d=\034f\035%h\007*f \007g->d;%d8\013e\016\037e\b\033f\027 f3\025e\0056d8-e\000\013d::d8\000e\b\007f\f\007e\r\027e\0053i\027-i\033\006e\033\"g,,d8\te\0053f3(e\033 f-$g\005'g\t\007f71e\0343e\025\006d8\032e9?e7\036f\027%f\034\037i+\030g:'f\034\000h?\021g;\021h!\fd8:d:$i\000\032h/\004d;7h'\te>\027g2>e\r\016e.6e:-e.\ff\b\020f\004\037h'\te.\th#\005e>\027e\b0i\002.d;6e\b6e:&i#\037e\023\001h\031=g\0046h=,h==f\n%d;7h.0h\000\005f\0269f!\bh!\ff\024?d::f0\021g\024(e\023\001d8\034h%?f\017\020e\007:i\005\022e:\027g\0046e\020\016d;\030f,>g\003-g\0029d;%e\t\re.\fe\005(e\017\021e8\026h.>g=.i\"\006e/g%\036h\0167e>\027e\b)g\024(g;'g;-d= d;,h?\031d9\bf(!e<\017h/-h(\000h\003=e$\037i\033\005h\031\016f\023\rd=\034i#\016f d9&f\034\tf\025\bf5\013h/\025g';e\n(f\t\rh\003=e\0063e.\032h\002!g%(d8\rf\026-i\034\000f1\002d8\re>\027e\n\036f3\025d9\013i\0274i\007\007g\024(h\020%i\024\000f\n\025h/\tg\033.f \007g\b1f\003\005f\021\004e=1f\034\td:\033h$\007h#=f\026\007e-&f\034:d<\032f\0250e-\027h#\005d?.h4-g\t)e\006\034f\035\021e\005(i\035\"g2>e\023\001e\0056e.\036d:\013f\003\005f04e93f\017\020g$:d8\ne8\002h0\"h0\"f\031.i\000\032f\025\031e8\bd8\nd< g1;e\b+f-\ff\0332f\013%f\034\te\b\033f\0260i\005\rd;6e\017*h&\001f\0276d;#h3\007h(\nh>>e\b0d::g\024\037h.\"i\030\005h\000\001e8\be1\025g$:e?\003g\020\006h44e-\020g62g+\031d8;i!\fh\007*g\0046g:'e\b+g.\000e\r\025f\0249i\035)i\002#d:\033f\035%h/4f\t\023e<\000d;#g \001e\b i\031$h/\001e\b8h\n\002g\033.i\007\rg\0029f,!f\0258e$\032e0\021h'\004e\b\022h5\004i\007\021f\t>e\b0d;%e\020\016e$'e\005(d8;i!5f\034\000d=3e\033\036g-\024e$)d8\013d?\035i\032\034g\0160d;#f#\000f\037%f\n\025g%(e0\017f\0276f2\022f\034\tf-#e88g\024\032h\0073d;#g\020\006g\033.e=\025e\005,e<\000e$\re\b6i\007\021h\036\re98g&\017g\t\bf\034,e=\"f\b\020e\007\006e$\007h!\ff\003\005e\033\036e\b0f\000\035f\0033f\000\016f 7e\r\017h..h.$h/\001f\034\000e%=d:'g\024\037f\f\tg\005'f\034\rh#\005e9?d8\034e\n(f<+i\007\007h4-f\0260f\t\013g;\004e\033>i\035\"f\035?e\017\002h\000\003f\024?f2;e.9f\030\023e$)e\0340e\n*e\n\033d::d;,e\r\007g:'i\000\037e:&d::g\t)h0\003f\0254f5\001h!\fi\000 f\b\020f\026\007e-\027i\037)e\033=h48f\030\023e<\000e1\025g\0338i\027\034h!(g\0160e=1h'\006e&\002f-$g>\016e.9e$'e0\017f\n%i\001\023f\035!f,>e?\003f\003\005h.8e$\032f3\025h'\004e.6e1\005d9&e:\027h?\036f\016%g+\013e\r3d8>f\n%f\n\000e7'e%%h?\020g\031;e\005%d;%f\035%g\020\006h.:d:\013d;6h\007*g\0241d8-e\r\016e\n\036e\005,e&\be&\bg\034\037f-#d8\ri\024\031e\005(f\026\007e\020\be\020\fd;7e\000e7&e\0173h\002!d;=g-\024f!\be.\036i\031\005g\0245d?!g;\017g\020\006g\024\037e\021=e.#d< d;;e\n!f-#e<\017g\t9h\t2d8\013f\035%e\r\017d<\032e\017*h\003=e=\023g\0046i\007\rf\0260e\005'e.9f\f\007e/g(\013e\f;g\026\027g;\017h?\007h?\007e\016;d9\013e\t\rf\0246e\005%e94e:&f\035\002e?\027g>\016d8=f\034\000i+\030g\031;i\031\006f\034*f\035%e\n e7%e\005\rh4#f\025\031g(\013g\t\be\035\027h:+d=\023i\007\re:\006e\007:e\024.f\b\020f\034,e=\"e<\017e\034\037h1\006e\007:e\0039d8\034f\0269i\002.g.1e\r\027d:,f1\002h\001\fe\017\026e>\027h\001\fd=\rg\0338d?!i!5i\035\"e\b\006i\022\037g=\021i!5g!.e.\032e\033>d>\013g=\021e\035\000g'/f\036\001i\024\031h//g\033.g\032\004e.\035h4\035f\034:e\0053i#\016i\031)f\016\bf\035\003g\027\005f/\022e. g\t)i\031$d:\006h)\025h+\026g\026>g\027\005e\017\nf\0276f1\002h4-g+\031g\0029e\004?g+%f/\017e$)d8-e$.h.$h/\006f/\017d8*e$)f4%e-\027d=\023e\0170g\001#g;4f\n$f\034,i!5d8*f\000'e.\030f\0269e88h'\001g\0338f\034:f\b\030g\025%e:\024e=\023e>\013e8\bf\0269d>?f !e\033-h\002!e8\002f\b?e1\013f \017g\033.e\021\030e7%e/\016e\005\003e<\025h57f\0249e\017\030g,,e\033\033d<\032h.!h**f\030\016i\032\020g'\001e.\035e.\035h'\004h\f\003f6\bh49e\0051e\020\fe?\030h.0d=\023g3;e8&f\035%e\020\re-\027g\031e\n g\033\037e\017\027e\b0d:\ff\t\013e$'i\007\017f\b\020d::f\0250i\007\017e\0051d:+e\f:e\037\037e%3e-)e\016\037e\b\031f\t\000e\034(g;\023f\035\037i\000\032d?!h6\005g:'i\005\rg=.e=\023f\0276d<\030g'\000f\000'f\004\037f\b?d:'i\001\nf\b2e\007:e\017#f\017\020d:$e01d8\032d?\035e\001%g(\013e:&e\017\002f\0250d:\013d8\032f\0254d8*e11d8\034f\003\005f\004\037g\t9f.\ne\b\006i!\036f\020\034e0\013e1\036d:\016i\027(f\b7h4\"e\n!e#0i\0373e\017\ne\0056h4\"g;\017e\035\032f\f\001e92i\003(f\b\020g+\013e\b)g\033\nh\000\003h\031\021f\b\020i\003=e\f\005h#\005g\024(f\b6f/\024h5\033f\026\007f\030\016f\013\033e\025\006e.\ff\0254g\034\037f\030/g\034e/\006g\"\016i#\037g;?h\t2g(3e.\032g;\bd:\016g\024\037g\t)d>\033f1\002f\020\034g\013\020e\n\033i\007\017d8%i\007\rf08h?\034e\006\031g\034\037f\034\ti\031\020g+\036d:\te/9h1!h49g\024(d8\re%=g;\035e/9e\r\001e\b\006d?\003h?\033g\0029h/\004e=1i\0373d<\030e\n?d8\re0\021f,#h5\017e96d8\024f\034\tg\0029f\0269e\020\021e\005(f\0260d?!g\024(h.>f\026=e=\"h1!h5\004f \016e\025\006e\037\016g;\037d8\000e\007:g\t\bf\t\023i\000 g\024\"e\023\001f&\002e\0065g\024(d:\016d?\035g\025\031e\033 g4 d8-e\034\013e-\030e\002(h44e\033>f\034\000f\004\033i\025?f\034\037e\017#d;7g\020\006h4\"e\037:e\0340e.\tf\016\022f-&f1\ti\007\fi\035\"e\b\033e;:e$)g):i&\026e\005\be.\fe\026\004i)1e\n(d8\013i\035\"d8\re\006\rh/\032d?!f\004\017d9\ti\0303e\005\th\0131e\033=f<\002d:.e\006\033d:\013g\016)e.6g>$d<\027e\006\034f0\021e\r3e\017/e\020\rg(1e.6e\0057e\n(g\024;f\0033e\b0f3(f\030\016e0\017e-&f\000'h\003=h\000\003g \024g!,d;6h'\002g\034\013f8\005f%\032f\020\036g,\021i&\026i \001i;\004i\007\021i\000\002g\024(f1\037h\013\017g\034\037e.\036d8;g.!i\0306f.5h(;e\006\ng?;h/\021f\035\003e\b)e\001\032e%=d<P:P0P:P8P;P8Q\rQ\002P>P2Q\001P5P5P3P>P?Q\000P8Q\002P0P:P5Q\tP5Q\003P6P5P\032P0P:P1P5P7P1Q\013P;P>P=P8P\022Q\001P5P?P>P4P-Q\002P>Q\002P>PP=P0P3P4P5PP3P>P4P2P>Q\002Q\002P0PP2P0Q\001P2P0PQ\002Q\003Q\002P=P0P4P4P=Q\017P\022P>Q\002Q\002Q\000P8P=P5P9P\022P0Q\001P=P8PQ\002Q\000Q\003P1P\036P=P8PPP9P4P2P5P>P=P>Q\001Q\003P4`$\025`%\007`$9`%\b`$\025`%\000`$8`%\007`$\025`$>`$\025`%\013`$\024`$0`$*`$0`$(`%\007`$\017`$\025`$\025`$?`$-`%\000`$\007`$8`$\025`$0`$$`%\013`$9`%\013`$\006`$*`$9`%\000`$/`$9`$/`$>`$$`$\025`$%`$>jagran`$\006`$\034`$\034`%\013`$\005`$,`$&`%\013`$\027`$\b`$\034`$>`$\027`$\017`$9`$.`$\007`$(`$5`$9`$/`%\007`$%`%\007`$%`%\000`$\030`$0`$\034`$,`$&`%\000`$\025`$\b`$\034`%\000`$5`%\007`$(`$\b`$(`$\017`$9`$0`$\t`$8`$.`%\007`$\025`$.`$5`%\013`$2`%\007`$8`$,`$.`$\b`$&`%\007`$\023`$0`$\006`$.`$,`$8`$-`$0`$,`$(`$\032`$2`$.`$(`$\006`$\027`$8`%\000`$2`%\000X9Y\004Y\tX%Y\004Y\tY\007X0X'X\"X.X1X9X/X/X'Y\004Y\tY\007X0Y\007X5Y\bX1X:Y\nX1Y\003X'Y\006Y\bY\004X'X(Y\nY\006X9X1X6X0Y\004Y\003Y\007Y\006X'Y\nY\bY\005Y\002X'Y\004X9Y\004Y\nX'Y\006X'Y\004Y\003Y\006X-X*Y\tY\002X(Y\004Y\bX-X)X'X.X1Y\001Y\002X7X9X(X/X1Y\003Y\006X%X0X'Y\003Y\005X'X'X-X/X%Y\004X'Y\001Y\nY\007X(X9X6Y\003Y\nY\001X(X-X+Y\bY\005Y\006Y\bY\007Y\bX#Y\006X'X,X/X'Y\004Y\007X'X3Y\004Y\005X9Y\006X/Y\004Y\nX3X9X(X1X5Y\004Y\tY\005Y\006X0X(Y\007X'X#Y\006Y\007Y\005X+Y\004Y\003Y\006X*X'Y\004X'X-Y\nX+Y\005X5X1X4X1X-X-Y\bY\004Y\bY\001Y\nX'X0X'Y\004Y\003Y\004Y\005X1X)X'Y\006X*X'Y\004Y\001X#X(Y\bX.X'X5X#Y\006X*X'Y\006Y\007X'Y\004Y\nX9X6Y\bY\bY\002X/X'X(Y\006X.Y\nX1X(Y\006X*Y\004Y\003Y\005X4X'X!Y\bY\007Y\nX'X(Y\bY\002X5X5Y\bY\005X'X1Y\002Y\005X#X-X/Y\006X-Y\006X9X/Y\005X1X#Y\nX'X-X)Y\003X*X(X/Y\bY\006Y\nX,X(Y\005Y\006Y\007X*X-X*X,Y\007X)X3Y\006X)Y\nX*Y\005Y\003X1X)X:X2X)Y\006Y\001X3X(Y\nX*Y\004Y\004Y\007Y\004Y\006X'X*Y\004Y\003Y\002Y\004X(Y\004Y\005X'X9Y\006Y\007X#Y\bY\004X4Y\nX!Y\006Y\bX1X#Y\005X'Y\001Y\nY\003X(Y\003Y\004X0X'X*X1X*X(X(X#Y\006Y\007Y\005X3X'Y\006Y\003X(Y\nX9Y\001Y\002X/X-X3Y\006Y\004Y\007Y\005X4X9X1X#Y\007Y\004X4Y\007X1Y\002X7X1X7Y\004X(profileservicedefaulthimselfdetailscontentsupportstartedmessagesuccessfashioncountryaccountcreatedstoriesresultsrunningprocesswritingobjectsvisiblewelcomearticleunknownnetworkcompanydynamicbrowserprivacyproblemServicerespectdisplayrequestreservewebsitehistoryfriendsoptionsworkingversionmillionchannelwindow.addressvisitedweathercorrectproductedirectforwardyou canremovedsubjectcontrolarchivecurrentreadinglibrarylimitedmanagerfurthersummarymachineminutesprivatecontextprogramsocietynumberswrittenenabledtriggersourcesloadingelementpartnerfinallyperfectmeaningsystemskeepingculture",journalprojectsurfaces"expiresreviewsbalanceEnglishContentthroughPlease opinioncontactaverageprimaryvillageSpanishgallerydeclinemeetingmissionpopularqualitymeasuregeneralspeciessessionsectionwriterscounterinitialreportsfiguresmembersholdingdisputeearlierexpressdigitalpictureAnothermarriedtrafficleadingchangedcentralvictoryimages/reasonsstudiesfeaturelistingmust beschoolsVersionusuallyepisodeplayinggrowingobviousoverlaypresentactions</ul>\r\nwrapperalreadycertainrealitystorageanotherdesktopofferedpatternunusualDigitalcapitalWebsitefailureconnectreducedAndroiddecadesregular & animalsreleaseAutomatgettingmethodsnothingPopularcaptionletterscapturesciencelicensechangesEngland=1&History = new CentralupdatedSpecialNetworkrequirecommentwarningCollegetoolbarremainsbecauseelectedDeutschfinanceworkersquicklybetweenexactlysettingdiseaseSocietyweaponsexhibit<!--Controlclassescoveredoutlineattacksdevices(windowpurposetitle=\"Mobile killingshowingItaliandroppedheavilyeffects-1']);\nconfirmCurrentadvancesharingopeningdrawingbillionorderedGermanyrelated</form>includewhetherdefinedSciencecatalogArticlebuttonslargestuniformjourneysidebarChicagoholidayGeneralpassage,"animatefeelingarrivedpassingnaturalroughly.\n\nThe but notdensityBritainChineselack oftributeIreland\" data-factorsreceivethat isLibraryhusbandin factaffairsCharlesradicalbroughtfindinglanding:lang=\"return leadersplannedpremiumpackageAmericaEdition]"Messageneed tovalue=\"complexlookingstationbelievesmaller-mobilerecordswant tokind ofFirefoxyou aresimilarstudiedmaximumheadingrapidlyclimatekingdomemergedamountsfoundedpioneerformuladynastyhow to SupportrevenueeconomyResultsbrothersoldierlargelycalling."AccountEdward segmentRobert effortsPacificlearnedup withheight:we haveAngelesnations_searchappliedacquiremassivegranted: falsetreatedbiggestbenefitdrivingStudiesminimumperhapsmorningsellingis usedreversevariant role=\"missingachievepromotestudentsomeoneextremerestorebottom:evolvedall thesitemapenglishway to AugustsymbolsCompanymattersmusicalagainstserving})();\r\npaymenttroubleconceptcompareparentsplayersregionsmonitor ''The winningexploreadaptedGalleryproduceabilityenhancecareers). The collectSearch ancientexistedfooter handlerprintedconsoleEasternexportswindowsChannelillegalneutralsuggest_headersigning.html\">settledwesterncausing-webkitclaimedJusticechaptervictimsThomas mozillapromisepartieseditionoutside:false,hundredOlympic_buttonauthorsreachedchronicdemandssecondsprotectadoptedprepareneithergreatlygreateroverallimprovecommandspecialsearch.worshipfundingthoughthighestinsteadutilityquarterCulturetestingclearlyexposedBrowserliberal} catchProjectexamplehide();FloridaanswersallowedEmperordefenseseriousfreedomSeveral-buttonFurtherout of != nulltrainedDenmarkvoid(0)/all.jspreventRequestStephen\n\nWhen observe</h2>\r\nModern provide\" alt=\"borders.\n\nFor \n\nMany artistspoweredperformfictiontype ofmedicalticketsopposedCouncilwitnessjusticeGeorge Belgium...</a>twitternotablywaitingwarfare Other rankingphrasesmentionsurvivescholar</p>\r\n Countryignoredloss ofjust asGeorgiastrange<head><stopped1']);\r\nislandsnotableborder:list ofcarried100,000</h3>\n severalbecomesselect wedding00.htmlmonarchoff theteacherhighly biologylife ofor evenrise of»plusonehunting(thoughDouglasjoiningcirclesFor theAncientVietnamvehiclesuch ascrystalvalue =Windowsenjoyeda smallassumed<a id=\"foreign All rihow theDisplayretiredhoweverhidden;battlesseekingcabinetwas notlook atconductget theJanuaryhappensturninga:hoverOnline French lackingtypicalextractenemieseven ifgeneratdecidedare not/searchbeliefs-image:locatedstatic.login\">convertviolententeredfirst\">circuitFinlandchemistshe was10px;\">as suchdivided</span>will beline ofa greatmystery/index.fallingdue to railwaycollegemonsterdescentit withnuclearJewish protestBritishflowerspredictreformsbutton who waslectureinstantsuicidegenericperiodsmarketsSocial fishingcombinegraphicwinners<br /><by the NaturalPrivacycookiesoutcomeresolveSwedishbrieflyPersianso muchCenturydepictscolumnshousingscriptsnext tobearingmappingrevisedjQuery(-width:title\">tooltipSectiondesignsTurkishyounger.match(})();\n\nburningoperatedegreessource=Richardcloselyplasticentries</tr>\r\ncolor:#ul id=\"possessrollingphysicsfailingexecutecontestlink toDefault<br />\n: true,chartertourismclassicproceedexplain</h1>\r\nonline.?xml vehelpingdiamonduse theairlineend -->).attr(readershosting#ffffffrealizeVincentsignals src=\"/ProductdespitediversetellingPublic held inJoseph theatreaffects<style>a largedoesn'tlater, ElementfaviconcreatorHungaryAirportsee theso thatMichaelSystemsPrograms, and width=e"tradingleft\">\npersonsGolden Affairsgrammarformingdestroyidea ofcase ofoldest this is.src = cartoonregistrCommonsMuslimsWhat isin manymarkingrevealsIndeed,equally/show_aoutdoorescape(Austriageneticsystem,In the sittingHe alsoIslandsAcademy\n\t\t<!--Daniel bindingblock\">imposedutilizeAbraham(except{width:putting).html(|| [];\nDATA[ *kitchenmountedactual dialectmainly _blank'installexpertsif(typeIt also© \">Termsborn inOptionseasterntalkingconcerngained ongoingjustifycriticsfactoryits ownassaultinvitedlastinghis ownhref=\"/\" rel=\"developconcertdiagramdollarsclusterphp?id=alcohol);})();using a><span>vesselsrevivalAddressamateurandroidallegedillnesswalkingcentersqualifymatchesunifiedextinctDefensedied in\n\t<!-- customslinkingLittle Book ofeveningmin.js?are thekontakttoday's.html\" target=wearingAll Rig;\n})();raising Also, crucialabout\">declare-->\n<scfirefoxas muchappliesindex, s, but type = \n\r\n<!--towardsRecordsPrivateForeignPremierchoicesVirtualreturnsCommentPoweredinline;povertychamberLiving volumesAnthonylogin\" RelatedEconomyreachescuttinggravitylife inChapter-shadowNotable</td>\r\n returnstadiumwidgetsvaryingtravelsheld bywho arework infacultyangularwho hadairporttown of\n\nSome 'click'chargeskeywordit willcity of(this);Andrew unique checkedor more300px; return;rsion=\"pluginswithin herselfStationFederalventurepublishsent totensionactresscome tofingersDuke ofpeople,exploitwhat isharmonya major\":\"httpin his menu\">\nmonthlyofficercouncilgainingeven inSummarydate ofloyaltyfitnessand wasemperorsupremeSecond hearingRussianlongestAlbertalateralset of small\">.appenddo withfederalbank ofbeneathDespiteCapitalgrounds), and percentit fromclosingcontainInsteadfifteenas well.yahoo.respondfighterobscurereflectorganic= Math.editingonline paddinga wholeonerroryear ofend of barrierwhen itheader home ofresumedrenamedstrong>heatingretainscloudfrway of March 1knowingin partBetweenlessonsclosestvirtuallinks\">crossedEND -->famous awardedLicenseHealth fairly wealthyminimalAfricancompetelabel\">singingfarmersBrasil)discussreplaceGregoryfont copursuedappearsmake uproundedboth ofblockedsaw theofficescoloursif(docuwhen heenforcepush(fuAugust UTF-8\">Fantasyin mostinjuredUsuallyfarmingclosureobject defenceuse of Medical<body>\nevidentbe usedkeyCodesixteenIslamic#000000entire widely active (typeofone cancolor =speakerextendsPhysicsterrain<tbody>funeralviewingmiddle cricketprophetshifteddoctorsRussell targetcompactalgebrasocial-bulk ofman and</td>\n he left).val()false);logicalbankinghome tonaming Arizonacredits);\n});\nfounderin turnCollinsbefore But thechargedTitle\">CaptainspelledgoddessTag -->Adding:but wasRecent patientback in=false&Lincolnwe knowCounterJudaismscript altered']);\n has theunclearEvent',both innot all\n\n<!-- placinghard to centersort ofclientsstreetsBernardassertstend tofantasydown inharbourFreedomjewelry/about..searchlegendsis mademodern only ononly toimage\" linear painterand notrarely acronymdelivershorter00&as manywidth=\"/* <![Ctitle =of the lowest picked escapeduses ofpeoples PublicMatthewtacticsdamagedway forlaws ofeasy to windowstrong simple}catch(seventhinfoboxwent topaintedcitizenI don'tretreat. Some ww.\");\nbombingmailto:made in. Many carries||{};wiwork ofsynonymdefeatsfavoredopticalpageTraunless sendingleft\"><comScorAll thejQuery.touristClassicfalse\" Wilhelmsuburbsgenuinebishops.split(global followsbody ofnominalContactsecularleft tochiefly-hidden-banner</li>\n\n. When in bothdismissExplorealways via thespaC1olwelfareruling arrangecaptainhis sonrule ofhe tookitself,=0&(calledsamplesto makecom/pagMartin Kennedyacceptsfull ofhandledBesides//--></able totargetsessencehim to its by common.mineralto takeways tos.org/ladvisedpenaltysimple:if theyLettersa shortHerbertstrikes groups.lengthflightsoverlapslowly lesser social </p>\n\t\tit intoranked rate oful>\r\n attemptpair ofmake itKontaktAntoniohaving ratings activestreamstrapped\").css(hostilelead tolittle groups,Picture-->\r\n\r\n rows=\" objectinverse<footerCustomV><\\/scrsolvingChamberslaverywoundedwhereas!= 'undfor allpartly -right:Arabianbacked centuryunit ofmobile-Europe,is homerisk ofdesiredClintoncost ofage of become none ofp"Middle ead')[0Criticsstudios>©group\">assemblmaking pressedwidget.ps:\" ? rebuiltby someFormer editorsdelayedCanonichad thepushingclass=\"but arepartialBabylonbottom carrierCommandits useAs withcoursesa thirddenotesalso inHouston20px;\">accuseddouble goal ofFamous ).bind(priests Onlinein Julyst + \"gconsultdecimalhelpfulrevivedis veryr'+'iptlosing femalesis alsostringsdays ofarrivalfuture <objectforcingString(\" />\n\t\there isencoded. The balloondone by/commonbgcolorlaw of Indianaavoidedbut the2px 3pxjquery.after apolicy.men andfooter-= true;for usescreen.Indian image =family,http://  driverseternalsame asnoticedviewers})();\n is moreseasonsformer the newis justconsent Searchwas thewhy theshippedbr><br>width: height=made ofcuisineis thata very Admiral fixed;normal MissionPress, ontariocharsettry to invaded=\"true\"spacingis mosta more totallyfall of});\r\n immensetime inset outsatisfyto finddown tolot of Playersin Junequantumnot thetime todistantFinnishsrc = (single help ofGerman law andlabeledforestscookingspace\">header-well asStanleybridges/globalCroatia About [0];\n it, andgroupedbeing a){throwhe madelighterethicalFFFFFF\"bottom\"like a employslive inas seenprintermost ofub-linkrejectsand useimage\">succeedfeedingNuclearinformato helpWomen'sNeitherMexicanprotein<table by manyhealthylawsuitdevised.push({sellerssimply Through.cookie Image(older\">us.js\"> Since universlarger open to!-- endlies in']);\r\n marketwho is (\"DOMComanagedone fortypeof Kingdomprofitsproposeto showcenter;made itdressedwere inmixtureprecisearisingsrc = 'make a securedBaptistvoting \n\t\tvar March 2grew upClimate.removeskilledway the</head>face ofacting right\">to workreduceshas haderectedshow();action=book ofan area== \"htt<header\n<html>conformfacing cookie.rely onhosted .customhe wentbut forspread Family a meansout theforums.footage\">MobilClements\" id=\"as highintense--><!--female is seenimpliedset thea stateand hisfastestbesidesbutton_bounded\"><img Infoboxevents,a youngand areNative cheaperTimeoutand hasengineswon the(mostlyright: find a -bottomPrince area ofmore ofsearch_nature,legallyperiod,land ofor withinducedprovingmissilelocallyAgainstthe wayk"px;\">\r\npushed abandonnumeralCertainIn thismore inor somename isand, incrownedISBN 0-createsOctobermay notcenter late inDefenceenactedwish tobroadlycoolingonload=it. TherecoverMembersheight assumes<html>\npeople.in one =windowfooter_a good reklamaothers,to this_cookiepanel\">London,definescrushedbaptismcoastalstatus title\" move tolost inbetter impliesrivalryservers SystemPerhapses and contendflowinglasted rise inGenesisview ofrising seem tobut in backinghe willgiven agiving cities.flow of Later all butHighwayonly bysign ofhe doesdiffersbattery&lasinglesthreatsintegertake onrefusedcalled =US&See thenativesby thissystem.head of:hover,lesbiansurnameand allcommon/header__paramsHarvard/pixel.removalso longrole ofjointlyskyscraUnicodebr />\r\nAtlantanucleusCounty,purely count\">easily build aonclicka givenpointerh"events else {\nditionsnow the, with man whoorg/Webone andcavalryHe diedseattle00,000 {windowhave toif(windand itssolely m"renewedDetroitamongsteither them inSenatorUs</a><King ofFrancis-produche usedart andhim andused byscoringat hometo haverelatesibilityfactionBuffalolink\"><what hefree toCity ofcome insectorscountedone daynervoussquare };if(goin whatimg\" alis onlysearch/tuesdaylooselySolomonsexual - <a hrmedium\"DO NOT France,with a war andsecond take a >\r\n\r\n\r\nmarket.highwaydone inctivity\"last\">obligedrise to\"undefimade to Early praisedin its for hisathleteJupiterYahoo! termed so manyreally s. The a woman?value=direct right\" bicycleacing=\"day andstatingRather,higher Office are nowtimes, when a pay foron this-link\">;borderaround annual the Newput the.com\" takin toa brief(in thegroups.; widthenzymessimple in late{returntherapya pointbanninginks\">\n();\" rea place\\u003Caabout atr>\r\n\t\tccount gives a<SCRIPTRailwaythemes/toolboxById(\"xhumans,watchesin some if (wicoming formats Under but hashanded made bythan infear ofdenoted/iframeleft involtagein eacha"base ofIn manyundergoregimesaction </p>\r\n<ustomVa;></importsor thatmostly &re size=\"</a></ha classpassiveHost = WhetherfertileVarious=[];(fucameras/></td>acts asIn some>\r\n\r\n<!organis <br />BeijingcatalC deutscheuropeueuskaragaeilgesvenskaespaC1amensajeusuariotrabajomC)xicopC!ginasiempresistemaoctubreduranteaC1adirempresamomentonuestroprimeratravC)sgraciasnuestraprocesoestadoscalidadpersonanC:meroacuerdomC:sicamiembroofertasalgunospaC-sesejemploderechoademC!sprivadoagregarenlacesposiblehotelessevillaprimeroC:ltimoeventosarchivoculturamujeresentradaanuncioembargomercadograndesestudiomejoresfebrerodiseC1oturismocC3digoportadaespaciofamiliaantoniopermiteguardaralgunaspreciosalguiensentidovisitastC-tuloconocersegundoconsejofranciaminutossegundatenemosefectosmC!lagasesiC3nrevistagranadacompraringresogarcC-aacciC3necuadorquienesinclusodeberC!materiahombresmuestrapodrC-amaC1anaC:ltimaestamosoficialtambienningC:nsaludospodemosmejorarpositionbusinesshomepagesecuritylanguagestandardcampaignfeaturescategoryexternalchildrenreservedresearchexchangefavoritetemplatemilitaryindustryservicesmaterialproductsz-index:commentssoftwarecompletecalendarplatformarticlesrequiredmovementquestionbuildingpoliticspossiblereligionphysicalfeedbackregisterpicturesdisabledprotocolaudiencesettingsactivityelementslearninganythingabstractprogressoverviewmagazineeconomictrainingpressurevarious <strong>propertyshoppingtogetheradvancedbehaviordownloadfeaturedfootballselectedLanguagedistanceremembertrackingpasswordmodifiedstudentsdirectlyfightingnortherndatabasefestivalbreakinglocationinternetdropdownpracticeevidencefunctionmarriageresponseproblemsnegativeprogramsanalysisreleasedbanner\">purchasepoliciesregionalcreativeargumentbookmarkreferrerchemicaldivisioncallbackseparateprojectsconflicthardwareinterestdeliverymountainobtained= false;for(var acceptedcapacitycomputeridentityaircraftemployedproposeddomesticincludesprovidedhospitalverticalcollapseapproachpartnerslogo\"><adaughterauthor\" culturalfamilies/images/assemblypowerfulteachingfinisheddistrictcriticalcgi-bin/purposesrequireselectionbecomingprovidesacademicexerciseactuallymedicineconstantaccidentMagazinedocumentstartingbottom\">observed: "extendedpreviousSoftwarecustomerdecisionstrengthdetailedslightlyplanningtextareacurrencyeveryonestraighttransferpositiveproducedheritageshippingabsolutereceivedrelevantbutton\" violenceanywherebenefitslaunchedrecentlyalliancefollowedmultiplebulletinincludedoccurredinternal$(this).republic><tr><tdcongressrecordedultimatesolution<ul id=\"discoverHome</a>websitesnetworksalthoughentirelymemorialmessagescontinueactive\">somewhatvictoriaWestern title=\"LocationcontractvisitorsDownloadwithout right\">\nmeasureswidth = variableinvolvedvirginianormallyhappenedaccountsstandingnationalRegisterpreparedcontrolsaccuratebirthdaystrategyofficialgraphicscriminalpossiblyconsumerPersonalspeakingvalidateachieved.jpg\" />machines</h2>\n keywordsfriendlybrotherscombinedoriginalcomposedexpectedadequatepakistanfollow\" valuable</label>relativebringingincreasegovernorplugins/List of Header\">\" name=\" ("graduate</head>\ncommercemalaysiadirectormaintain;height:schedulechangingback to catholicpatternscolor: #greatestsuppliesreliable</ul>\n\t\t<select citizensclothingwatching<li id=\"specificcarryingsentence<center>contrastthinkingcatch(e)southernMichael merchantcarouselpadding:interior.split(\"lizationOctober ){returnimproved-->\n\ncoveragechairman.png\" />subjectsRichard whateverprobablyrecoverybaseballjudgmentconnect..css\" /> websitereporteddefault\"/></a>\r\nelectricscotlandcreationquantity. ISBN 0did not instance-search-\" lang=\"speakersComputercontainsarchivesministerreactiondiscountItalianocriteriastrongly: 'http:'script'coveringofferingappearedBritish identifyFacebooknumerousvehiclesconcernsAmericanhandlingdiv id=\"William provider_contentaccuracysection andersonflexibleCategorylawrence<script>layout=\"approved maximumheader\"></table>Serviceshamiltoncurrent canadianchannels/themes//articleoptionalportugalvalue=\"\"intervalwirelessentitledagenciesSearch\" measuredthousandspending…new Date\" size=\"pageNamemiddle\" \" /></a>hidden\">sequencepersonaloverflowopinionsillinoislinks\">\n\t<title>versionssaturdayterminalitempropengineersectionsdesignerproposal=\"false\"EspaC1olreleasessubmit\" er"additionsymptomsorientedresourceright\"><pleasurestationshistory.leaving border=contentscenter\">.\n\nSome directedsuitablebulgaria.show();designedGeneral conceptsExampleswilliamsOriginal\"><span>search\">operatorrequestsa "allowingDocumentrevision. \n\nThe yourselfContact michiganEnglish columbiapriorityprintingdrinkingfacilityreturnedContent officersRussian generate-8859-1\"indicatefamiliar qualitymargin:0 contentviewportcontacts-title\">portable.length eligibleinvolvesatlanticonload=\"default.suppliedpaymentsglossary\n\nAfter guidance</td><tdencodingmiddle\">came to displaysscottishjonathanmajoritywidgets.clinicalthailandteachers<head>\n\taffectedsupportspointer;toString</small>oklahomawill be investor0\" alt=\"holidaysResourcelicensed (which . After considervisitingexplorerprimary search\" android\"quickly meetingsestimate;return ;color:# height=approval, " checked.min.js\"magnetic></a></hforecast. While thursdaydvertiseéhasClassevaluateorderingexistingpatients Online coloradoOptions\"campbell<!-- end</span><<br />\r\n_popups|sciences," quality Windows assignedheight: <b classle" value=\" Companyexamples<iframe believespresentsmarshallpart of properly).\n\nThe taxonomymuch of </span>\n\" data-srtuguC*sscrollTo project<head>\r\nattorneyemphasissponsorsfancyboxworld's wildlifechecked=sessionsprogrammpx;font- Projectjournalsbelievedvacationthompsonlightingand the special border=0checking</tbody><button Completeclearfix\n<head>\narticle <sectionfindingsrole in popular Octoberwebsite exposureused to changesoperatedclickingenteringcommandsinformed numbers </div>creatingonSubmitmarylandcollegesanalyticlistingscontact.loggedInadvisorysiblingscontent\"s")s. This packagescheckboxsuggestspregnanttomorrowspacing=icon.pngjapanesecodebasebutton\">gamblingsuch as , while </span> missourisportingtop:1px .</span>tensionswidth=\"2lazyloadnovemberused in height=\"cript\">\n </<tr><td height:2/productcountry include footer\" <!-- title\"></jquery.</form>\n(g.\000d=\023)(g9\001i+\024)hrvatskiitalianoromC\"nD\003tC<rkC'eX'X1X/Y\btambiC)nnoticiasmensajespersonasderechosnacionalserviciocontactousuariosprogramagobiernoempresasanunciosvalenciacolombiadespuC)sdeportesproyectoproductopC:bliconosotroshistoriapresentemillonesmediantepreguntaanteriorrecursosproblemasantiagonuestrosopiniC3nimprimirmientrasamC)ricavendedorsociedadrespectorealizarregistropalabrasinterC)sentoncesespecialmiembrosrealidadcC3rdobazaragozapC!ginassocialesbloqueargestiC3nalquilersistemascienciascompletoversiC3ncompletaestudiospC:blicaobjetivoalicantebuscadorcantidadentradasaccionesarchivossuperiormayorC-aalemaniafunciC3nC:ltimoshaciendoaquellosediciC3nfernandoambientefacebooknuestrasclientesprocesosbastantepresentareportarcongresopublicarcomerciocontratojC3venesdistritotC)cnicaconjuntoenergC-atrabajarasturiasrecienteutilizarboletC-nsalvadorcorrectatrabajosprimerosnegocioslibertaddetallespantallaprC3ximoalmerC-aanimalesquiC)nescorazC3nsecciC3nbuscandoopcionesexteriorconceptotodavC-agalerC-aescribirmedicinalicenciaconsultaaspectoscrC-ticadC3laresjusticiadeberC!nperC-odonecesitamantenerpequeC1orecibidatribunaltenerifecanciC3ncanariasdescargadiversosmallorcarequieretC)cnicodeberC-aviviendafinanzasadelantefuncionaconsejosdifC-cilciudadesantiguasavanzadatC)rminounidadessC!nchezcampaC1asoftonicrevistascontienesectoresmomentosfacultadcrC)ditodiversassupuestofactoressegundospequeC1aP3P>P4P0P5Q\001P;P8P5Q\001Q\002Q\fP1Q\013P;P>P1Q\013Q\002Q\fQ\rQ\002P>P<P\025Q\001P;P8Q\002P>P3P>P<P5P=Q\017P2Q\001P5Q\005Q\rQ\002P>P9P4P0P6P5P1Q\013P;P8P3P>P4Q\003P4P5P=Q\fQ\rQ\002P>Q\002P1Q\013P;P0Q\001P5P1Q\017P>P4P8P=Q\001P5P1P5P=P0P4P>Q\001P0P9Q\002Q\004P>Q\002P>P=P5P3P>Q\001P2P>P8Q\001P2P>P9P8P3Q\000Q\013Q\002P>P6P5P2Q\001P5P<Q\001P2P>Q\016P;P8Q\bQ\fQ\rQ\002P8Q\005P?P>P:P0P4P=P5P9P4P>P<P0P<P8Q\000P0P;P8P1P>Q\002P5P<Q\003Q\005P>Q\002Q\017P4P2Q\003Q\005Q\001P5Q\002P8P;Q\016P4P8P4P5P;P>P<P8Q\000P5Q\002P5P1Q\017Q\001P2P>P5P2P8P4P5Q\007P5P3P>Q\rQ\002P8P<Q\001Q\007P5Q\002Q\002P5P<Q\013Q\006P5P=Q\013Q\001Q\002P0P;P2P5P4Q\fQ\002P5P<P5P2P>P4Q\013Q\002P5P1P5P2Q\013Q\bP5P=P0P<P8Q\002P8P?P0Q\002P>P<Q\003P?Q\000P0P2P;P8Q\006P0P>P4P=P0P3P>P4Q\013P7P=P0Q\016P<P>P3Q\003P4Q\000Q\003P3P2Q\001P5P9P8P4P5Q\002P:P8P=P>P>P4P=P>P4P5P;P0P4P5P;P5Q\001Q\000P>P:P8Q\016P=Q\017P2P5Q\001Q\fP\025Q\001Q\002Q\fQ\000P0P7P0P=P0Q\bP8X'Y\004Y\004Y\007X'Y\004X*Y\nX,Y\005Y\nX9X.X'X5X)X'Y\004X0Y\nX9Y\004Y\nY\007X,X/Y\nX/X'Y\004X\"Y\006X'Y\004X1X/X*X-Y\003Y\005X5Y\001X-X)Y\003X'Y\006X*X'Y\004Y\004Y\nY\nY\003Y\bY\006X4X(Y\003X)Y\001Y\nY\007X'X(Y\006X'X*X-Y\bX'X!X#Y\003X+X1X.Y\004X'Y\004X'Y\004X-X(X/Y\004Y\nY\004X/X1Y\bX3X'X6X:X7X*Y\003Y\bY\006Y\007Y\006X'Y\003X3X'X-X)Y\006X'X/Y\nX'Y\004X7X(X9Y\004Y\nY\003X4Y\003X1X'Y\nY\005Y\003Y\006Y\005Y\006Y\007X'X4X1Y\003X)X1X&Y\nX3Y\006X4Y\nX7Y\005X'X0X'X'Y\004Y\001Y\006X4X(X'X(X*X9X(X1X1X-Y\005X)Y\003X'Y\001X)Y\nY\002Y\bY\004Y\005X1Y\003X2Y\003Y\004Y\005X)X#X-Y\005X/Y\002Y\004X(Y\nY\nX9Y\006Y\nX5Y\bX1X)X7X1Y\nY\002X4X'X1Y\003X,Y\bX'Y\004X#X.X1Y\tY\005X9Y\006X'X'X(X-X+X9X1Y\bX6X(X4Y\003Y\004Y\005X3X,Y\004X(Y\006X'Y\006X.X'Y\004X/Y\003X*X'X(Y\003Y\004Y\nX)X(X/Y\bY\006X#Y\nX6X'Y\nY\bX,X/Y\001X1Y\nY\002Y\003X*X(X*X#Y\001X6Y\004Y\005X7X(X.X'Y\003X+X1X(X'X1Y\003X'Y\001X6Y\004X'X-Y\004Y\tY\006Y\001X3Y\007X#Y\nX'Y\005X1X/Y\bX/X#Y\006Y\007X'X/Y\nY\006X'X'Y\004X'Y\006Y\005X9X1X6X*X9Y\004Y\005X/X'X.Y\004Y\005Y\005Y\003Y\006\000\000\000\000\000\000\000\000\001\000\001\000\001\000\001\000\002\000\002\000\002\000\002\000\004\000\004\000\004\000\004\000\000\001\002\003\004\005\006\007\007\006\005\004\003\002\001\000\b\t\n\013\f\r\016\017\017\016\r\f\013\n\t\b\020\021\022\023\024\025\026\027\027\026\025\024\023\022\021\020\030\031\032\033\034\035\036\037\037\036\035\034\033\032\031\030\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\002\000\000\000\001\000\000\000\001\000\000\000\003\000\000\000\000\001\000\000\000\001\000\000\000\001\000\000\000\b\000\b\000\b\000\b\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007resourcescountriesquestionsequipmentcommunityavailablehighlightDTD/xhtmlmarketingknowledgesomethingcontainerdirectionsubscribeadvertisecharacter\" value=\"</select>Australia\" class=\"situationauthorityfollowingprimarilyoperationchallengedevelopedanonymousfunction functionscompaniesstructureagreement\" title=\"potentialeducationargumentssecondarycopyrightlanguagesexclusivecondition</form>\r\nstatementattentionBiography} else {\nsolutionswhen the Analyticstemplatesdangeroussatellitedocumentspublisherimportantprototypeinfluence»</effectivegenerallytransformbeautifultransportorganizedpublishedprominentuntil thethumbnailNational .focus();over the migrationannouncedfooter\">\nexceptionless thanexpensiveformationframeworkterritoryndicationcurrentlyclassNamecriticismtraditionelsewhereAlexanderappointedmaterialsbroadcastmentionedaffiliate</option>treatmentdifferent/default.Presidentonclick=\"biographyotherwisepermanentFranC'aisHollywoodexpansionstandards</style>\nreductionDecember preferredCambridgeopponentsBusiness confusion>\n<title>presentedexplaineddoes not worldwideinterfacepositionsnewspaper</table>\nmountainslike the essentialfinancialselectionaction=\"/abandonedEducationparseInt(stabilityunable to\nrelationsNote thatefficientperformedtwo yearsSince thethereforewrapper\">alternateincreasedBattle ofperceivedtrying tonecessaryportrayedelectionsElizabethdiscoveryinsurances.length;legendaryGeographycandidatecorporatesometimesservices.inheritedCommunityreligiouslocationsCommitteebuildingsthe worldno longerbeginningreferencecannot befrequencytypicallyinto the relative;recordingpresidentinitiallytechniquethe otherit can beexistenceunderlinethis timetelephoneitemscopepracticesadvantage);return For otherprovidingdemocracyboth the extensivesufferingsupportedcomputers functionpracticalsaid thatit may beEnglish\nsuspectedmargin: 0spiritual\n\nmicrosoftgraduallydiscussedhe becameexecutivejquery.jshouseholdconfirmedpurchasedliterallydestroyedup to thevariationremainingit is notcenturiesJapanese among thecompletedalgorithminterestsrebellionundefinedencourageresizableinvolvingsensitiveuniversalprovision(althoughfeaturingconducted), which continued-header\">February numerous overflow:componentfragmentsexcellentcolspan=\"technicalnear the Advanced source ofexpressedHong Kong Facebookmultiple mechanismelevationoffensive\n\tsponsoreddocument.or "there arethose whomovementsprocessesdifficultsubmittedrecommendconvincedpromoting\" width=\".replace(classicalcoalitionhis firstdecisionsassistantindicatedevolution-wrapper\"enough toalong thedelivered-->\r\n\n\r\n
Archbishop class=\"nobeing usedapproachesprivilegesnoscript>\nresults inmay be theEaster eggmechanismsreasonablePopulationCollectionselected\">noscript>\r/index.phparrival of-jssdk'));managed toincompletecasualtiescompletionChristiansSeptember arithmeticproceduresmight haveProductionit appearsPhilosophyfriendshipleading togiving thetoward theguaranteeddocumentedcolor:#000video gamecommissionreflectingchange theassociatedsans-serifonkeypress; padding:He was theunderlyingtypically , and the srcElementsuccessivesince the should be networkingaccountinguse of thelower thanshows that\n\t\tcomplaintscontinuousquantitiesastronomerhe did notdue to itsapplied toan averageefforts tothe futureattempt toTherefore,capabilityRepublicanwas formedElectronickilometerschallengespublishingthe formerindigenousdirectionssubsidiaryconspiracydetails ofand in theaffordablesubstancesreason forconventionitemtype=\"absolutelysupposedlyremained aattractivetravellingseparatelyfocuses onelementaryapplicablefound thatstylesheetmanuscriptstands for no-repeat(sometimesCommercialin Americaundertakenquarter ofan examplepersonallyindex.php?\npercentagebest-knowncreating a\" dir=\"ltrLieutenant\n
is said tostructuralreferendummost oftena separate->\n
soundtracksearchFormtend to beinput id=\"opening ofrestrictedadopted byaddressingtheologianmethods ofvariant ofChristian very largeautomotiveby far therange frompursuit offollow thebrought toin Englandagree thataccused ofcomes frompreventingdiv style=his or hertremendousfreedom ofconcerning0 1em 1em;Basketball/style.cssan earliereven after/\" title=\".com/indextaking thepittsburghcontent\">\rimplementedcan be seenthere was ademonstratecontainer\">connectionsthe Britishwas written!important;px; margin-followed byability to complicatedduring the immigrationalso called

\n

acquisitioncalled the persecutiondesignation{font-size:appeared ininvestigateexperiencedmost likelywidely useddiscussionspresence of (document.extensivelyIt has beenit does notcontrary toinhabitantsimprovementscholarshipconsumptioninstructionfor exampleone or morepx; paddingthe currenta series ofare usuallyrole in thepreviously derivativesevidence ofexperiencescolorschemestated thatcertificate
\n selected=\"high schoolresponse tocomfortableadoption ofthree yearsthe countryin Februaryso that thepeople who provided by\nhaving been\r\n\r\n< "The compilationhe had beenproduced byphilosopherconstructedintended toamong othercompared toto say thatEngineeringa differentreferred todifferencesbelief thatphotographsidentifyingHistory of Republic ofnecessarilyprobabilitytechnicallyleaving thespectacularfraction ofelectricityhead of therestaurantspartnershipemphasis onmost recentshare with saying thatfilled withdesigned toit is often\">as follows:merged withthrough thecommercial pointed outopportunityview of therequirementdivision ofprogramminghe receivedsetInterval\">maintainingChristopherMuch of thewritings of\" height=\"2size of theversion of mixture of between theExamples ofeducationalcompetitive onsubmit=\"director ofdistinctive/DTD XHTML relating totendency toprovince ofwhich woulddespite thescientific legislature.innerHTML allegationsAgriculturewas used inapproach tointelligentyears later,sans-serifdeterminingPerformanceappearances, which is foundationsabbreviatedhigher thans from the individual composed ofsupposed toclaims thatattributionfont-size:1elements ofHistorical his brotherat the timeanniversarygoverned byrelated to ultimately innovationsit is stillcan only bedefinitionstoGMTStringA number ofimg class=\"Eventually,was changedoccurred inneighboringdistinguishwhen he wasintroducingterrestrialMany of theargues thatan Americanconquest ofwidespread were killedscreen and In order toexpected todescendantsare locatedlegislativegenerations backgroundmost peopleyears afterthere is nothe highestfrequently they do notargued thatshowed thatpredominanttheologicalby the timeconsideringshort-livedcan be usedvery littleone of the had alreadyinterpretedcommunicatefeatures ofgovernment,entered the\" height=\"3Independentpopulationslarge-scale. Although used in thedestructionpossibilitystarting intwo or moreexpressionssubordinatelarger thanhistory and\r\nContinentaleliminatingwill not bepractice ofin front ofsite of theensure thatto create amississippipotentiallyoutstandingbetter thanwhat is nowsituated inmeta name=\"TraditionalsuggestionsTranslationthe form ofatmosphericideologicalenterprisescalculatingeast of theremnants ofpluginspage/index.php?remained intransformedHe was alsowas alreadystatisticalin favor ofMinistry ofmovement offormulationis required\nquestion ofwas electedto become abecause of some peopleinspired bysuccessful a time whenmore commonamongst thean officialwidth:100%;technology,was adoptedto keep thesettlementslive birthsindex.html\"Connecticutassigned to&times;account foralign=rightthe companyalways beenreturned toinvolvementBecause thethis period\" name=\"q\" confined toa result ofvalue=\"\" />is actuallyEnvironment\r\n\r\nConversely,>\n
this is notthe presentif they areand finallya matter of\r\n\t
\r\n\r\nfaster thanmajority ofafter whichcomparativeto maintainimprove theawarded theer\" class=\"frameborderrestorationin the sameanalysis oftheir firstDuring the continentalsequence offunction(){font-size: work on the\nadopted theproperty ofdirected byeffectivelywas broughtchildren ofProgramminglonger thanmanuscriptswar againstby means ofand most ofsimilar to proprietaryoriginatingprestigiousgrammaticalexperience.to make theIt was alsois found incompetitorsin the U.S.replace thebrought thecalculationfall of thethe generalpracticallyin honor ofreleased inresidentialand some ofking of thereaction to1st Earl ofculture andprincipally\n they can beback to thesome of hisexposure toare similarform of theaddFavoritecitizenshippart in thepeople within practiceto continue&minus;approved by the first allowed theand for thefunctioningplaying thesolution toheight=\"0\" in his bookmore than afollows thecreated thepresence in nationalistthe idea ofa characterwere forced class=\"btndays of thefeatured inshowing theinterest inin place ofturn of thethe head ofLord of thepoliticallyhas its ownEducationalapproval ofsome of theeach other,behavior ofand becauseand anotherappeared onrecorded inblack"may includethe world'scan lead torefers to aborder=\"0\" government winning theresulted in while the Washington,the subjectcity in the>\r\n\t\treflect theto completebecame moreradioactiverejected bywithout anyhis father,which couldcopy of theto indicatea politicalaccounts ofconstitutesworked wither
of his lifeaccompaniedclientWidthprevent theLegislativedifferentlytogether inhas severalfor anothertext of thefounded thee with the is used forchanged theusually theplace wherewhereas the> \nHowever thelead to the\tThe currentthe site ofsubstantialexperience,in the Westthey shouldslovenD\rinacomentariosuniversidadcondicionesactividadesexperienciatecnologC-aproducciC3npuntuaciC3naplicaciC3ncontraseC1acategorC-asregistrarseprofesionaltratamientoregC-stratesecretarC-aprincipalesprotecciC3nimportantesimportanciaposibilidadinteresantecrecimientonecesidadessuscribirseasociaciC3ndisponiblesevaluaciC3nestudiantesresponsableresoluciC3nguadalajararegistradosoportunidadcomercialesfotografC-aautoridadesingenierC-atelevisiC3ncompetenciaoperacionesestablecidosimplementeactualmentenavegaciC3nconformidadline-height:font-family:\" : \"http://applicationslink\" href=\"specifically//\n/index.html\"window.open( !important;application/independence//www.googleorganizationautocompleterequirementsconservative
most notably/>notification'undefined')Furthermore,believe thatinnerHTML = prior to thedramaticallyreferring tonegotiationsheadquartersSouth AfricaunsuccessfulPennsylvaniaAs a result,\npadding-top:experimentalgetAttributeinstructionstechnologiespart of the =function(){subscriptionl.dtd\">\r\nEnglish (US)appendChild(transmissions. However, intelligence\" tabindex=\"float:right;Commonwealthranging fromin which theat least onereproductionencyclopedia;font-size:1jurisdictionat that time\">compensationchampionshipmedia=\"all\" violation ofreference toreturn true;Strict//EN\" transactionsinterventionverificationInformation difficultiesChampionshipcapabilities}\n\nChristianityfor example,Professionalrestrictionssuggest thatwas released(such as theremoveClass(unemploymentthe Americanstructure of/index.html published inspan class=\"\">\n\nf (document.border: 1px {font-size:1treatment of0\" height=\"1modificationIndependencedivided intogreater thanachievementsestablishingJavaScript\" neverthelesssignificanceBroadcasting> container\">\nsuch as the influence ofa particularsrc='http://navigation\" half of the substantial  advantage ofdiscovery offundamental metropolitanthe opposite\" xml:lang=\"deliberatelyalign=centerevolution ofpreservationimprovementsbeginning inJesus ChristPublicationsdisagreementtext-align:r, function()similaritiesbody>is currentlyalphabeticalis sometimestype=\"image/many of the flow:hidden;available indescribe theexistence ofall over thethe Internet\t