tifaout

aso

Nov 10th, 2023
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         NEW_1k_INSTALL
  3. // @namespace    https://github.com/ayoubfletcher
  4. // @version      3.1.3
  5. // @description  ASO Google Play Helper tool, it's a tool to simplify and helping in ASO and analyzing Android apps in google play.
  6. // @icon         https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/icon-script.png
  7. // @author       Ayoub Fletcher
  8. // @match        https://play.google.com/store/apps/details?id=*
  9. // @match        https://www.appbrain.com/app/*
  10. // @match        https://appstorespy.com/apps/play/*
  11. // @grant        GM_xmlhttpRequest
  12. // @connect      appbrain.com
  13. // @connect      appstorespy.com
  14. // @connect      raw.githubusercontent.com
  15. // @downloadURL  https://github.com/ayoubfletcher/ASO-Google-Play/raw/master/aso-google-play.user.js
  16. // @updateURL    https://github.com/ayoubfletcher/ASO-Google-Play/raw/master/aso-google-play.user.js
  17. // @supportURL   https://github.com/ayoubfletcher/ASO-Google-Play/issues
  18. // @copyright    2019+, Ayoub Fletcher, https://github.com/ayoubfletcher/
  19. // @homepage     https://github.com/ayoubfletcher/
  20. // @contactURL   https://github.com/ayoubfletcher/
  21. // @contributionURL https://github.com/ayoubfletcher/ASO-Google-Play#donate
  22. // @grant GM_deleteValue
  23. // @grant GM_listValues
  24. // @grant GM_getValue
  25. // @grant GM_setValue
  26.  
  27. // ==/UserScript==
  28.  
  29. /*******************************************************************************************************************************
  30.  *       █████╗ ██╗   ██╗ ██████╗ ██╗   ██╗██████╗     ███████╗██╗     ███████╗████████╗ ██████╗██╗  ██╗███████╗██████╗        *
  31.  *      ██╔══██╗╚██╗ ██╔╝██╔═══██╗██║   ██║██╔══██╗    ██╔════╝██║     ██╔════╝╚══██╔══╝██╔════╝██║  ██║██╔════╝██╔══██╗       *
  32.  *      ███████║ ╚████╔╝ ██║   ██║██║   ██║██████╔╝    █████╗  ██║     █████╗     ██║   ██║     ███████║█████╗  ██████╔╝       *
  33.  *      ██╔══██║  ╚██╔╝  ██║   ██║██║   ██║██╔══██╗    ██╔══╝  ██║     ██╔══╝     ██║   ██║     ██╔══██║██╔══╝  ██╔══██╗       *
  34.  *      ██║  ██║   ██║   ╚██████╔╝╚██████╔╝██████╔╝    ██║     ███████╗███████╗   ██║   ╚██████╗██║  ██║███████╗██║  ██║       *
  35.  *      ╚═╝  ╚═╝   ╚═╝    ╚═════╝  ╚═════╝ ╚═════╝     ╚═╝     ╚══════╝╚══════╝   ╚═╝    ╚═════╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝       *
  36.  *                               (~‾▿‾)~ DONATE ME PLEASE, I NEED MONEY TO LIVE (ง •̀_•́)ง (╥_╥)                                 *
  37.  *                 WANT TO EDIT THE SCRIPT READ THE STUFF IN THE BOTTOM IF YOU BREAK IT DON'T CRY NO MONEY NO FIX              *
  38.  *                                 SEND MONEY OR I WILL MAKE YOUR ACCOUNT DISAPPEAR YOHAAA (∩`-´)⊃━☆゚.*・。゚                    *
  39.  *                                   (\____/)                                                                                  *
  40.  *                                   ( ͡ ͡° ͜ ʖ ͡ ͡°)                                                                               *
  41.  *                                   \╭☞ \╭☞    HERE'S MY PAYAPL: https://www.paypal.me/ayoubfletcher                         *
  42.  *                            I KNOW I'M WASTING TIME WRITING THAT CRAP BECAUSE YOU GUYS ARE STINGY                            *
  43.  *                                   IF YOU FOUND IT OFFSENSIVE DON'T BLAME SEND ME MONEY ¯\_(ツ)_/¯.                          *
  44.  *     DAAH I WROTE THAT STUFF TO MAKE MYSELF LOOK PROFESSIONAL (⌐■_■) KAPPA AND TRUST ME THOSE EMOJIS SO FUN TO PLAY WITH.    *
  45.  *             OKAY WHATEVER HERE'S THE GITHUB REPO FOR THAT CRAPPY SCRIPT IF THERE WAS AN UPDATE I WOULD POST IT THERE:       *
  46.  *                               (╯°□°)╯︵ -> https://github.com/ayoubfletcher/ASO-Google-Play                                *
  47.  *           ( •_•)>⌐■-■ FINAL WORDS IF YOU CANNOT BUY ME A COFFEE BECAUSE ARE "STINGY" WISH ME ATLEAST A GOOD LUCK            *
  48.  *    JUST KIDDING GOOD LUCK BUDDY SORRY FOR WASTING YOUR TIME BUT I'M JUST HAVING FUN PLAYING WITH THOSE EMOJIS “ヽ(´▽`)ノ”.   *
  49.  *            IF YOU GOT ANY ISSUE WITH THE SCRIPT SEND ME A MESSAGE THROUGH PAYPAL (¬‿¬) OR THROUGH GITHUB REPO.             *
  50.  *******************************************************************************************************************************/
  51.  
  52.  
  53. /**
  54.  * HTML Template for styling and showing the elements
  55.  * If you want to style just do it
  56.  */
  57. let aso_style_code = `<style>.pop-up-display{position:fixed;z-index:99999999;width:100%;height:100%;top:0;left:0;color:#fff;display:none;justify-content:center;align-items:center;text-align:center}.pop-up-display.show{display:flex!important}.pop-up-display .content{background:#131313;padding:20px;position:relative;box-shadow:0 0 15px #131313;max-height:600px;overflow-y:auto}.pop-up-display .content .close{position:absolute;top:10px;right:10px;display:flex;justify-content:center;align-items:center;background:#fff;height:30px;width:30px;border-radius:50%;color:#0e0e0e;cursor:pointer;box-shadow:0 0 5px #868686}#app-data .icon{height:50px;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;position:relative}#app-data .top-app-release_date{border-right:1px solid #955f5f;border-bottom:1px solid #955f5f;border-left:1px solid #955f5f}#app-data .top-app-release_date .app-release_date{background-color:#955f5f;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-age.png)}#app-data .top-app-age{border-right:1px solid #04b5b0;border-bottom:1px solid #04b5b0;border-left:1px solid #04b5b0}#app-data .top-app-age .app-age{background-color:#04b5b0;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-age.png)}#app-data .top-app-installs{border-right:1px solid #069bf7;border-bottom:1px solid #069bf7;border-left:1px solid #069bf7}#app-data .top-app-installs .app-installs{background-color:#069bf7;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-installs.png)}#app-data .top-app-ranking{border-right:1px solid #f4460a;border-bottom:1px solid #f4460a;border-left:1px solid #f4460a}#app-data .top-app-ranking .app-ranking{background-color:#f4460a;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-ranking.png)}#app-data .top-app-size{border-right:1px solid #ea6e00;border-bottom:1px solid #ea6e00;border-left:1px solid #ea6e00}#app-data .top-app-size .app-size{background-color:#ea6e00;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-size.png)}#app-data .top-app-update{border-right:1px solid #e6a509;border-bottom:1px solid #e6a509;border-left:1px solid #e6a509}#app-data .top-app-update .app-update{background-color:#e6a509;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-update.png)}#app-data .top-app-android_version{border-right:1px solid #eb008b;border-bottom:1px solid #eb008b;border-left:1px solid #eb008b}#app-data .top-app-android_version .app-android_version{background-color:#eb008b;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-android_version.png)}#app-data .top-app-maturity{border-right:1px solid #a812cc;border-bottom:1px solid #a812cc;border-left:1px solid #a812cc}#app-data .top-app-maturity .app-maturity{background-color:#a812cc;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-maturity.png)}#app-data .top-app-libraries_count{border-right:1px solid #053aa8;border-bottom:1px solid #053aa8;border-left:1px solid #053aa8}#app-data .top-app-libraries_count .app-libraries_count{background-color:#053aa8;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-libraries_count.png)}#app-data .top-app-remove{border-right:1px solid #c14747;border-bottom:1px solid #c14747;border-left:1px solid #c14747}#app-data .top-app-remove .app-remove{background-color:#c14747;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-remove.png)}#app-data .top-app-total{border-right:1px solid #4db13b;border-bottom:1px solid #4db13b;border-left:1px solid #4db13b}#app-data .top-app-total .app-total{background-color:#4db13b;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-total.png)}#app-data .top-app-last_update{border-right:1px solid #7d04b5;border-bottom:1px solid #7d04b5;border-left:1px solid #7d04b5}#app-data .top-app-last_update .app-last_update{background-color:#7d04b5;background-image:url(https://raw.githubusercontent.com/ayoubfletcher/ASO-Google-Play/master/static/app-age.png)}#related-apps .app-tile{display:inline-block;color:#666;text-decoration:none;border-style:solid;border-width:1px;border-color:#e4e4e4;background-color:#f7f7f7;margin:.2rem;width:8rem;padding:.2rem;text-align:left;white-space:nowrap;font-size:.9rem;line-height:1.3rem;vertical-align:top}#related-apps .app-tile>{overflow:hidden}#related-apps .app-tile img{display:block;width:7rem;height:7rem;margin:0 auto .8rem}#related-apps .app-tile>div{overflow:hidden}#related-apps .app-tile .td{vertical-align:middle}#related-apps .app-tile-title{font-weight:700;text-align:center}#related-apps .app-tile-developer{margin-bottom:.4rem;text-align:center}#related-apps .table-div{display:table}#related-apps .td{display:table-cell}#related-apps .app-tile-rating{width:2rem;height:2rem;color:#fff;text-align:center;line-height:2rem;font-weight:700;border-radius:50%;margin-right:.6rem}#related-apps .app-tile-info{font-size:.9rem;line-height:1rem}#aso-data-container{padding:10px 0;text-align:center}#aso-data-container #app-data i{margin-top:10px}#aso-data-container #app-data li{display:inline-block;width:110px;margin:0 3px;margin-bottom:10px;background:#f7f7f7}#aso-data-container #app-data .value{text-align:center;padding:15px 5px;font-family:Arial;font-size:15px;font-weight:700;color:#666}#aso-data-container #app-data .title{text-align:center!important;padding:5px;font-family:Arial;font-size:13px;color:#999;border-top:1px solid #e1e1e1}#app-libraries .content{display:flex;justify-content:space-evenly;flex-wrap:wrap;column-gap:40px;align-items:baseline}#app-libraries .content .section{padding:10px 20px;border:1px solid #c8c8c8;margin:10px}#app-libraries .content .section-content{display:flex;flex-direction:column}#app-libraries .content .section-content .library-item{display:flex;align-items:center;column-gap:10px;margin-bottom:10px}#app-libraries .content .section-content img{height:30px;width:auto}#app-libraries h3{font-size:17px;margin-bottom:10px;font-weight:700;border-bottom:1px solid #c8c8c8;padding-bottom:10px}#aso-data-table .aso-data-table-container{display:flex;align-items:center;justify-content:center}#aso-data-table .aso-data-table-container table{border-collapse:collapse;text-align:center;font-size:16px;width:100%}#aso-data-table .aso-data-table-container table td,#aso-data-table .aso-data-table-container table th{border:1px solid #ddd;padding:8px}#aso-data-table .aso-data-table-container table tr{background-color:#fff}#aso-data-table .aso-data-table-container table tr:hover{background-color:#ddd}#aso-data-table .aso-data-table-container table th{padding:12px;background-color:#00695c;color:#fff}#aso-data #change-logs .app-changelog{display:flex;flex-wrap:wrap;justify-content:center;row-gap:10px;column-gap:10px}#aso-data #change-logs .app-changelog li{margin:0;width:100px;row-gap:15px;padding:15px;border:1px solid #c5c5c5;border-radius:5px;display:flex;flex-direction:column}#aso-data #change-logs .app-changelog li .app-changelog-type-box{color:#fff;background:#1d1d1d;padding:5px 10px}#aso-data #change-logs .app-changelog li .app-changelog-type-box-update{color:#fff;background:#e6a509;padding:5px 10px}#aso-data #change-logs .app-changelog li .app-changelog-type-box-downloads{color:#fff;background:#069bf7;padding:5px 10px}#aso-data #change-logs .app-changelog li .app-changelog-type-box-new-app{color:#fff;background:#4b7335;padding:5px 10px}#aso-data #change-logs .app-changelog li.expandable-hidden{display:none}#add-later{display:flex;flex-direction:column;position:fixed;right:25px;bottom:25px;align-items:flex-end}#add-later button{padding:10px 20px;margin:5px 0;border:none;border-radius:5px;color:#fff;box-shadow:0 1px 5px #292929;cursor:pointer;transition:background .2s ease-in-out}#add-later button.add-to-list{background:#2e7d32}#add-later button.add-to-list:hover{background:#133214}#add-later button.show-list{background:#0277bd}#add-later button.show-list:hover{background:#013758}#add-later button.faq-btn{background:#c50a52}#add-later button.faq-btn:hover{background:#64052a}#add-later button.remove-from-list{background:#c62828}#add-later button.remove-from-list:hover{background:#711717}#add-later button.show-settings{background:#04283d}#add-later button.show-settings:hover{background:#000}#show-list h3{font-size:16px;font-weight:700;color:#fff;margin:0}#show-list p{margin:10px;color:#b5b5b5}#show-list table{margin:30px 0;color:#1d1d1d}#show-list table tbody{font-weight:700}#show-list table tbody a{color:#018a7a;transition:.3s ease-in-out}#show-list table tbody a:hover{color:#003630}#show-list table tbody .delete{color:#d50000;cursor:pointer;transition:color .3s ease-in-out}#show-list table tbody .delete:hover{color:#250303}#show-list .btn{padding:5px 10px;border:none;border-radius:5px;color:#fff;background:#0277bd;transition:background .3s ease-in-out;cursor:pointer;font-size:14px}#show-list .btn.btn-danger{background:#c62828}#show-list .btn.btn-danger:hover{background:#5f1313}#show-list .btn.btn-primary{background:#00695c}#show-list .btn.btn-primary:hover{background:#012c27}#faq-list ul{list-style:none;margin:0;padding:0}#faq-list ul li{display:block;padding:10px;width:500px;background:#ddd;color:#000;margin:10px 0}#faq-list ul li p{font-size:17px;text-align:left;padding:10px;margin:0}#app-keywords .content{display:flex;flex-wrap:wrap;align-items:center;justify-content:center}#app-keywords .content span{margin:5px;padding:5px 10px;background:#bb0561;color:#fff}#aso-data-container .header{font-size:18px;padding:20px 10px;color:#666;text-transform:uppercase;font-family:Arial;font-weight:700;position:relative;margin-top:30px}#aso-data-container a{font-weight:700}#aso-data-container .expande-toggle{display:none;margin-top:10px;cursor:pointer;padding:5px 10px;background:#00899b;color:#fff;text-decoration:none;border-radius:4px;transition:background .3s ease-in-out}#aso-data-container .expande-toggle:hover{background:#01272c}#aso-data-container .expandable-hidden{display:none}#aso-data-loading{padding:10px;text-align:center;margin-bottom:10px;font-weight:700}#honor{color:#2c1912}#app-data,#dev-data{text-align:center;padding:5px}#description{width:100%;float:left;margin-bottom:20px}#description .content{color:#fff;padding:10px;background:#666;font-family:Arial;font-size:15px;text-align:center}#download_apk{font-size:14px;height:36px;line-height:34px;padding:0 20px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.05);box-sizing:border-box;transition:all .2s;background-color:#fff;border:1px solid rgba(0,0,0,.17);color:#fff;cursor:pointer;display:inline-block;font-family:Roboto,sans-serif;font-size:14px;height:36px;line-height:34px;min-width:40px;padding:0 20px;position:relative;text-align:center;text-decoration:none;white-space:nowrap;vertical-align:middle;background-color:#546e7a;font-weight:700}#download_apk:hover{box-shadow:0 1px 0 0 rgba(0,0,0,.27);cursor:pointer;background-color:#29434e}#aso-feature-image{padding-bottom:20px;text-align:center}#aso-feature-image i{display:block;margin-bottom:10px;font-weight:700}#addition-links{margin-bottom:20px}#addition-links img{height:20px}#addition-links a{margin:5px;font-size:14px;font-weight:700}#addition-links .bg-blue-round{background:#007bff;border-radius:5px;display:inline-block;padding:5px}.copy-txt::after{content:"📋";transition:background .5s;color:#fff;padding:5px 10px;cursor:pointer;position:absolute;right:10px;top:3px}#credits{text-align:center}#credits a{color:#06263a;transition:color .5s}#credits a:hover{color:#061b31}#credits .social{margin:20px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;row-gap:10px;column-gap:10px}#support-me{margin:15px;display:flex;justify-content:center;align-items:center}#support-me a{width:135px;height:40px;display:block;margin:10px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIcAAAAoCAYAAADUrekxAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAF8mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNy4wLWMwMDAgNzkuMTM1N2M5ZSwgMjAyMS8wNy8xNC0wMDozOTo1NiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjUgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMS0wOS0yN1QxMzo1NjozNCswMTowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjEtMDktMjdUMTQ6MDE6MDErMDE6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMDktMjdUMTQ6MDE6MDErMDE6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZWFlOWMwYjItNTg1Ny1lMzRiLTg2NDktMWNlM2IwNGIzNzBhIiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZjkxNjE1N2QtOTE1NC0xODQ1LWJiZWItZTk3M2MyMjFlNmIxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MjM4NTU3MTctOWUyYi1hZTQxLTkwMGItMjQ2YTQzYjc0NWNjIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMzg1NTcxNy05ZTJiLWFlNDEtOTAwYi0yNDZhNDNiNzQ1Y2MiIHN0RXZ0OndoZW49IjIwMjEtMDktMjdUMTM6NTY6MzQrMDE6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMi41IChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZWFlOWMwYjItNTg1Ny1lMzRiLTg2NDktMWNlM2IwNGIzNzBhIiBzdEV2dDp3aGVuPSIyMDIxLTA5LTI3VDE0OjAxOjAxKzAxOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjIuNSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+BzhFFQAADdBJREFUeNrtXAl4TdcW3tdMzKSoIRFjhBASIVRFPV5rnqePiqGm8IqiikaLGJ8SMSREEjMxhQw0NaUlKe2nWtW+1lTzFEMV9UrXW/8+2SfnxnVFX3pvWnd93/ruufuec+4+Z/9nrX8N94rk5GQRHx8vkpKSfPfv3x+/Zs2a62FhYXdWrFiR5tAXQ7HeWHes/yeffOKbmJgoli5dKsSBAwfEoUOHAvlDatKkCeXJk4eEEGQymRz6gijWG+uO9V+3bh19/vnngSEhIULwRgtGDxUv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)}#cache-notice{padding:14px;color:#664d03;border:1px solid #fff3cd;text-align:center;background:#ffecb5;margin:10px;font-size:15px;display:none}#cache-notice button{background:#9b1d1d;color:#fff;border:none;padding:5px 10px;cursor:pointer;transition:background .3s ease-in-out;border-radius:5px;margin-top:10px}#cache-notice button:hover{background:#420c0c}#cache-notice #clear-cache-appbrain,#cache-notice #clear-cache-appstore{display:none}#update-notice .update-link{background:#5d0ca8;color:#fff;border:none;padding:5px 10px;cursor:pointer;transition:background .3s ease-in-out;border-radius:5px;margin-top:10px;display:block}#update-notice .update-link:hover{background:#2a054d;color:#fff}#error-notice,#update-notice{padding:16px;color:#88171a;border:1px solid #f59999;text-align:center;background:#fddfdf;margin:10px;font-size:15px;display:none}#error-notice h3,#update-notice h3{font-size:20px;font-weight:700;margin-bottom:20px}#error-notice a,#update-notice a{color:#0875b2;transition:color .3s}#error-notice a:hover,#update-notice a:hover{color:#093c5a}#aso-feature-image img{padding:5px;border:1px solid #d4d4d4;border-radius:4px}</style>`;
  58. let aso_add_later_code = aso_style_code + `<div id=add-later><button class=add-to-list>Add To List</button> <button class=show-list>(0) Show List</button> <button class=faq-btn>🤔 FAQ - الأسئلة الشائعة</button></div><div id=faq-list class=pop-up-display><div class=content><h3>FAQ &amp; الأسئلة الشائعة</h3><ul><li><h3>Who made this script?</h3><p>- I'm a Moroccan developer goes with name <a href=https://github.com/ayoubfletcher>Ayoub Fletcher</a>. Who keeps improving his coding skills and giving back to the community, and to help guys who wanna start their journey, wish ya good luck.</p></li><li><h3>How do you make money if the script is free, it must be a malware?</h3><p>- Well, the script is entirely free to kick start your own journey in the android development. The entire source code for the script is hosted on <a href=https://github.com/ayoubfletcher/ASO-Google-Play>Girhub Repo</a>, please feel free to audit it yourself or ask other developers for a hand to help ya with it.</p></li><li><h3>Seriously how do you make money from the script, what's the catch?</h3><p>- Well as i've said the entire source code is free, and there is no string attached to it. No tracking, nothing everyhing you use is hosted in your browser nothing is sent to our backend. The only way script can generate income is by the donate button, currently I'm only using PayPal as the only way for donation. Other than that i don't make any penny out of the script.</p></li><li><h3>How can i trust someone i don't know, no offence.</h3><p>- Well you don't have to trust me, the trust is been earned not given so i have to earn your trust. The code is open source, everything that runs in the script is there i don't inject any script any tracking stuff. If you don't know me ask friends about me, and they gonna tell ya. For the code please feel free to check it, the code is clean and no obfuscation to try hiding malware code or anything.</p></li><li><h3>I cannot read the code, how am i supposed to audit it?</h3><p>- Well you don't have to trust me, send the code to any of your developers friends or hire someone to check it for ya, there's so many high skilled developers out there, can audit the script for you. Just ask them nicely and they will help ya with it. On the top of that the code doesn't use any obfuscation to hijack the code whatsoever.</p></li><li><h3>Should i donate you to use the script?</h3><p>- Well you don't have too, but if you do it's a genuinely welcome thing and it will make my day :D., Currently accepting PayPal, Profitable niches trust me i'll keep them private :P.</p></li><li><h3>Speical Thanks</h3><p>- Special thanks for the guys who considered donating for the project, really appreciated much love. As many of you know that maintaining a project requires time and resources so thank you for your support much love ❤️.</p></li><li><h3>Do you have any social media presence, YouTube ..?</h3><p>- Well YouTube i don't have it yet, i know it's dumb but soon maybe i'm gonna start a channel about coding probably. Or dancing on TikTok if i got depressed about money, you never know :P</p></li><li><h3>I would like to contact you, where can i reach you?</h3><p>- Well feel free to say hi on social media accounts, <a href=https://www.facebook.com/ayoub.fletcher/ >Facebook</a>, <a href=https://www.instagram.com/ayoub.fletcher/ >Instagram</a>.</p></li></ul></div></div><div id=show-list class=pop-up-display><div class=content><h3>Saved Later:</h3><p>The list is empty, add items to the list to be shown here.</p><div id=aso-data-table><div class=aso-data-table-container><table><thead><tr><th>App</th><th>Package Name</th><th>URL Saved</th><th>Google Play URL</th><th>Delete</th></tr></thead><tbody></tbody></table></div></div><button id=clear-list class="btn btn-danger">Clear</button> <button id=export-list class="btn btn-primary">Export</button></div></div>`;
  59.  
  60. /**
  61.  *
  62.  * @param {Str} htmlStr HTML string to be converted
  63.  * @returns node element
  64.  */
  65. function evaluateHtml(htmlStr) {
  66.     var div = document.createElement("div");
  67.     div.innerHTML = htmlStr;
  68.     return div;
  69. }
  70.  
  71.  
  72.  
  73.  
  74. function initAddToListJS() {
  75.     document.querySelector('body').insertBefore(evaluateHtml(aso_add_later_code), document.querySelector('body').children[document.querySelector('body').children.length-1]);
  76.  
  77.  
  78.  
  79.  
  80.         let package_name;
  81.         if(location.href.indexOf('play.google.com') > -1) {
  82.             package_name = location.href.split("?id=")[1].split("&")[0];
  83.         } else if (location.href.indexOf('appbrain.com/app/') > -1 || location.href.indexOf('appstorespy.com') > -1) {
  84.             package_name = location.href.split('/')[location.href.split('/').length-1].split('?')[0].split('#')[0];
  85.         } else {
  86.             package_name = 'com.example.debugging';
  87.         }
  88.  
  89.  
  90.  
  91.  
  92.         const clearCacheBtn = document.querySelector('#clear-cache');
  93.         if(clearCacheBtn != null) {
  94.             clearCacheBtn.addEventListener('click', function(e) {
  95.                 e.preventDefault();
  96.                 GM_deleteValue(`cache_${package_name}`);
  97.                 document.querySelector('#cache-notice .content').innerHTML = `The cache has been purged for "${package_name}" from the Tampermonkey database, next page will go straight to the AppBrain & AppStoreSpy webpage.`;
  98.             });
  99.  
  100.             document.querySelector('#clear-cache-appstore').addEventListener('click', function(e) {
  101.                 e.preventDefault();
  102.                 const current_data = GM_getValue(`cache_${package_name}`);
  103.                 current_data.app_store = null;
  104.                 GM_setValue(`cache_${package_name}`, current_data);
  105.                 document.querySelector('#cache-notice .content').innerHTML = `The AppStoreSpy cache has been purged for "${package_name}" from the Tampermonkey database, next page will go straight to the AppStoreSpy webpage.`;
  106.             });
  107.             document.querySelector('#clear-cache-appstore-dev').addEventListener('click', function(e) {
  108.                 e.preventDefault();
  109.                 const current_data = GM_getValue(`cache_${package_name}`);
  110.                 current_data.app_store_dev = null;
  111.                 GM_setValue(`cache_${package_name}`, current_data);
  112.                 document.querySelector('#cache-notice .content').innerHTML = `The AppStoreSpy Developer cache has been purged for "${package_name}" from the Tampermonkey database, next page will go straight to the AppStoreSpy Developer webpage.`;
  113.             });
  114.  
  115.             document.querySelector('#clear-cache-appbrain').addEventListener('click', function(e) {
  116.                     e.preventDefault();
  117.                     const current_data = GM_getValue(`cache_${package_name}`);
  118.                     current_data.app_brain = null;
  119.                     GM_setValue(`cache_${package_name}`, current_data);
  120.                     document.querySelector('#cache-notice .content').innerHTML = `The AppBrain cache has been purged for "${package_name}" from the Tampermonkey database, next page will go straight to the AppBrain webpage.`;
  121.                 });
  122.         }
  123.  
  124.  
  125.         document.querySelector('#export-list').addEventListener('click', function(e) {
  126.             e.preventDefault();
  127.             let currentList = GM_getValue('save_later');
  128.             let csvContent = "data:text/csv;charset=utf-8,";
  129.  
  130.             csvContent += 'App,Package Name,URL Saved,Google Play URL\n';
  131.             currentList.forEach(function(row) {
  132.                 csvContent += `${row.name},${row.package_name},${row.url},${row.google_play}\n`;
  133.             });
  134.  
  135.             const encodedUri = encodeURI(csvContent);
  136.             var link = document.createElement('a');
  137.             link.setAttribute('href', encodedUri);
  138.             let currentTimeName = new Date(Date.now()).toLocaleString().replace(/\/|:/g, '-').replace(/,|\s/g, '_').replace(/__/g, '_');
  139.             link.setAttribute('download', `data_export_${currentTimeName}.csv`);
  140.             link.click();
  141.         })
  142.  
  143.  
  144.         document.querySelector('#add-later .add-to-list').addEventListener('click', function(e) {
  145.             e.preventDefault();
  146.             const isRemovedFromList = e.target.classList.toggle('remove-from-list');
  147.  
  148.             if(isRemovedFromList) {
  149.                 e.target.innerHTML = 'Remove From List'
  150.             } else {
  151.                 e.target.innerHTML = 'Add To List'
  152.             }
  153.  
  154.  
  155.  
  156.             let currentList = GM_getValue('save_later');
  157.             if(currentList == null) {
  158.                 currentList = [];
  159.             }
  160.  
  161.             if(isRemovedFromList) {
  162.                 currentList.push({
  163.                     name: document.querySelector('h1').innerText,
  164.                     package_name: package_name,
  165.                     url: location.href,
  166.                     google_play: `https://play.google.com/store/apps/details?id=${package_name}`
  167.  
  168.  
  169.                 });
  170.             } else {
  171.                 currentList = currentList.filter(item => item.package_name !== package_name);
  172.             }
  173.             GM_setValue('save_later', currentList);
  174.             updateDisplay();
  175.         })
  176.  
  177.         document.querySelector('#add-later .faq-btn').addEventListener('click', function(e) {
  178.             document.querySelector('#faq-list').classList.toggle('show');
  179.         })
  180.  
  181.         window.addEventListener('click', function(e) {
  182.             let isPopupWithin = false;
  183.             ['#add-later .faq-btn', '#add-later .show-list'].forEach(selectorName => {
  184.                 if(document.querySelector(selectorName) === e.target) {
  185.                     isPopupWithin = true;
  186.                 }
  187.             })
  188.             const contentPopupElem = document.querySelector('.pop-up-display.show .content');
  189.             if(contentPopupElem != null) {
  190.                 if(!contentPopupElem.contains(e.target) && !isPopupWithin) {
  191.                     contentPopupElem.parentElement.classList.remove('show');
  192.                 }
  193.             }
  194.         })
  195.  
  196.         document.querySelector('#add-later .show-list').addEventListener('click', function(e) {
  197.             document.querySelector('#show-list').classList.toggle('show');
  198.         })
  199.  
  200.         document.querySelector('#clear-list').addEventListener('click', function(e) {
  201.             e.preventDefault();
  202.             GM_setValue('save_later', []);
  203.  
  204.             updateDisplay();
  205.         })
  206.  
  207.         function initDeleteListenersTable() {
  208.             document.querySelectorAll('#show-list .delete').forEach(function(elem) {
  209.                 elem.addEventListener('click', function(e) {
  210.                     e.preventDefault();
  211.                     const currentItemId = e.target.getAttribute('data-id');
  212.  
  213.                     let currentList = GM_getValue('save_later');
  214.                     currentList = currentList.filter(item => item.package_name !== currentItemId);
  215.                     GM_setValue('save_later', currentList);
  216.  
  217.                     updateDisplay();
  218.                 })
  219.             })
  220.         }
  221.  
  222.         function updateDisplay() {
  223.             let currentList = GM_getValue('save_later');
  224.             if(currentList == null) {
  225.                 currentList = [];
  226.             }
  227.             let currentCount = currentList.length;
  228.             document.querySelector('#add-later .show-list').innerHTML = `(${currentCount}) Show List`;
  229.  
  230.             const isAlreadyExists = currentList.some(item => item.package_name === package_name);
  231.             const btnElem = document.querySelector('#add-later .add-to-list');
  232.             if(isAlreadyExists) {
  233.                 btnElem.classList.add('remove-from-list');
  234.                 btnElem.innerHTML = 'Remove From List';
  235.             } else {
  236.                 btnElem.classList.remove('remove-from-list');
  237.                 btnElem.innerHTML = 'Add To List';
  238.             }
  239.  
  240.             const showListDisplay = document.querySelector('#show-list');
  241.             if(currentList.length > 0) {
  242.                 showListDisplay.querySelector('p').style.display = 'none';
  243.                 showListDisplay.querySelector('table').style.display = 'block';
  244.  
  245.                 const elementsHtml = currentList.map(item => {
  246.                     return `<tr>
  247.                         <td>${item.name}</td>
  248.                         <td>${item.package_name}</td>
  249.                         <td>
  250.                             <a href="${item.url}">URL</a>
  251.                         </td>
  252.  
  253.                         <td>
  254.                             <a href="${item.google_play}">URL</a>
  255.                         </td>
  256.                         <td class="delete" data-id="${item.package_name}">X</td>
  257.                     </tr>`;
  258.                 }).join('');
  259.                 showListDisplay.querySelector('table tbody').innerHTML = elementsHtml;
  260.                 showListDisplay.querySelectorAll('button').forEach(elem => {
  261.                     elem.style.display = 'inline-block';
  262.                 })
  263.                 initDeleteListenersTable();
  264.             } else {
  265.                 showListDisplay.querySelector('p').style.display = 'block';
  266.                 showListDisplay.querySelector('table').style.display = 'none';
  267.  
  268.                 showListDisplay.querySelectorAll('button').forEach(elem => {
  269.                     elem.style.display = 'none';
  270.                 })
  271.             }
  272.         }
  273.  
  274.         document.querySelectorAll('.pop-up-display .content').forEach(elem => {
  275.             let closeElem = elem.querySelector('.close');
  276.             if(closeElem == null) {
  277.                 closeElem = document.createElement('span');
  278.                 closeElem.classList.add('close');
  279.                 closeElem.innerHTML = 'X';
  280.                 closeElem.addEventListener('click', function(e) {
  281.                     e.preventDefault();
  282.                     elem.parentElement.classList.remove('show');
  283.                 });
  284.                 elem.appendChild(closeElem);
  285.             }
  286.         })
  287.  
  288.          updateDisplay();
  289.         initDeleteListenersTable();
  290.  
  291. }
  292.  
  293.  
  294.  
  295.  
  296.  
  297. /**
  298.  * Run method to reload the data after the ajax requests of page
  299.  */
  300. function run() {
  301.     // Clean Appbrain
  302.     if (location.href.indexOf("www.appbrain.com") > -1) {
  303.         // Remove paywall
  304.         document
  305.             .querySelector(".paywall-overlay")
  306.             .parentElement.removeChild(document.querySelector(".paywall-overlay"));
  307.         // Remove the blur
  308.         if (document.querySelector(".blurred") != null) {
  309.             document.querySelector(".blurred").classList.remove("blurred");
  310.             // Add a notice for the paywall
  311.             const mainContentElem = document.querySelector(".main-contents");
  312.             const htmlCode = `<div class="alert alert-danger" style="text-align: center;">
  313.                 You have reached your daily pageview limit for AppBrain. This is a custom notice made by the script <a href="https://github.com/ayoubfletcher/ASO-Google-Play" target="_blank">Github Link</a>, We've hided that deadly paywall thing, that's why it doesn't show up.
  314.             </div>`;
  315.             mainContentElem.parentElement.insertBefore(evaluateHtml(htmlCode), mainContentElem);
  316.         }
  317.  
  318.         // To add download to appbrain.
  319.         //addDownloadLinkToAppBrain();
  320.  
  321.     } else if(location.href.startsWith('https://play.google.com/')) {
  322.         // Save the current page url
  323.         let current_app_url = location.href;
  324.         // Check if the current id not the same
  325.         if (document.getElementById("aso-data") == null && !processing) {
  326.             //processing = true;
  327.  
  328.             let headerNodeElem = document.querySelector('h1').parentNode;
  329.             for (let x = 0; x < 7; x++) {
  330.                 headerNodeElem = headerNodeElem.parentNode;
  331.             }
  332.  
  333.             const appDivContainer = document.createElement('div');
  334.             appDivContainer.id = "aso-data";
  335.             appDivContainer.innerHTML = `<p style="padding: 10px; text-align:center;font-size: 17px;color:#c12323; line-height:1.5em;">The Tampermonkey got deprecated. It've been migrated to the browser extension for better integration and safe updates.<br>Visit the Github URL for more information: <br><a href="https://github.com/ayoubfletcher/ASO-Google-Play" target="_blank">https://github.com/ayoubfletcher/ASO-Google-Play</a>.</p>`
  336.             headerNodeElem.insertBefore(appDivContainer, headerNodeElem.childNodes[headerNodeElem.childNodes.length - 1]);
  337.  
  338.         }
  339.         setInterval(function () {
  340.             if (current_app_url != location.href) {
  341.                 location.reload();
  342.             }
  343.         }, INTERVAL_TIMER_CHECKER);
  344.     }
  345.     initAddToListJS();
  346. }
  347.  
  348. /** Main method script */
  349. (function () {
  350.     "use strict";
  351.     /**
  352.      * BUG appears on Chrome
  353.      * Fixes for the bug "This document requires 'TrustedScript' assignment."
  354.      */
  355.     if (window.trustedTypes && window.trustedTypes.createPolicy) {
  356.         window.trustedTypes.createPolicy("default", {
  357.             createHTML: (string, sink) => string,
  358.         });
  359.     }
  360.  
  361.     run();
  362. })();
Add Comment
Please, Sign In to add comment