Скрипт работает на десктопном устройстве (ноут, сервер) на Windows OS Скрипт написан на Python – могут быть использованы библиотеки для удобства работы Скрипт работает асинхронно, с большим количество потоков (1000 – 5000 потоков) Необходимо учитывать нагрузку на оперативку, винт, процессор что бы не перегружать систему Работа должна идти стабильно без прерывания процессов если сам пользователь не остановил его (то есть предусмотрено запуск , стоп) Скрипт работает с большим количеством проектов, они могут быть подключены в процессе работы скрипта и подхвачены логикой. Имеет примитивный интерфейс для работы с проектами, настройками, статистикой Доступы к сайтам идут в формате (URL:||sitename.com||LOGIN:||somelogin||PASS:||somepass||) Отдельная вкладка визуализации статистики работы скрипта, ошибок, по проектам и общая статистика.
Основная структура скрипта и сущностей:
Не определенно и остается на усмотрение разработчика как будут реализованы способы хранения данных (через какую базу данных или без нее) – важно что объемы этих данных могут быть большими от 1 500 000 строк для одной базы, для другой количество файлов (данных) 45 000 – 150 000 (каждый файл весом 15-25-50-80 килобайт (в разброс) для каждого проекта, количество проектов может быть сколько угодным 1000 – 10 000. Учитывать ограничения которые могут быть при работе с десктопом.
База данных доступов к сайтам:
общая с ней работают все проекты - делится на паки (packs) - каждый в себе содержит данные о доступах к сайтам указанные построчно - статистика по каждому паку выводится отдельно - так же ведется статистика по каждому доступу
База данных по проекту:
содержит в себе контент который будет добавляться на сайт по API в XML
Настройки проекта:
содержат в себе важные данные по проекту - название проекта - сколько ссылок ставить в сутки (по проекту) - лимит ссылок за все время существования доступа для одного проекта (или сколько ссылок можно поставить на один доступ, всего) - если стоит 0 – доступ гоняется по кругу пока доступен - если стоит 3 – доступ будет использован 3и раза на одном проекте, после чего исключен и не будет больше встречаться на нем (если не поправить – расширить данное поле до 4х например) - сколько ссылок ставить на морду в сутки (с одного доступа) - название группы к которой относится проект - проекты объединяются в группы образуя общую сущность в которой учитываются доступы, ссылки - % уникальности поставленных ссылок относительно группы к которой он принадлежит - 10% означает что 10% ссылок которые будут взяты из базы могут совпадать с другими проектами в группе - если стоит 100% то ссылки могут сколь угодно раз пересекаться в одной группе между проектами (с учетом лимитов на ссылки) - название категории проекта (создается на сайте в момент постинга)
Общие настройки системы:
содержит в себе общие настройки системы - сколько потоков запустить (с какой скоростью работает) - если менять потоки в процессе работы + – они будут подключаться к текущей работе или исключаться из нее по завершению - не дает запустить больше потоков чем настроенно в разделе паков проксей - сколько ссылок ставить на главные страницы одного доступа (в рамках всех проектов не должны пересекаться) - если поставленно 10 – то со всех проектов может быть поставленно только 10 ссылок – после чего домен перестает учитываться по этому правилу постинга - таймаут ожидания ответа от проксей (в млс) - таймаут ожидания ответа от доступа (в млс) - таймаут ожидания работы с базами (если есть) - таймаут после чего тушим поток (например если там какие то проблемы) (в млс) - сколько попыток редиректа по доступу делать - при переходе урл может быть не правильным и может происходить переадрессация 301, 302 редирект на правильный урл доступа (например когда настроен редирект с https на http - указываем количество цепочки редиректов (5, 10)
База проксей:
содержит в себе список проксей, их настройки и способы подключения - прокси бьются на паки (packs) - у каждого пака свои настройки - по каждому паку идет уникальная статистика по доступности (общая и по каждой проксе в отдельности - содержащие поля настроек: - адрес прокси:порт подключения – ipv4.reproxy.network:19000 - способ подключения – HTTP/SOCKS5 - логин (может быть пустым) - пароль (может быть пустым)
База паков/доступов:
содержит в себе настройки под каждый пак с доступами - прокси бьются на паки (packs) - у каждого пака свои настройки - по каждому паку идет уникальная статистика по доступности (общая и по каждой доступу в отдельности