Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var reg = (o, n) => o ? o[n] : '';
- var cn = (o, s) => o ? o.getElementsByClassName(s) : console.log(o);
- var tn = (o, s) => o ? o.getElementsByTagName(s) : console.log(o);
- var gi = (o, s) => o ? o.getElementById(s) : console.log(o);
- var rando = (n) => Math.round(Math.random() * n);
- var unq = (arr) => arr.filter((e, p, a) => a.indexOf(e) == p);
- var delay = (ms) => new Promise(res => setTimeout(res, ms));
- var ele = (t) => document.createElement(t);
- var attr = (o, k, v) => o.setAttribute(k, v);
- async function getListingInfoByPage(p) {
- var res = await fetch("https://medium.com/_/api/users/7558e26f1503/followers?&page=" + p + "&fbclid=IwAR3Ddn76uLnRIpuVQLnnygTlSR9C1o_OUgCPlUFgx1zGg3dsJ3vthL30RPM", {
- "credentials": "include",
- "headers": {
- "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
- "accept-language": "en-US,en;q=0.9",
- "cache-control": "max-age=0",
- "upgrade-insecure-requests": "1"
- },
- "referrerPolicy": "no-referrer-when-downgrade",
- "body": null,
- "method": "GET",
- "mode": "cors"
- });
- var text = await res.text();
- var jdat = JSON.parse(text.replace(/.+?<\/x>/, ''));
- return jdat;
- }
- async function looper() {
- var temp = [];
- var totalPages = 10;
- for (var i = 2; i < totalPages; i++) {
- var dat = await getListingInfoByPage(i + 1);
- console.log(i);
- await delay(2000);
- var arr = dat.payload.value;
- arr.forEach(el => {
- if (temp.every(itm => itm.userId != el.userId)) temp.push(el)
- });
- }
- var output = convertToTSV(temp);
- downloadr(output, 'converted_file.tsv');
- }
- function downloadr(arr2D, filename) {
- var data = /\.json$|.js$/.test(filename) ? JSON.stringify(arr2D) : arr2D.map(el => el.reduce((a, b) => a + '\t' + b)).reduce((a, b) => a + '\r' + b);
- var type = /\.json$|.js$/.test(filename) ? 'data:application/json;charset=utf-8,' : 'data:text/plain;charset=utf-8,';
- var file = new Blob([data], {
- type: type
- });
- if (window.navigator.msSaveOrOpenBlob) {
- window.navigator.msSaveOrOpenBlob(file, filename);
- } else {
- var a = document.createElement('a'),
- url = URL.createObjectURL(file);
- a.href = url;
- a.download = filename;
- document.body.appendChild(a);
- a.click();
- setTimeout(() => {
- document.body.removeChild(a);
- window.URL.revokeObjectURL(url);
- }, 10);
- }
- }
- var dateifdate = (s) => {
- if ((typeof s == "number" || typeof s == "string") && /\b1[1-6]\d{11}\b/.test(s.toString())) {
- return new Date(s);
- } else {
- return s;
- }
- };
- function convertToTSV(fileArray) {
- var firstLevel = fileArray.map(el => Object.entries(el));
- var lens = Math.max(...firstLevel.map(el => el.length));
- var header = unq(firstLevel.map(el => el.map(itm => itm[0])).flat());
- var table = [header];
- var str = (o) => typeof o == 'object' ? JSON.stringify(o).replace(/\n|\r/g, ' ') : o.toString().replace(/\n|\r/g, ' ');
- for (var i = 0; i < firstLevel.length; i++) {
- var arr = [];
- var row = [];
- for (var s = 0; s < firstLevel[i].length; s++) {
- var place = header.indexOf(firstLevel[i][s][0]);
- arr[place] = dateifdate(firstLevel[i][s][1]);
- }
- for (var a = 0; a < arr.length; a++) {
- if (arr[a]) {
- row.push(arr[a]);
- } else {
- row.push('');
- }
- }
- table.push(row);
- }
- var output = table.map(el => el.map(itm => str(itm)));
- return output;
- }
- looper();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement