Codestash | Vyatk1n
Мой логотип

Информация

Тут я складываю отнасительно полезный код и его части, если вам что-то приглянулось, смело берите)

Фикс узявимостей Aspro

Данный скрипт закрывает большую часть уязвимостей старого обновления Aspro в Bitrix

<?php
    /**
    * Скрипт для автоматической чистки сайта от известных вредоносных файлов
    * и исправления уязвимых участков кода.
    *
    * Рекомендуется сделать резервную копию файлов перед запуском.
    * By Vyacheslav Vyatkin 2025 https://vk.com/vyachesiav
    * and https://dd-blog.ru/bitrix-vzlom-s

Сайт для скачивания видео с YouTube

Сайт на NuxtJS, от части реализованный при помощи AI-Агента

import { createWriteStream } from 'fs'
import { mkdir, unlink } from 'fs/promises'
import { join } from 'path'
import { randomUUID } from 'crypto'
import youtubeDl from 'youtube-dl-exec'

export default defineEventHandler(async (event) => {
  try {
    const body = await readBody(event)
    const { url } = body

    if (!url) {
      return { error: 'Необходимо указать URL видео' }
    }

    try {
      const fileName = `${randomUUID()}.mp4`
      
      // Create downloads directory if it doesn't exist
      const downloadDir = join(process.cwd(), 'public', 'downloads')
      await mkdir(downloadDir, { recursive: true })
      
      const filePath = join(downloadDir, fileName)

Скрипт для поиска битых ссылок

Мой крайне старый скрипт который ищет битые ссылки на сайте (404)

///////////////////////////////////////////////////////
///
/// Change url here:
const basesiteUrl = 'https:/example.com';
/// and wait)
///
///////////////////////////////////////////////////////


import axios from 'axios';
import cheerio from 'cheerio';
import url from 'url';
import ora from 'ora';

const spinner = ora('Searching').start();

const visitedUrls = new Set();
const externalLinks = new Set();
const internalLinks = new Set();
const notFoundLinks = new Set();



const Reset = ""
const FgYellow = ""
const FgCyan = ""
const FgWhite = ""
const BgRed = ""

async function crawlPage(baseUrl,previos) {

Todoshka?

Я хз зачем это тут, но пусть лежит

{
  "name": "Todoshka",
  "version": "2.0.0",
  "description": "Simple TODO List by Vyacheslav Vyatkin",
  "license": "MIT",
  "scripts": {
    "start": "cross-env NODE_ENV=development webpack serve --config tools/webpack/webpack.config.dev.js",
    "build": "cross-env NODE_ENV=production webpack --config tools/webpack/webpack.config.prod.js",
    "serve": "cross-env NODE_ENV=production webpack --config tools/webpack/webpack.config.prod.js && cross-env serve dist/",
    "lint": "eslint --ext .js,.jsx,.ts,.tsx src/"
  },
  "devDependencies": {
    "@marshallofsound/webpack-asset-relocator-loader": "^0.5.0",
    "@pmmmwh/react-refresh-webpack-plugin": "^0.5.8",
    "@types/node": "^18.11.5",
    "@types/react": "^18.0.23",

GDonate

Старый скрипт авто-доната для серверов Garry's Mod

-- THEME
gpay.c.api_url = "https://example.net/newdonte/" -- API URL
gpay.c.maincolor = Color(170,170,170,180)
gpay.c.addcolor = Color(49,10,80,250)
gpay.c.closehover = Color(255,30,30,250)
gpay.c.buttoncolor = Color(69,50,110,250)
gpay.c.buttonhovercolor = Color(79,60,120,250)
gpay.c.events = {
  ["combines"] = true,
}

gpay.c.itembg = Color(30,30,30,200)
gpay.c.await = 5
gpay.Create("vip")
:SetName("VIP")
:SetDescription([[
В двое больше профессий

Префикс [VIP]

Voicemute | unvoicemute [TAB]
Политика конфиденциальности

Почта для связи vyacheslav@vyatk1n.ru