{"id":18308870,"url":"https://github.com/nnqq/vk-nemesis-lite","last_synced_at":"2026-05-08T15:05:01.661Z","repository":{"id":44844154,"uuid":"163607971","full_name":"nnqq/vk-nemesis-lite","owner":"nnqq","description":"⚖️ Упрощенная реализация Немезиды ВКонтакте. Защищает фотографии вашей группы от копирования конкурентами, отправляет вам ссылки на плагиат","archived":false,"fork":false,"pushed_at":"2022-12-09T09:53:16.000Z","size":408,"stargazers_count":3,"open_issues_count":13,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T18:47:21.569Z","etag":null,"topics":["nodejs","vk-api","vk-script"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nnqq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-30T18:14:21.000Z","updated_at":"2024-05-30T17:29:54.000Z","dependencies_parsed_at":"2023-01-25T21:01:38.608Z","dependency_job_id":null,"html_url":"https://github.com/nnqq/vk-nemesis-lite","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/nnqq/vk-nemesis-lite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nnqq%2Fvk-nemesis-lite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nnqq%2Fvk-nemesis-lite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nnqq%2Fvk-nemesis-lite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nnqq%2Fvk-nemesis-lite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nnqq","download_url":"https://codeload.github.com/nnqq/vk-nemesis-lite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nnqq%2Fvk-nemesis-lite/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268265831,"owners_count":24222526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nodejs","vk-api","vk-script"],"created_at":"2024-11-05T16:09:29.224Z","updated_at":"2026-05-08T15:04:56.626Z","avatar_url":"https://github.com/nnqq.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Немезида Lite ВКонтакте (Node.js)\n\nУпрощенная реализация [Немезиды ВКонтакте](https://vk.com/blog/nemesis). Защищает фотографии вашей группы от копирования конкурентами, и в отличии от оригинальной Немезиды, отправляет вам ссылки на плагиат в формате оригинал-копия (для простого копипаста в тикет службы поддержки, при необходимости)\n\n## Алгоритм работы\n\n1. Скачивает все фото со стены нужной группы. Эти фото считаются «оригиналом»\n2. Ищет первые 1000 (настраивается) групп конкурентов по введенному в config поисковому запросу\n3. Поочередно скачивает и сравнивает фото со стены конкурента, загруженные не позже 24 часов назад (настраивается), с «оригиналом»\n   * Если фотографии отличаются менее чем на 97% (настраивается), сразу отправляет личное сообщение пользователю который указан в config файле (сообщение придет «себе от себя»)\n4. Когда все группы конкурентов проверены, повторяет пункты 1-2-3\n\nНа стандартных настройках (стабильных) скрипт сверяет 5-6 пар фото в секунду\n\nБез использования прокси для скачивания изображений – быстрее не получится, ВК не отвечает при более частых запросах к pp.userapi.com. Есть опция использования пула прокси, на данный момент это экспериментальная функция и стабильная работа не гарантируется. Испольуемая библиотека Resemble.js «сравнивает» пару изображений такого размера (мобильный размер ВК, ~ 75х50 px) примерно за 1-3 мс\n\n## Настройка и запуск\n\nИнструкция поможет вам настроить и запустить копию проекта на локальной машине или хостинге\n\n### Переменные окружения\n\n```\nVK_ACCESS_TOKEN\n```\n\n**Обязательно**. Ваш `access_token` **пользователя** ВКонтакте, желательно выставить все права, и используйте Standalone-приложение. [Инструкция от ВКонтакте](https://vk.com/dev/implicit_flow_user)\n\n```\nPROXY_TOKEN\n```\n\n**Не обязательно**. Токен прокси-сервиса [pubproxy.com](http://pubproxy.com/)\n\n```\nPORT\n```\n\n**Не обязательно** (3000 по умолчанию). Порт. Оставьте пустым, если планируете деплоить на Heroku\n\n### Настройка Config файла\n\n[lib/config.js](lib/config.js)\n\n```javascript\nmodule.exports = {\n  myGroupId: 22822305, // Число. ID группы с 'оригинальными' фото\n  userIdForNotifications: 1, // Число. ID пользователя кому отправляем сообщения о найденном плагиате\n  searchQuery: 'интернет магазин электроники', // Строка. Поисковый запрос для поиска групп ВК 'конкурентов' (результаты как при обычном поиске групп внутри ВК)\n  maxGroupsCount: 1000, // Число. Количество групп по поисковому запросу (максимум 1000)\n  whiteList: [2158488, 147845620], // Массив чисел. ID групп, которые не нужно проверять на плагиат\n  competitorPhotosMaxAge: 86400, // Число. Не проверять фото загруженные более Х секунд назад (в секундах, 86400 это 24 часа)\n  criticalPhotosMisMatch: 97, // Число. Минимальное 'несовпадение' фото, по достижении которого считать что фото плагиат (в процентах). Из-за низкого качества фото на проверку, 97 оптимально. Если много ложных срабатываний, можно уменьшить\n  groupsConcurrency: 1, // Число. Одновременно Х запросов к группам конкурентов для работы с фото (больше 1 не рекомендуется если вы не используете прокси)\n  photosConcurrency: 1, // Число. Одновременно Х запросов на скачивание фото (больше 1 не рекомендуется если вы не используете прокси)\n\n  useProxy: false, // Boolean. Использовать прокси для скачивания фото (экспериментальная функция, не стабильно)\n  proxiesPoolSize: 100, // Число. Начальный размер пула прокси\n  proxyReqSecLimit: 3, // Число. Лимит запросов в секунду на каждый прокси\n};\n```\n\n### Запуск\n\n```\nnpm install\n```\n\n```\nnpm start\n```\n\n## Лицензия\n\n[MIT](LICENSE)\n\n## Дополнительная информация\n\nСвязаться с автором - [Telegram](https://t.me/aveDenis)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnnqq%2Fvk-nemesis-lite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnnqq%2Fvk-nemesis-lite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnnqq%2Fvk-nemesis-lite/lists"}