1. JavaScript / Говнокод #28792

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    const ttfMeta = require('ttfmeta');
    const fs = require('fs');
    
    let oldName = process.argv[2];
    
    ttfMeta.ttfInfo(oldName, (err, result) => {
      if (err) {
        console.log('error', err)
      } else {
        let newName = result.tables.name[6];
    
        if(newName.charCodeAt(0) === 0) {
            let buf = new ArrayBuffer(newName.length);
            let bufView = new Uint16Array(buf);
            for (let i = 0, strLen = newName.length / 2; i < strLen; i++) {
              bufView[i] = (newName.charCodeAt(2 * i) << 8) + newName.charCodeAt(2 * i + 1);
            }
            newName = String.fromCharCode.apply(null, bufView);
        }
        
        newName = 'renamed/' + newName + '.ttf';
        fs.createReadStream(oldName).pipe(fs.createWriteStream(newName));
      }
    });

    Дано: 100500 ttf-файлов с рандомными именами файла (цифры, гуиды, что угодно, но только не название шрифта).
    Требуется: переименовать файлы так, чтобы название хоть как-то было похоже на имя шрифта.
    Решение: есть 100500 библиотек на сишке для вытаскивания метушни из ttf-файлов, но мы же извращенцы, поэтому напишем на скриптушне.

    Багор: пакет «ttfmeta» из «npm» иногда возвращает нормальные текстовые строки, а иногда хуйню (детектируемую условием newName.charCodeAt(0) === 0), когда пара соседних «символов» — это на самом деле половинки кодпоинта из кодировки utf16be. «Нода» умеет только в toString('utf16le'), а кодировку с большим индейцем ('utf16be') не знает.

    Izumka, 05 Июня 2023

    Комментарии (54)
  2. JavaScript / Говнокод #28785

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    if (this.$arg0 == 'inc')    this.$ret = this.$math = args[0] + 1;
            if (this.$arg0 == 'dec')    this.$ret = this.$math = args[0] - 1;
            if (this.$arg0 == 'div')    this.$ret = this.$math = args[0] / args[1];
            if (this.$arg0 == 'ceil')   this.$ret = this.$math = Math.ceil(args[0]);
            if (this.$arg0 == 'floor')  this.$ret = this.$math = Math.floor(args[0]);
            if (this.$arg0 == 'sqrt')   this.$ret = this.$math = Math.sqrt(args[0]);
            if (this.$arg0 == 'exp')    this.$ret = this.$math = Math.exp(args[0]);
            if (this.$arg0 == 'log')    this.$ret = this.$math = Math.log(args[0]);
            if (this.$arg0 == 'sin')    this.$ret = this.$math = Math.sign(args[0]);
            if (this.$arg0 == 'log10')  this.$ret = this.$math = Math.log10(args[0]);
            if (this.$arg0 == 'cos')    this.$ret = this.$math = Math.cos(args[0]);
            if (this.$arg0 == 'tan')    this.$ret = this.$math = Math.tan(args[0]);
            if (this.$arg0 == 'acos')   this.$ret = this.$math = Math.acos(args[0]);
            if (this.$arg0 == 'atan')   this.$ret = this.$math = Math.atan(args[0]);
            if (this.$arg0 == 'round')  this.$ret = this.$math = Math.round(args[0]);
            if (this.$arg0 == 'atan2')  this.$ret = this.$math = Math.atan2(args[0]);

    Исходный код интерпретатора компилятора (!) Языка Программирования «AsmX».
    https://github.com/langprogramming-AsmX/AsmX/blob/main/compiler.js#L215

    ISO, 19 Мая 2023

    Комментарии (55)
  3. JavaScript / Говнокод #28756

    −1

    1. 1
    console.log(...($$ = $ => (~-~-$ && $$(~-$), (_$ = $_ => $ % (_[~~$_] ??= $) ? _$(-~$_) : _)()))((_ = []) + -~_ + -_ + -_))

    Как ровные пацаны выводят в консоль первые 25 простых чисел

    sex_mashina, 20 Апреля 2023

    Комментарии (7)
  4. JavaScript / Говнокод #28650

    +1

    1. 1
    https://pastebin.com/MarcPuJc

    говно для подтирания важных комментов в вк. Весь не поместился, прилегаю ссылку.

    AnimeGovno, 26 Марта 2023

    Комментарии (5)
  5. JavaScript / Говнокод #28649

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    private async getNewKey(): Promise<string> {
    		let i: number = 0;
    		let key: string;
    		while (i < 50000) {
    			key = this.generateKey(MIN_REFERRAL_NAME_LENGTH);
    			const inDatabase: number = await ReferralEntity.count({ where: { name: key }, transaction: this._transaction });
    			if (inDatabase === 0) {
    				const inProcess: boolean = newKeyInProcess.has(key);
    				if (!inProcess) {
    					newKeyInProcess.add(key);
    					break;
    				}
    			}
    			i++;
    		}
    		return key;
    	}

    Тайпскрипт. MIN_REFERRAL_NAME_LENGTH = 3
    Как считаете, когда всё приложение встанет колом?

    alek0585, 26 Марта 2023

    Комментарии (2)
  6. JavaScript / Говнокод #28595

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    <div v-if="type" v-show="item.item.personalDiscount" class="item__price" style="background: none !important">
                        <span style="background: none !important">
                            {{ `${item.item.personalDiscount} %` }}
                        </span>
                        <span class="item__exchange">
                            {{ $t('pdf.personalDiscount') }} -
                            {{ getExchange(item.item.personalDiscountFinal) }}
                        </span>
                    </div>
                    <div v-if="type" class="item__totalPriceContainer">
                        <span class="item__totalPrice">{{ $t('pdf.itemTotal') }}:</span>
                        <div class="item__price">
                            <span>{{ getTotalOneCartPrice(item.item) }}</span>
                            <span class="item__exchange">
                                {{ $t('pdf.vat') }} —
                                {{
                            getOneCartTotalPriceExchangeNDS(
                              item.item.nds,
                              item.item.basketPriceExchange
                            )
                          }}
                            </span>
                        </div>
                    </div>

    vue js

    Timofey, 09 Февраля 2023

    Комментарии (2)
  7. JavaScript / Говнокод #28577

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    export function compareTwoObjectExceptTime (obj1, obj2) {
      const obj1Copy = { ...obj1 }
      const obj2Copy = { ...obj2 }
      delete obj1Copy.ScheduledStartOn
      delete obj1Copy.ScheduledFinishOn
      delete obj1Copy.FinishedStartOn
      delete obj1Copy.FinishedFinishOn
      delete obj1Copy.ScheduledDuration
      delete obj1Copy.FinishedDuration
      delete obj1Copy.tasks
    
      delete obj2Copy.ScheduledStartOn
      delete obj2Copy.ScheduledFinishOn
      delete obj2Copy.FinishedStartOn
      delete obj2Copy.FinishedFinishOn
      delete obj2Copy.ScheduledDuration
      delete obj2Copy.FinishedDuration
      delete obj2Copy.tasks
      return JSON.stringify(obj1Copy) === JSON.stringify(obj2Copy)
    }

    tosetac135, 30 Января 2023

    Комментарии (1)
  8. JavaScript / Говнокод #28565

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    const o = {};
    o.operationsBtn = '<a class="button" href="market/user/1/payments" style="display:inline-flex;align-items:center">...</a>';
    const q = {};
    q.renamemodal = '<div class="xenOverlay" style="top: 10%;"><div class="scroll-wrapper sectionMain scrollbar-macosx scrollbar-dynamic" style="position: relative;"><div class="sectionMain scrollbar-macosx scrollbar-dynamic scroll-content" id="SelectForumOverlayScrollbar" style="height: auto; margin-bottom: 0px; margin-right: 0px; max-height: 332px;"><h1 class="heading h1" style="font-size: 1.5em; text-align: center; font-weight: 600; padding: 14px;">Переименовать пользователя</h1><a class="close OverlayCloser"></a><div style="padding: 20px;"><div class="textHeading" style="margin-top: 0">Введите новый никнейм</div><input id="lztnextrename_input" class="textCtrl" style="width: 100%;" maxlength="50"><div style="margin-top:20px"><button class="button primary" id="lztnextrenamesave">Сохранить</button><button class="button" style="margin-left:10px" id="lztnextrenamereset">Сбросить</button><div id="show_renamed_users" style="opacity: 0.4; cursor: pointer; margin-top: 18px; float: right;">Показать переименованных</div></div></div></div></div></div>';
    const G = {};
    G.admin = o, G.lztnext = q;
    const j = G;
    function L() {
      return "aboba";
    }
    const b = abc, c = CryptoJS;
    let Z = {};
    const d = {};
    d.md5 = "abc", d.CryptoJS = "crypto";
    const D = d;
    for (const rQ of Object.entries(D)) {
      window[rQ[1]] = window[rQ[0]];
    }
    if (location.host.match(/\./g).length !== 1 || ["lolz.guru", "zelenka.guru"].indexOf(location.hostname) === -1) return;
    const n = {}, E = GM_info.script.updateURL.split("/")[4].split(".")[0];
    if (eval != unsafeWindow.eval) {
      alert("пашол нахуй");
      return;
    }
    NodeList.prototype.forEach = function (rf) {
      return Array.from(this).forEach(rf);
    };
    const T = [];
    ra("#lztnext-custom-smilies {margin-bottom: 20px}");
    let i = {get: (...rf) => {
      if (i.s) return typeof GM_getValue !== "undefined" ? GM_getValue(...rf) : localStorage.getItem(...rf);
    }, set: typeof GM_setValue !== "undefined" ? GM_setValue : localStorage.setItem, cache: {get: rf => {
      if (i.s) return i.get("_cache_" + rf);
    }, set: (rf, rP) => {
      return i.set("_cache_" + rf, rP);
    }, clear: (rf = "") => {
      i.keys().forEach(rp => {
        if (rp.startsWith("_cache_" + rf) && !rp.match(/(banned)/)) i.del(rp);
      });
    }}, del: typeof GM_deleteValue !== "undefined" ? GM_deleteValue : localStorage.removeItem, keys: typeof GM_listValues !== "undefined" ? GM_listValues : () => {
      return Object.keys(localStorage);
    }, s: true};
    const U = i.get("v");
    if (!U || GM_info.script.version > U) {
      i.cache.clear(), location.reload(), i.set("v", GM_info.script.version);
    }
    !i.get("start") && (["hide_contests_content", "start", "hide_ads", "hide_backgrounds"].forEach(rP => i.set(rP, "true")), i.set("theme", "next"));
    let I = i.get("xenforo_uuid") || localStorage.getItem("xenforo_uuid"), z = i.get("user_id") || localStorage.getItem("uid");
    (!I || !z) && rr();
    const Y = false;
    let g = JSON.parse(i.cache.get("themes") || "null") || {default: {name: "Обычная", source: "data:text/plain,", author: "Lolzteam", palette: ["rgba(52, 52, 52)", "rgb(214,214,214)"]}, next: {name: "Next", source: "https://lztnext.0-day.pw/assets/themes/next.css", author: "кустик, zoto_ff", palette: ["rgba(33, 33, 33)", "rgb(13, 179, 121)"]}};
    const {fetch: k} = unsafeWindow, l = {};
    l.headers = {};
    const N = (rP, rp = l) => {
      return new Promise((a1, a2) => {
        rp.headers = rp.headers || {};
        if (rP.match(u)) {
          if (!z) return;
          rp.headers["lztnext-payload"] = E, rp.headers.Authorization = rp.headers.Authorization || "Bearer " + I.split("%")[0], rp.headers["lolz-user-id"] = z, rp.headers["lztnext-version"] = GM_info.script.version;
          const a5 = Math.floor(Date.now() / 1e3), a6 = a5 + "," + b(L() + ("-" + rp.headers["lztnext-payload"] + "-" + rp.headers.Authorization + "-" + rp.headers["lolz-user-id"] + "-" + rp.headers["lztnext-version"] + "-" + (a5 - a5 % 22)));
          rp.headers["lztnext-hash"] = a6;
        }
        rp.onabort = () => a2(), rp.onerror = () => a2(), rp.ontimeout = () => a2(), rp.onload = a8 => {
          a1(a8.response);
        }, rp.url = rP, GM_xmlhttpRequest(rp);
      });
    };
    if (Y) unsafeWindow.storage = i;
    const u = "https://lztnext.0-day.pw/";
    function t(rP = null, rp = false) {
      rM(rP), rO(rP);
      if (i.get("hide_avatars") === "true") {
        document.querySelectorAll(".avatar img, .avatar span.img").forEach(a3 => rJ(a3));
        if (rp) {
          const a3 = $$(".avatarScaler");
          if (a3.length) {
            const a4 = a3.find("img"), a5 = $$("#page_info_wrap .username span");
            let a6 = a5.attr("data-renamed") || a5.text();
            a4.replaceWith(re(a4, a6, true));
          }
        }
      } else document.querySelectorAll(".avatar img").forEach(async a7 => {
        var _U$Cv, _c$CS;
        const a9 = await rw(a7.src);
        if (!a7.ad) a7.src = a9;
      }), document.querySelectorAll(".avatar span.img.s").forEach(async a7 => {
        const a8 = await rw(a7.style["background-image"].slice(5, -2));
        if (!a7.ad) a7.style["background-image"] = "url(" + a8 + ")";
      });
      const a1 = i.get("redirect");
      if (a1 && a1 !== "none") {
        const a7 = a1 === "lolz" ? "zelenka.guru/" : "lolz.guru/", a8 = a1 === "zelenka" ? "zelenka.guru/" : "lolz.guru/";
        document.querySelectorAll('a[href*="' + a7 + '"]').forEach(async a9 => {
          a9.href = a9.href.replace(a7, a8);
        }), Array.from($('a:contains("' + a7 + '")')).forEach(async a9 => {
          a9.innerHTML = a9.innerHTML.replace(new RegExp(a7.replace(/\//g, "\\/"), "g"), a8);
        });
      }
    }

    jcyozmzl, 20 Января 2023

    Комментарии (4)
  9. JavaScript / Говнокод #28518

    0

    1. 1
    const govnoMochi = `$mocha.govno` ?? "Ваше говно не определено";

    ISO, 20 Декабря 2022

    Комментарии (10)
  10. JavaScript / Говнокод #28517

    0

    1. 1
    const govnoMochi = `$mocha.govno` ?? "Ваше говно не определено";

    ISO, 20 Декабря 2022

    Комментарии (2)