Greasy Fork is available in English.

Copy information of apps from Play Store to post on Mobilism

Copy information of apps from Play Store and format it to post on Mobilism

// ==UserScript==
// @name         Copy information of apps from Play Store to post on Mobilism
// @namespace    https://github.com/AbdurazaaqMohammed/userscripts
// @version      1.0.4.2
// @description  Copy information of apps from Play Store and format it to post on Mobilism
// @author       Abdurazaaq Mohammed
// @match        https://play.google.com/store/apps/*
// @grant        GM_setClipboard
// @license      The Unlicense
// @homepage     https://github.com/AbdurazaaqMohammed/userscripts
// @supportURL   https://github.com/AbdurazaaqMohammed/userscripts/issues
// ==/UserScript==

(function() {
  'use strict';

  function getInfo() {
    const aboutAppButtons = document.getElementsByClassName('google-material-icons VfPpkd-kBDsod W7A5Qb')
    for (let i=0; i<aboutAppButtons.length; i++){
      aboutAppButtons[i].click(); // have to open the about page to load the info
    }

    setTimeout ( function () {
      const title = document.querySelector('h1').textContent;
      var appVersion = document.querySelector("#yDmH0d > div.VfPpkd-Sx9Kwc.cC1eCc.UDxLd.PzCPDd.HQdjr.VfPpkd-Sx9Kwc-OWXEXe-FNFY6c > div.VfPpkd-wzTsW > div > div > div > div > div.fysCi > div:nth-child(3) > div:nth-child(1) > div.reAt0").textContent;
      var requiredVersion = document.querySelector('#yDmH0d > div.VfPpkd-Sx9Kwc.cC1eCc.UDxLd.PzCPDd.HQdjr.VfPpkd-Sx9Kwc-OWXEXe-FNFY6c > div.VfPpkd-wzTsW > div > div > div > div > div.fysCi > div:nth-child(3) > div:nth-child(3) > div.reAt0').textContent;
      if (requiredVersion.startsWith('Varies with device')) {
        for (let i=5; i<5+6; i++) { // check version and requirements for your linked google devices
          requiredVersion = "#yDmH0d > div.VfPpkd-Sx9Kwc.cC1eCc.UDxLd.PzCPDd.HQdjr.VfPpkd-Sx9Kwc-OWXEXe-FNFY6c > div.VfPpkd-wzTsW > div > div > div > div > div.fysCi > div:nth-child(" + i + ") > div:nth-child(5) > div.reAt0";
          if (document.querySelector(requiredVersion)) {
            appVersion =  document.querySelector(requiredVersion.replace('div:nth-child(5) > div.reAt0', 'div:nth-child(2) > div.reAt0')).textContent;
            requiredVersion = document.querySelector(requiredVersion).textContent;
            break;
          }
        }
      }
      const desc = document.querySelector("#yDmH0d > div:nth-child(30) > div.VfPpkd-wzTsW > div > div > div > div > div.fysCi > div:nth-child(1)").innerText.replace(/\p{Emoji}/gu, '');
      var changelog = document.querySelector("#yDmH0d > c-wiz.SSPGKf.Czez9d > div > div > div.tU8Y5c > div.wkMJlb.YWi3ub > div > div.qZmL0 > div:nth-child(1) > c-wiz:nth-child(3) > section > div > div") ? document.querySelector("#yDmH0d > c-wiz.SSPGKf.Czez9d > div > div > div.tU8Y5c > div.wkMJlb.YWi3ub > div > div.qZmL0 > div:nth-child(1) > c-wiz:nth-child(3) > section > div > div").innerText : 'No changelog';
      if (changelog.startsWith('This app may share') || changelog.startsWith('No data shared')) changelog = document.querySelector("#yDmH0d > c-wiz.SSPGKf.Czez9d > div > div > div.tU8Y5c > div.wkMJlb.YWi3ub > div > div.qZmL0 > div:nth-child(1) > c-wiz:nth-child(5) > section > div > div") ? document.querySelector("#yDmH0d > c-wiz.SSPGKf.Czez9d > div > div > div.tU8Y5c > div.wkMJlb.YWi3ub > div > div.qZmL0 > div:nth-child(1) > c-wiz:nth-child(5) > section > div > div").innerText : 'No changelog';
      changelog = changelog.replace(/\p{Emoji}/gu, '');
      const firstLine = desc.split('\n')[0];
      const postDesc = desc.split('\n').slice(1).join('\n');
      const postTitle = `[b]${title} v${appVersion}[/b]`;
      const postRequirements = `[u]Requirements:[/u] ${requiredVersion}`;
      const postOverview = `[u]Overview:[/u] ${firstLine}`;
      const img = `YOU STILL HAVE TO PUT THE IMAGE\n[break]`;
      const modInfo = ''; //put mod info if you want
      const postChangelog = `[u]What's New:[/u]\n${changelog}`;
      const adsField = '[b]This app has no advertisements[/b]';
      const playstoreLink = `[u]More Info:[/u]\n[code]${window.location.href}[/code]`;
      const dlLinks = `[u]Download Instructions:[/u]\nUniversal\n\nMirror:\n\narmeabi-v7a\n\nMirror:\n\narm64-v8a\n\nMirror:\n\nx86\n\nMirror:\n\nx86_64\n\nMirror:\n`;
      const msg = 'Trouble downloading? Read [url=https://forum.mobilism.org/viewtopic.php?f=19&t=649944][b]This[/b][/url].';
      const fullInfo = `${postTitle}\n${postRequirements}\n${postOverview}\n\n${img}\n${postDesc}\n${modInfo}\n${postChangelog}\n\n${adsField}\n\n${playstoreLink}\n${dlLinks}\n${msg}`;

      if (fullInfo) {
        GM_setClipboard(fullInfo);
        alert('Copied info to clipboard.');
      } else {
        alert('Error; try increase the loading time in the script');
      }
    }, 2000) //loading time in milliseconds
  }

  getInfo();
})();