commit 8b0e1ffffa85ede63afaa663bca3a5ce7b11d0a2 Author: hexdev Date: Tue Jul 14 13:38:43 2026 +0700 first commit diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d723c78 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,14 @@ +.env +.env.* +!.env.example +.git +__pycache__/ +*.pyc +*.pyo +*.pyd +.pytest_cache/ +.mypy_cache/ +.ruff_cache/ +venv/ +data/ +kwork_resp.txt diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..bb3256d --- /dev/null +++ b/.env.example @@ -0,0 +1,10 @@ +TELEGRAM_BOT_TOKEN=your_bot_token +TELEGRAM_CHANNEL_ID=@your_channel_or_chat_id +TELEGRAM_PROXY_URL= +SCHEDULER_INTERVAL_MINUTES=5 +KWORK_CATEGORY_IDS=41 +KEYWORDS_INCLUDE=python,parser,api +KEYWORDS_EXCLUDE=wordpress,figma +MIN_PRICE_AMOUNT= +REQUESTS_TIMEOUT_SECONDS=20 +STATE_FILE=data/sent_offers.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6e5fac3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,179 @@ +# ---> Python +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +#uv.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +*.env +dev.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# Ruff stuff: +.ruff_cache/ + +# PyPI configuration file +.pypirc + +plans diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..dbccef4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +FROM python:3.14-slim AS builder + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 \ + VIRTUAL_ENV=/opt/venv + +WORKDIR /app + +RUN python -m venv "$VIRTUAL_ENV" +ENV PATH="$VIRTUAL_ENV/bin:$PATH" + +COPY requirements.txt . +RUN pip install --upgrade pip && pip install --no-cache-dir -r requirements.txt + + +FROM python:3.14-slim AS runtime + +ENV PYTHONDONTWRITEBYTECODE=1 \ + PYTHONUNBUFFERED=1 \ + VIRTUAL_ENV=/opt/venv \ + PATH="/opt/venv/bin:$PATH" + +WORKDIR /app + +COPY --from=builder /opt/venv /opt/venv +COPY app ./app +COPY main.py ./ +COPY requirements.txt ./ + +RUN mkdir -p /app/data + +CMD ["python", "main.py"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..c5ca736 --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# my_parser + +Парсер офферов с `kwork.ru` с отправкой в Telegram и возможностью добавлять новые источники. + +## Что умеет + +- запускается каждые `X` минут через `APScheduler` +- читает настройки из `.env` +- забирает проекты `kwork.ru` по списку категорий `fc` +- фильтрует офферы по ключевым словам +- фильтрует офферы по минимальной сумме +- не отправляет уже отправленные офферы повторно +- отправляет релевантные офферы в Telegram-канал через `aiogram` + +## Запуск + +1. Создать и заполнить `.env` по примеру `.env.example`. +2. Установить зависимости: + +```bash +pip install -r requirements.txt +``` + +3. Запустить: + +```bash +python main.py +``` + +Дополнительно можно задать `MIN_PRICE_AMOUNT`, чтобы пропускать только офферы с бюджетом не ниже указанного значения в рублях. + +Для Telegram можно указать `TELEGRAM_PROXY_URL`, например `socks5://user:pass@host:port` или `http://host:port`. + +## Docker + +Сборка образа: + +```bash +docker build -t my-parser . +``` + +Запуск контейнера: + +```bash +docker run --rm --env-file .env -v "$(pwd)/data:/app/data" my-parser +``` + +В образе используется multistage-сборка: + +- на этапе `builder` ставятся зависимости в отдельный `venv` +- на этапе `runtime` копируются только готовое окружение и исходники + +Это ускоряет пересборку, если меняется только код приложения, а `requirements.txt` остается прежним. + +## Структура + +- `app/config.py` - загрузка настроек +- `app/sources/base.py` - базовый интерфейс источника +- `app/sources/kwork.py` - реализация источника `kwork` +- `app/service.py` - получение, фильтрация и отправка офферов +- `app/telegram.py` - публикация сообщений в Telegram +- `app/state.py` - хранение уже отправленных офферов + +## Как добавить новый сайт + +1. Создать новый класс в `app/sources/`, унаследованный от `OfferSource`. +2. Реализовать в нем `fetch_offers()` с возвратом списка `Offer`. +3. Подключить источник в `main.py`. + +Для `fl.ru` можно будет добавить отдельный класс по той же схеме без изменений основного пайплайна. diff --git a/app/__init__.py b/app/__init__.py new file mode 100644 index 0000000..c622407 --- /dev/null +++ b/app/__init__.py @@ -0,0 +1 @@ +"""Parser application package.""" diff --git a/app/config.py b/app/config.py new file mode 100644 index 0000000..23d149e --- /dev/null +++ b/app/config.py @@ -0,0 +1,70 @@ +from __future__ import annotations + +import os +from dataclasses import dataclass +from pathlib import Path + +from dotenv import load_dotenv + + +@dataclass(frozen=True) +class Settings: + telegram_bot_token: str + telegram_channel_id: str + telegram_proxy_url: str | None + scheduler_interval_minutes: int + kwork_category_ids: list[int] + keywords_include: list[str] + keywords_exclude: list[str] + min_price_amount: int | None + requests_timeout_seconds: int + state_file: Path + + +def load_settings() -> Settings: + load_dotenv() + + telegram_bot_token = _require_env("TELEGRAM_BOT_TOKEN") + telegram_channel_id = _require_env("TELEGRAM_CHANNEL_ID") + + return Settings( + telegram_bot_token=telegram_bot_token, + telegram_channel_id=telegram_channel_id, + telegram_proxy_url=_parse_optional_text(os.getenv("TELEGRAM_PROXY_URL", "")), + scheduler_interval_minutes=int(os.getenv("SCHEDULER_INTERVAL_MINUTES", "5")), + kwork_category_ids=_parse_int_list(os.getenv("KWORK_CATEGORY_IDS", "41")), + keywords_include=_parse_text_list(os.getenv("KEYWORDS_INCLUDE", "")), + keywords_exclude=_parse_text_list(os.getenv("KEYWORDS_EXCLUDE", "")), + min_price_amount=_parse_optional_int(os.getenv("MIN_PRICE_AMOUNT", "")), + requests_timeout_seconds=int(os.getenv("REQUESTS_TIMEOUT_SECONDS", "20")), + state_file=Path(os.getenv("STATE_FILE", "data/sent_offers.json")), + ) + + +def _require_env(name: str) -> str: + value = os.getenv(name) + if not value: + raise ValueError(f"Environment variable {name} is required") + return value + + +def _parse_text_list(raw_value: str) -> list[str]: + return [item.strip().lower() for item in raw_value.split(",") if item.strip()] + + +def _parse_int_list(raw_value: str) -> list[int]: + return [int(item.strip()) for item in raw_value.split(",") if item.strip()] + + +def _parse_optional_int(raw_value: str) -> int | None: + value = raw_value.strip() + if not value: + return None + return int(value) + + +def _parse_optional_text(raw_value: str) -> str | None: + value = raw_value.strip() + if not value: + return None + return value diff --git a/app/filters.py b/app/filters.py new file mode 100644 index 0000000..e3a984c --- /dev/null +++ b/app/filters.py @@ -0,0 +1,32 @@ +from __future__ import annotations + +from app.models import Offer + + +def get_offer_skip_reason( + offer: Offer, + include_keywords: list[str], + exclude_keywords: list[str], + min_price_amount: int | None, +) -> str | None: + haystack = f"{offer.title}\n{offer.description}".lower() + + if exclude_keywords and any(keyword in haystack for keyword in exclude_keywords): + return "exclude_keyword" + + if min_price_amount is not None and (offer.price_amount is None or offer.price_amount < min_price_amount): + return "min_price_amount" + + if include_keywords and not any(keyword in haystack for keyword in include_keywords): + return "include_keyword" + + return None + + +def is_relevant_offer( + offer: Offer, + include_keywords: list[str], + exclude_keywords: list[str], + min_price_amount: int | None, +) -> bool: + return get_offer_skip_reason(offer, include_keywords, exclude_keywords, min_price_amount) is None diff --git a/app/models.py b/app/models.py new file mode 100644 index 0000000..ae34806 --- /dev/null +++ b/app/models.py @@ -0,0 +1,21 @@ +from __future__ import annotations + +from dataclasses import dataclass + + +@dataclass(frozen=True) +class Offer: + source: str + external_id: str + title: str + description: str + price: str + price_amount: int | None + url: str + category_id: int + published_at: str + seller_username: str | None = None + + @property + def dedup_key(self) -> str: + return f"{self.source}:{self.external_id}" diff --git a/app/service.py b/app/service.py new file mode 100644 index 0000000..7dc3df6 --- /dev/null +++ b/app/service.py @@ -0,0 +1,90 @@ +from __future__ import annotations + +import logging + +from app.filters import get_offer_skip_reason +from app.state import SentOffersStore +from app.telegram import TelegramPublisher +from app.sources.base import OfferSource + + +logger = logging.getLogger(__name__) + + +class OfferProcessingService: + def __init__( + self, + sources: list[OfferSource], + publisher: TelegramPublisher, + sent_offers_store: SentOffersStore, + include_keywords: list[str], + exclude_keywords: list[str], + min_price_amount: int | None, + ) -> None: + self._sources = sources + self._publisher = publisher + self._sent_offers_store = sent_offers_store + self._include_keywords = include_keywords + self._exclude_keywords = exclude_keywords + self._min_price_amount = min_price_amount + + async def run_once(self) -> None: + for source in self._sources: + try: + logger.info("Fetching offers from source=%s", source.source_name) + offers = source.fetch_offers() + logger.info("Fetched %s offers from source=%s", len(offers), source.source_name) + except Exception: + logger.exception("Failed to fetch offers from source %s", source.source_name) + continue + + skipped_duplicates = 0 + skipped_exclude_keyword = 0 + skipped_include_keyword = 0 + skipped_min_price_amount = 0 + published_count = 0 + + for offer in offers: + if self._sent_offers_store.has(offer.dedup_key): + skipped_duplicates += 1 + continue + + skip_reason = get_offer_skip_reason( + offer, + self._include_keywords, + self._exclude_keywords, + self._min_price_amount, + ) + if skip_reason == "exclude_keyword": + skipped_exclude_keyword += 1 + continue + if skip_reason == "include_keyword": + skipped_include_keyword += 1 + continue + if skip_reason == "min_price_amount": + skipped_min_price_amount += 1 + continue + + try: + await self._publisher.publish_offer(offer) + except Exception: + logger.exception("Failed to publish offer %s", offer.dedup_key) + continue + + self._sent_offers_store.add(offer.dedup_key) + published_count += 1 + logger.info("Published offer %s", offer.dedup_key) + + logger.info( + ( + "Source %s summary: fetched=%s published=%s skipped_duplicates=%s " + "skipped_exclude_keyword=%s skipped_include_keyword=%s skipped_min_price_amount=%s" + ), + source.source_name, + len(offers), + published_count, + skipped_duplicates, + skipped_exclude_keyword, + skipped_include_keyword, + skipped_min_price_amount, + ) diff --git a/app/sources/__init__.py b/app/sources/__init__.py new file mode 100644 index 0000000..55d9453 --- /dev/null +++ b/app/sources/__init__.py @@ -0,0 +1,4 @@ +from app.sources.base import OfferSource +from app.sources.kwork import KworkSource + +__all__ = ["OfferSource", "KworkSource"] diff --git a/app/sources/base.py b/app/sources/base.py new file mode 100644 index 0000000..a475b6f --- /dev/null +++ b/app/sources/base.py @@ -0,0 +1,13 @@ +from __future__ import annotations + +from abc import ABC, abstractmethod + +from app.models import Offer + + +class OfferSource(ABC): + source_name: str + + @abstractmethod + def fetch_offers(self) -> list[Offer]: + raise NotImplementedError diff --git a/app/sources/kwork.py b/app/sources/kwork.py new file mode 100644 index 0000000..79b661b --- /dev/null +++ b/app/sources/kwork.py @@ -0,0 +1,111 @@ +from __future__ import annotations + +import html +from typing import Any + +import requests + +from app.models import Offer +from app.sources.base import OfferSource + + +class KworkSource(OfferSource): + source_name = "kwork" + _url = "https://kwork.ru/projects" + + def __init__(self, category_ids: list[int], timeout_seconds: int) -> None: + self._category_ids = category_ids + self._timeout_seconds = timeout_seconds + self._session = requests.Session() + self._session.headers.update( + { + "User-Agent": ( + "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 " + "(KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36" + ), + "X-Requested-With": "XMLHttpRequest", + } + ) + + def fetch_offers(self) -> list[Offer]: + offers: list[Offer] = [] + + for category_id in self._category_ids: + first_page_payload = self._fetch_page_payload(category_id, page=1) + offers.extend(self._parse_payload(first_page_payload, category_id)) + + last_page = _extract_last_page(first_page_payload) + for page in range(2, last_page + 1): + payload = self._fetch_page_payload(category_id, page=page) + offers.extend(self._parse_payload(payload, category_id)) + + return offers + + def _fetch_page_payload(self, category_id: int, page: int) -> dict[str, Any]: + response = self._session.post( + self._url, + params={"fc": category_id, "page": page}, + timeout=self._timeout_seconds, + ) + response.raise_for_status() + return response.json() + + def _parse_payload(self, payload: dict[str, Any], category_id: int) -> list[Offer]: + items = payload.get("data", {}).get("pagination", {}).get("data", []) + parsed_offers: list[Offer] = [] + + for item in items: + offer_id = item.get("id") + if offer_id is None: + continue + + parsed_offers.append( + Offer( + source=self.source_name, + external_id=str(offer_id), + title=_decode_html_entities(item.get("name") or "Без названия"), + description=_decode_html_entities(item.get("description") or ""), + price=_format_price(item.get("priceLimit"), item.get("possiblePriceLimit")), + price_amount=_extract_price_amount(item.get("priceLimit"), item.get("possiblePriceLimit")), + url=f"https://kwork.ru/projects/{offer_id}/view", + category_id=category_id, + published_at=str(item.get("wantDates", {}).get("dateCreate") or ""), + seller_username=_extract_username(item.get("user") or {}), + ) + ) + + return parsed_offers + + +def _format_price(price_limit: Any, possible_price_limit: Any) -> str: + if price_limit: + return f"{price_limit} RUB" + if possible_price_limit: + return f"до {possible_price_limit} RUB" + return "Не указан" + + +def _extract_price_amount(price_limit: Any, possible_price_limit: Any) -> int | None: + if price_limit: + return int(float(price_limit)) + if possible_price_limit: + return int(float(possible_price_limit)) + return None + + +def _extract_username(user_data: dict[str, Any]) -> str | None: + username = user_data.get("username") + if not username: + return None + return str(username) + + +def _extract_last_page(payload: dict[str, Any]) -> int: + last_page = payload.get("data", {}).get("pagination", {}).get("last_page") + if last_page is None: + return 1 + return max(1, int(last_page)) + + +def _decode_html_entities(value: Any) -> str: + return html.unescape(str(value)) diff --git a/app/state.py b/app/state.py new file mode 100644 index 0000000..5578f37 --- /dev/null +++ b/app/state.py @@ -0,0 +1,31 @@ +from __future__ import annotations + +import json +from pathlib import Path + + +class SentOffersStore: + def __init__(self, file_path: Path) -> None: + self._file_path = file_path + self._file_path.parent.mkdir(parents=True, exist_ok=True) + self._sent_keys = self._load() + + def has(self, key: str) -> bool: + return key in self._sent_keys + + def add(self, key: str) -> None: + self._sent_keys.add(key) + self._persist() + + def _load(self) -> set[str]: + if not self._file_path.exists(): + return set() + + with self._file_path.open("r", encoding="utf-8") as file: + data = json.load(file) + + return set(data) + + def _persist(self) -> None: + with self._file_path.open("w", encoding="utf-8") as file: + json.dump(sorted(self._sent_keys), file, ensure_ascii=False, indent=2) diff --git a/app/telegram.py b/app/telegram.py new file mode 100644 index 0000000..020d71d --- /dev/null +++ b/app/telegram.py @@ -0,0 +1,47 @@ +from __future__ import annotations + +from aiogram import Bot +from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup + +from app.models import Offer + + +class TelegramPublisher: + def __init__(self, bot: Bot, channel_id: str) -> None: + self._bot = bot + self._channel_id = channel_id + + async def publish_offer(self, offer: Offer) -> None: + await self._bot.send_message( + chat_id=self._channel_id, + text=_format_offer_message(offer), + disable_web_page_preview=True, + reply_markup=_build_delete_markup(), + ) + + +def _format_offer_message(offer: Offer) -> str: + seller_line = f"Исполнитель: @{offer.seller_username}\n" if offer.seller_username else "" + description = offer.description.strip() + if len(description) > 1000: + description = f"{description[:997].rstrip()}..." + + return ( + f"Новый оффер: {offer.title}\n" + f"Источник: {offer.source}\n" + f"Категория: {offer.category_id}\n" + f"Бюджет: {offer.price}\n" + f"Опубликовано: {offer.published_at}\n" + f"{seller_line}" + f"\n" + f"{description}\n\n" + f"Ссылка: {offer.url}" + ) + + +def _build_delete_markup() -> InlineKeyboardMarkup: + return InlineKeyboardMarkup( + inline_keyboard=[ + [InlineKeyboardButton(text="❌", callback_data="delete_post")] + ] + ) diff --git a/data/sent_offers.json b/data/sent_offers.json new file mode 100644 index 0000000..47ddd57 --- /dev/null +++ b/data/sent_offers.json @@ -0,0 +1,11 @@ +[ + "kwork:3078848", + "kwork:3130298", + "kwork:3213727", + "kwork:3215226", + "kwork:3215329", + "kwork:3215710", + "kwork:3215942", + "kwork:3216404", + "kwork:3216553" +] \ No newline at end of file diff --git a/kwork_resp.txt b/kwork_resp.txt new file mode 100644 index 0000000..fde5c53 --- /dev/null +++ b/kwork_resp.txt @@ -0,0 +1 @@ +{"success": true, "data": {"wants_20891_data": [], "pagination": {"current_page": 1, "data": [{"userAlreadyWork": null, "dateView": null, "id": 3153751, "status": "active", "wantDates": {"dateCreate": "17 \u0430\u043f\u0440\u0435\u043b\u044f, 08:01", "dateActive": "14 \u0438\u044e\u043b\u044f, 08:05", "dateExpire": "15 \u0438\u044e\u043b\u044f, 08:05", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/bpavelv", "possiblePriceLimit": 3000, "getWantsActiveCount": "13", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u0440\u0438\u044d\u043b\u0442\u043e\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c (\u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0442\u044c) \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u043e\u0441\u043a\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \u0438 \u0422\u0413 \u0447\u0430\u0442\u044b", "files": [], "kwork_count": 2, "lang": "ru", "name": "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u0440\u0438\u044d\u043b\u0442\u043e\u0440\u043e\u0432", "max_days": "10", "priceLimit": "1000.00", "user": {"USERID": 481306, "username": "bpavelv", "profilepicture": "14/481306-2.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/14/481306-2.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/14/481306-2.jpg 2x", "badges": [{"id": 1559560, "user_id": "481306", "badge_id": "7", "date_create": "2024-02-06 16:18:47", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 777192, "user_id": "481306", "badge_id": "17", "date_create": "2022-09-27 12:58:20", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 2039295, "user_id": "481306", "badge_id": "18", "date_create": "2026-07-06 11:02:26", "badge": {"id": 18, "title": "\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": true, "sort": "1"}}, {"id": 1694434, "user_id": "481306", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "417", "wants_hired_percent": "40"}}, "date_active": "2026-07-14 08:05:08", "date_expire": "2026-07-15 08:05:08", "date_create": "2026-04-17 08:01:50", "views_dirty": "17484", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "23 \u0447. 2 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3111439, "status": "active", "wantDates": {"dateCreate": "1 \u043c\u0430\u0440\u0442\u0430, 19:27", "dateActive": "14 \u0438\u044e\u043b\u044f, 08:05", "dateExpire": "15 \u0438\u044e\u043b\u044f, 08:05", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/bpavelv", "possiblePriceLimit": 9000, "getWantsActiveCount": "13", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u043e \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u043d\u0430 \u0441\u0430\u0439\u0442 \u0414\u043e\u0441\u043a\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \r\n\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u043f\u0440\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439\r\n\u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u0430\u0439\u0442 \u0434\u0432\u0443\u044f\u0437\u044b\u0447\u043d\u044b\u0439.\r\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438.\r\n\u0421\u0430\u0439\u0442 hop. uz\r\n\u042f\u0437\u044b\u043a\u0438 \u0420\u0443\u0441\u0441\u043a\u0438\u0439 + \u0423\u0437\u0431\u0435\u043a\u0441\u043a\u0438\u0439, \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f", "files": [{"FID": 376496036, "USERID": "481306", "type_entity": 54, "entity_id": "3111439", "fname": "Screenshot_2.png", "s": "c2/5f/d6/fdac85c4eb", "size": 30222, "time": "1772382431", "lang": "ru", "status": "active", "storage": "s3", "miniature_status": "created", "miniature_creating_attempts": "1", "permanent": "0", "mime_type_id": "1", "sort_index": "0", "url": "https://kwork.ru/files/uploaded/c2/5f/d6/fdac85c4eb/Screenshot_2.png", "file_image_representation": null}], "kwork_count": 0, "lang": "ru", "name": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439", "max_days": "10", "priceLimit": "3000.00", "user": {"USERID": 481306, "username": "bpavelv", "profilepicture": "14/481306-2.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/14/481306-2.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/14/481306-2.jpg 2x", "badges": [{"id": 1559560, "user_id": "481306", "badge_id": "7", "date_create": "2024-02-06 16:18:47", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 777192, "user_id": "481306", "badge_id": "17", "date_create": "2022-09-27 12:58:20", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 2039295, "user_id": "481306", "badge_id": "18", "date_create": "2026-07-06 11:02:26", "badge": {"id": 18, "title": "\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": true, "sort": "1"}}, {"id": 1694434, "user_id": "481306", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "417", "wants_hired_percent": "40"}}, "date_active": "2026-07-14 08:05:08", "date_expire": "2026-07-15 08:05:08", "date_create": "2026-03-01 19:27:21", "views_dirty": "13032", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "23 \u0447. 2 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3078848, "status": "active", "wantDates": {"dateCreate": "23 \u044f\u043d\u0432\u0430\u0440\u044f, 17:23", "dateActive": "14 \u0438\u044e\u043b\u044f, 08:05", "dateExpire": "16 \u0438\u044e\u043b\u044f, 08:05", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/bpavelv", "possiblePriceLimit": 15000, "getWantsActiveCount": "13", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u043e \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\r\n\u0413\u0434\u0435 \u041f\u0435\u0434\u0430\u0433\u043e\u0433 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u044b \u0432 \u0431\u0438\u043b\u0435\u0442\u0430\u0445\r\n\u0423\u0447\u0435\u043d\u0438\u043a \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0442\u043e\u043c + \u044d\u043a\u0437\u0430\u043c\u0435\u043d \u043f\u043e \u044d\u0442\u0438\u043c \u0431\u0438\u043b\u0435\u0442\u0430\u043c\r\n\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0431\u0430\u043b\u043b\u044b", "files": [], "kwork_count": 4, "lang": "ru", "name": "\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f", "max_days": "10", "priceLimit": "5000.00", "user": {"USERID": 481306, "username": "bpavelv", "profilepicture": "14/481306-2.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/14/481306-2.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/14/481306-2.jpg 2x", "badges": [{"id": 1559560, "user_id": "481306", "badge_id": "7", "date_create": "2024-02-06 16:18:47", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 777192, "user_id": "481306", "badge_id": "17", "date_create": "2022-09-27 12:58:20", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 2039295, "user_id": "481306", "badge_id": "18", "date_create": "2026-07-06 11:02:26", "badge": {"id": 18, "title": "\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": true, "sort": "1"}}, {"id": 1694434, "user_id": "481306", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "417", "wants_hired_percent": "40"}}, "date_active": "2026-07-14 08:05:06", "date_expire": "2026-07-16 08:05:06", "date_create": "2026-01-23 17:23:36", "views_dirty": "19376", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "1 \u0434. 23 \u0447.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 2720947, "status": "active", "wantDates": {"dateCreate": "31 \u044f\u043d\u0432\u0430\u0440\u044f 2025", "dateActive": "14 \u0438\u044e\u043b\u044f, 08:05", "dateExpire": "16 \u0438\u044e\u043b\u044f, 08:05", "dateReject": "10 \u043d\u043e\u044f\u0431\u0440\u044f 2025"}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/bpavelv", "possiblePriceLimit": 15000, "getWantsActiveCount": "13", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043e\u0441\u043a\u0443 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c \u0442\u0438\u043f\u0430 \r\nhttps://t.me/UzVio_bot/VIO\r\n\u041d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0441\u0430\u0439\u0442\u0443\r\n\u0420\u0430\u0437\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e\r\n\u0427\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438\u0441\u044c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 .\r\n\u0422\u0430\u043a\u0436\u0435 \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0422\u0413 \u0438 \u043e\u043d\u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0414\u043e\u0441\u043a\u0435 \u043d\u0430 \u0434\u0435\u043a\u0441\u0442\u043e\u043f\u0435 \u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. ", "files": [], "kwork_count": 1, "lang": "ru", "name": "\u0421\u0435\u0440\u0432\u0438\u0441 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 Telegram Mini App| \u0414\u043e\u0441\u043a\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439", "max_days": "10", "priceLimit": "5000.00", "user": {"USERID": 481306, "username": "bpavelv", "profilepicture": "14/481306-2.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/14/481306-2.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/14/481306-2.jpg 2x", "badges": [{"id": 1559560, "user_id": "481306", "badge_id": "7", "date_create": "2024-02-06 16:18:47", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 777192, "user_id": "481306", "badge_id": "17", "date_create": "2022-09-27 12:58:20", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 2039295, "user_id": "481306", "badge_id": "18", "date_create": "2026-07-06 11:02:26", "badge": {"id": 18, "title": "\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": true, "sort": "1"}}, {"id": 1694434, "user_id": "481306", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "417", "wants_hired_percent": "40"}}, "date_active": "2026-07-14 08:05:03", "date_expire": "2026-07-16 08:05:03", "date_create": "2025-01-31 08:23:37", "views_dirty": "25408", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "1 \u0434. 23 \u0447.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3211504, "status": "active", "wantDates": {"dateCreate": "6 \u0438\u044e\u043b\u044f, 08:22", "dateActive": "14 \u0438\u044e\u043b\u044f, 08:04", "dateExpire": "15 \u0438\u044e\u043b\u044f, 08:04", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/bpavelv", "possiblePriceLimit": 3000, "getWantsActiveCount": "13", "isHigherPrice": true, "category_id": "41", "description": "Telegram CRM-\u0441\u0438\u0441\u0442\u0435\u043c\u044b\r\n— \u0443\u0447\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438 \u0437\u0430\u044f\u0432\u043e\u043a\r\n— \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c\u0438 (\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u043c\u0438 \u0434\u043b\u044f \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432)\r\n— \u041f\u043e\u0438\u0441\u043a \u043f\u043e \u0434\u0430\u0442\u0430\u043c, \u0441\u043b\u043e\u0432\u0430\u043c, \u043d\u043e\u043c\u0435\u0440\u0430\u043c \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432\r\n— \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\r\n— \u0440\u0430\u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u044f\u043c\u043e \u0432 \u0431\u043e\u0442\u0435\r\n— \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u0430\u043a \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438\r\n— \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u0438 \u0443\u0441\u043b\u0443\u0433\r\n— \u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439\r\n— \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\r\n\u0411\u043e\u0442 \u0432 Telegram — \u0432\u0441\u0451 \u0432 \u0431\u043e\u0442\u0435, \u0431\u0435\u0437 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432.\r\n\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e", "files": [], "kwork_count": 3, "lang": "ru", "name": "\u041d\u0443\u0436\u0435\u043d Telegram CRM bot", "max_days": "10", "priceLimit": "1000.00", "user": {"USERID": 481306, "username": "bpavelv", "profilepicture": "14/481306-2.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/14/481306-2.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/14/481306-2.jpg 2x", "badges": [{"id": 1559560, "user_id": "481306", "badge_id": "7", "date_create": "2024-02-06 16:18:47", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 777192, "user_id": "481306", "badge_id": "17", "date_create": "2022-09-27 12:58:20", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 2039295, "user_id": "481306", "badge_id": "18", "date_create": "2026-07-06 11:02:26", "badge": {"id": 18, "title": "\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": true, "sort": "1"}}, {"id": 1694434, "user_id": "481306", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "417", "wants_hired_percent": "40"}}, "date_active": "2026-07-14 08:04:59", "date_expire": "2026-07-15 08:04:59", "date_create": "2026-07-06 08:22:33", "views_dirty": "3665", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "23 \u0447. 2 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3216563, "status": "active", "wantDates": {"dateCreate": "14 \u0438\u044e\u043b\u044f", "dateActive": "14 \u0438\u044e\u043b\u044f", "dateExpire": "16 \u0438\u044e\u043b\u044f", "dateReject": "14 \u0438\u044e\u043b\u044f"}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/idwork", "possiblePriceLimit": 60000, "getWantsActiveCount": "1", "isHigherPrice": true, "category_id": "41", "description": "\u0418\u0418 \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433 \u0434\u043b\u044f \u043c\u0443\u0436\u0447\u0438\u043d \u0438 \u0436\u0435\u043d\u0449\u0438\u043d\r\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ChatGpt,DeepSek\r\n\u041e\u0431\u0449\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c\u043c\u0435,\u041c\u0430\u043a\u0441\u0435", "files": [], "kwork_count": 19, "lang": "ru", "name": "\u0418\u0418 \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433 \u0434\u043b\u044f \u043c\u0443\u0436\u0447\u0438\u043d \u0438 \u0436\u0435\u043d\u0449\u0438\u043d", "max_days": "10", "priceLimit": "20000.00", "user": {"USERID": 574584, "username": "IDwork", "profilepicture": "13/574584-3.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/13/574584-3.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/13/574584-3.jpg 2x", "badges": [{"id": 1582246, "user_id": "574584", "badge_id": "7", "date_create": "2024-03-26 14:47:10", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 818330, "user_id": "574584", "badge_id": "17", "date_create": "2022-10-20 11:09:16", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 1699387, "user_id": "574584", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "16", "wants_hired_percent": "38"}}, "date_active": "2026-07-14 07:28:32", "date_expire": "2026-07-16 07:28:32", "date_create": "2026-07-14 01:20:02", "views_dirty": "160", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": false, "timeLeft": "1 \u0434. 22 \u0447.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3216553, "status": "active", "wantDates": {"dateCreate": "14 \u0438\u044e\u043b\u044f", "dateActive": "14 \u0438\u044e\u043b\u044f", "dateExpire": "16 \u0438\u044e\u043b\u044f", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/lorsanovumar", "possiblePriceLimit": 15000, "getWantsActiveCount": "1", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043b\u0438\u043a\u0435\u0440 \u043f\u043e\u0434 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0438\u0433\u0440\u0435, 3-4 \u0440\u0435\u0436\u0438\u043c\u0430, \u0433\u0434\u0435 \u0442\u0440\u0435\u0445 \u0438\u0437 \u043d\u0438\u0445 \u043a\u043b\u0438\u043a\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u043a\u043b\u0438\u043a\u0430\u0442\u044c 400 \u043a\u043b\u0438\u043a\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 (\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0432 \u043b\u0441) \r\n\u041c\u0435\u043d\u044c\u0448\u0435 400 \u043c\u044b \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c - \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e 400 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435", "files": [], "kwork_count": 5, "lang": "ru", "name": "\u041a\u043b\u0438\u043a\u0435\u0440 \u0434\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u043e\u0439 \u0438\u0433\u0440\u044b", "max_days": "10", "priceLimit": "5000.00", "user": {"USERID": 24750266, "username": "Lorsanovumar", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [], "data": {"wants_count": "1", "wants_hired_percent": "0"}}, "date_active": "2026-07-14 07:20:43", "date_expire": "2026-07-16 07:20:43", "date_create": "2026-07-14 00:19:13", "views_dirty": "158", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": false, "timeLeft": "1 \u0434. 22 \u0447.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3216500, "status": "active", "wantDates": {"dateCreate": "13 \u0438\u044e\u043b\u044f", "dateActive": "14 \u0438\u044e\u043b\u044f", "dateExpire": "15 \u0438\u044e\u043b\u044f", "dateReject": "13 \u0438\u044e\u043b\u044f"}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/alex6662009", "possiblePriceLimit": 3000, "getWantsActiveCount": "1", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u0435\u043d \u043f\u0430\u0440\u0441\u0435\u0440, \u0432\u043a, \u0442\u0433, \u043c\u043e\u0436\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0451. \u0418\u0441\u043a\u0430\u0442\u044c \u043f\u043e \u0432\u0441\u0435\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0421\u041f\u0431, \u0447\u0430\u0442\u0430\u043c \u0438 \u0442.\u0434. \r\n\u0418\u0449\u0435\u043c \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043f\u0440\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0443\u0441\u043b\u0443\u0433. "\u041d\u0443\u0436\u0435\u043d \u0441\u0430\u043d\u0442\u0435\u0445\u043d\u0438\u043a" "\u041f\u043e\u0434\u0441\u043a\u0430\u0436\u0438\u0442\u0435 \u043c\u0430\u0441\u0442\u0435\u0440\u0430..."\r\n\u0422\u043e\u043a\u0435\u043d\u044b \u0435\u0441\u0442\u044c \u0432\u043a \u0438 \u0442\u0433.\r\n\u041f\u043e\u0434 \u0437\u0430\u0434\u0430\u0447\u0443 \u0435\u0441\u0442\u044c vds \u043d\u0430 ubuntu", "files": [], "kwork_count": 8, "lang": "ru", "name": "\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0430\u0440\u0441\u0435\u0440", "max_days": "10", "priceLimit": "1000.00", "user": {"USERID": 680564, "username": "alex6662009", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [{"id": 2038094, "user_id": "680564", "badge_id": "25", "date_create": "2026-06-30 10:15:19", "badge": {"id": 25, "title": "\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0448\u0430\u0433 \u0432\u043f\u0435\u0440\u0435\u0434 - 3 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u043d\u0430 Kwork!", "description": "\u041d\u0430\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b 3 \u043f\u043e\u043a\u0443\u043f\u043a\u0438", "super_title": "", "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "1"}}], "data": {"wants_count": "4", "wants_hired_percent": "100"}}, "date_active": "2026-07-14 07:13:09", "date_expire": "2026-07-15 07:13:09", "date_create": "2026-07-13 21:39:33", "views_dirty": "147", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": false, "timeLeft": "22 \u0447. 10 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3216597, "status": "active", "wantDates": {"dateCreate": "14 \u0438\u044e\u043b\u044f", "dateActive": "14 \u0438\u044e\u043b\u044f", "dateExpire": "15 \u0438\u044e\u043b\u044f", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/avbv", "possiblePriceLimit": 9000, "getWantsActiveCount": "1", "isHigherPrice": true, "category_id": "41", "description": "\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0443 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0438\u0441\u0435\u043c \u0447\u0435\u0440\u0435\u0437 bardeen \u0438\u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\r\n1. \u0431\u0435\u0440\u0435\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u0437 \u0431\u0430\u0437\u044b \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0433\u0443\u0433\u043b \u0434\u043e\u043a\u0441\r\n2. \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 \u0432 \u0431\u0438\u0442\u0440\u0438\u043a\u044124 / \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \r\n3. \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0431\u044b\u043b \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d \u0434\u043e\u0433\u043e\u0432\u043e\u0440\r\n\u0431\u0435\u0440\u0435\u043c \u0424\u0418\u041e \u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b / \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \r\n4. \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u044e\u0440.\u043b\u0438\u0446\u0430 / \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \r\n5. \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441 \u043a\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043e \u0431\u0438\u0442\u0440\u0438\u043a\u0441 / \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b\r\n6. \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u043e \u043d\u0430 \u043f\u043e\u0447\u0442\u0443 \u0438 \u0432 \u043c\u0430\u043a\u0441 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\r\n7. \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 - \u0441\u0442\u0430\u0432\u0438\u043c \u0434\u0430\u0442\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438\r\n8. \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443", "files": [], "kwork_count": 8, "lang": "ru", "name": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 AI bardeen", "max_days": "10", "priceLimit": "3000.00", "user": {"USERID": 1311077, "username": "avbv", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [{"id": 1521977, "user_id": "1311077", "badge_id": "14", "date_create": "2023-11-06 08:34:10", "badge": {"id": 14, "title": "\u041e\u0441\u0432\u043e\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 7 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0441\u0432\u043e\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 7 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 2, "is_super_payer": false, "sort": "1"}}, {"id": 1737043, "user_id": "1311077", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "47", "wants_hired_percent": "53"}}, "date_active": "2026-07-14 05:26:46", "date_expire": "2026-07-15 05:26:46", "date_create": "2026-07-14 05:26:46", "views_dirty": "193", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": false, "timeLeft": "20 \u0447. 24 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3214895, "status": "active", "wantDates": {"dateCreate": "11 \u0438\u044e\u043b\u044f, 01:12", "dateActive": "14 \u0438\u044e\u043b\u044f, 00:20", "dateExpire": "15 \u0438\u044e\u043b\u044f, 00:20", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/erorkast", "possiblePriceLimit": 1500, "getWantsActiveCount": "2", "isHigherPrice": true, "category_id": "41", "description": "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445. \u0412\u0430\u0448\u0438 \u043c\u044b\u0441\u043b\u0438 \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0435( \u0438 \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0435) \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0431\u044b\u043b\u0438 \u0431\u044b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b. \u041f\u043e\u0447\u0442\u0430-\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c....", "files": [], "kwork_count": 5, "lang": "ru", "name": "\u041d\u0443\u0436\u0435\u043d \u0441\u043e\u0444\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438", "max_days": "10", "priceLimit": "500.00", "user": {"USERID": 24675980, "username": "erorkast", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [], "data": {"wants_count": "2", "wants_hired_percent": "0"}}, "date_active": "2026-07-14 00:20:25", "date_expire": "2026-07-15 00:20:25", "date_create": "2026-07-11 01:12:01", "views_dirty": "1232", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "15 \u0447. 17 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3198895, "status": "active", "wantDates": {"dateCreate": "16 \u0438\u044e\u043d\u044f, 17:24", "dateActive": "14 \u0438\u044e\u043b\u044f, 00:19", "dateExpire": "15 \u0438\u044e\u043b\u044f, 00:19", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/oldfree", "possiblePriceLimit": 3000, "getWantsActiveCount": "2", "isHigherPrice": true, "category_id": "41", "description": "\u0421 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u043c\u043e\u043d\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0431\u0435\u0437 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0441\u0430\u043d\u043a\u0446\u0438\u0439. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u043b\u044e\u0431\u044b\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0443\u0441\u043f\u0435\u0445\u0430. ", "files": [], "kwork_count": 1, "lang": "ru", "name": "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430/\u0434\u043e\u0447\u0438\u0442. \u0434\u0437\u0435\u043d/\u044e\u0442\u0443\u0431/\u0440\u0443\u0442\u0443\u0431", "max_days": "10", "priceLimit": "1000.00", "user": {"USERID": 5971687, "username": "oldfree", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [{"id": 1980635, "user_id": "5971687", "badge_id": "42", "date_create": "2025-11-27 14:04:10", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "5", "wants_hired_percent": "0"}}, "date_active": "2026-07-14 00:19:20", "date_expire": "2026-07-15 00:19:20", "date_create": "2026-06-16 17:24:53", "views_dirty": "10354", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "15 \u0447. 16 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3189570, "status": "active", "wantDates": {"dateCreate": "3 \u0438\u044e\u043d\u044f, 10:33", "dateActive": "14 \u0438\u044e\u043b\u044f, 00:17", "dateExpire": "15 \u0438\u044e\u043b\u044f, 00:17", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/m0471", "possiblePriceLimit": 1500, "getWantsActiveCount": "2", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u0432\u0438\u0434\u0435\u043e \u0432 \u0414\u0437\u0435\u043d \u0441 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432 \u0434\u0437\u0435\u043d-\u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u043e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438, \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 \u0438\u043b\u0438 \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e\u0431 \u0414\u0437\u0435\u043d "\u0437\u0430\u0449\u0438\u0442\u044b\u0432\u0430\u043b". \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0431\u0435\u0440\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u0438\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435, \u0441\u043c\u043e\u0442\u0440\u0438\u0442/\u0447\u0438\u0442\u0430\u0435\u0442, \u043e\u0442 1 \u0434\u043e 5 \u043c\u0438\u043d\u0443\u0442( \u043e\u0442 1 \u0448\u0442 \u0432 \u0447\u0430\u0441 \u0434\u043e 10 \u0432 \u0447\u0430\u0441). "\u0412\u043d\u0443\u0442\u0440\u0438\u043d\u043e\u0441\u0442\u0438" \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043c\u043d\u0435 \u043d\u0435 \u0432\u0430\u0436\u043d\u044b. \u0414\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043b\u0438... 2-3-4 \u043a\u043d\u043e\u043f\u043a\u0438 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0447\u0442\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u0432\u0441\u0435. \u0411\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u0441\u044f\u043a\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u0447\u0442\u043e\u0431 \u0441 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u0430 \u0441 \u0432\u0438\u043d\u0434\u043e\u0432\u0441. \u0412\u0430\u0448\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e \u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e. ", "files": [], "kwork_count": 1, "lang": "ru", "name": "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0432 \u0414\u0437\u0435\u043d", "max_days": "10", "priceLimit": "500.00", "user": {"USERID": 19273935, "username": "m0471", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [], "data": {"wants_count": "4", "wants_hired_percent": "67"}}, "date_active": "2026-07-14 00:17:37", "date_expire": "2026-07-15 00:17:37", "date_create": "2026-06-03 10:33:16", "views_dirty": "9896", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "15 \u0447. 15 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}], "first_page_url": "http://kwork.ru/projects?page=1", "from": 1, "last_page": 4, "last_page_url": "http://kwork.ru/projects?page=4", "links": [{"url": null, "label": "Previous", "active": false}, {"url": "http://kwork.ru/projects?page=1", "label": "1", "active": true}, {"url": "http://kwork.ru/projects?page=2", "label": "2", "active": false}, {"url": "http://kwork.ru/projects?page=3", "label": "3", "active": false}, {"url": "http://kwork.ru/projects?page=4", "label": "4", "active": false}, {"url": "http://kwork.ru/projects?page=2", "label": "Next", "active": false}], "next_page_url": "http://kwork.ru/projects?page=2", "path": "http://kwork.ru/projects", "per_page": 12, "prev_page_url": null, "to": 12, "total": 38}, "wants": [{"userAlreadyWork": null, "dateView": null, "id": 3153751, "status": "active", "wantDates": {"dateCreate": "17 \u0430\u043f\u0440\u0435\u043b\u044f, 08:01", "dateActive": "14 \u0438\u044e\u043b\u044f, 08:05", "dateExpire": "15 \u0438\u044e\u043b\u044f, 08:05", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/bpavelv", "possiblePriceLimit": 3000, "getWantsActiveCount": "13", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u0440\u0438\u044d\u043b\u0442\u043e\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c (\u0440\u0430\u0441\u0441\u044b\u043b\u0430\u0442\u044c) \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u043e\u0441\u043a\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \u0438 \u0422\u0413 \u0447\u0430\u0442\u044b", "files": [], "kwork_count": 2, "lang": "ru", "name": "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u0440\u0438\u044d\u043b\u0442\u043e\u0440\u043e\u0432", "max_days": "10", "priceLimit": "1000.00", "user": {"USERID": 481306, "username": "bpavelv", "profilepicture": "14/481306-2.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/14/481306-2.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/14/481306-2.jpg 2x", "badges": [{"id": 1559560, "user_id": "481306", "badge_id": "7", "date_create": "2024-02-06 16:18:47", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 777192, "user_id": "481306", "badge_id": "17", "date_create": "2022-09-27 12:58:20", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 2039295, "user_id": "481306", "badge_id": "18", "date_create": "2026-07-06 11:02:26", "badge": {"id": 18, "title": "\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": true, "sort": "1"}}, {"id": 1694434, "user_id": "481306", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "417", "wants_hired_percent": "40"}}, "date_active": "2026-07-14 08:05:08", "date_expire": "2026-07-15 08:05:08", "date_create": "2026-04-17 08:01:50", "views_dirty": "17484", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "23 \u0447. 2 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3111439, "status": "active", "wantDates": {"dateCreate": "1 \u043c\u0430\u0440\u0442\u0430, 19:27", "dateActive": "14 \u0438\u044e\u043b\u044f, 08:05", "dateExpire": "15 \u0438\u044e\u043b\u044f, 08:05", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/bpavelv", "possiblePriceLimit": 9000, "getWantsActiveCount": "13", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u043e \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u043d\u0430 \u0441\u0430\u0439\u0442 \u0414\u043e\u0441\u043a\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \r\n\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439 \u043f\u0440\u0438 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0438 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439\r\n\u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u0430\u0439\u0442 \u0434\u0432\u0443\u044f\u0437\u044b\u0447\u043d\u044b\u0439.\r\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438.\r\n\u0421\u0430\u0439\u0442 hop. uz\r\n\u042f\u0437\u044b\u043a\u0438 \u0420\u0443\u0441\u0441\u043a\u0438\u0439 + \u0423\u0437\u0431\u0435\u043a\u0441\u043a\u0438\u0439, \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f", "files": [{"FID": 376496036, "USERID": "481306", "type_entity": 54, "entity_id": "3111439", "fname": "Screenshot_2.png", "s": "c2/5f/d6/fdac85c4eb", "size": 30222, "time": "1772382431", "lang": "ru", "status": "active", "storage": "s3", "miniature_status": "created", "miniature_creating_attempts": "1", "permanent": "0", "mime_type_id": "1", "sort_index": "0", "url": "https://kwork.ru/files/uploaded/c2/5f/d6/fdac85c4eb/Screenshot_2.png", "file_image_representation": null}], "kwork_count": 0, "lang": "ru", "name": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0439", "max_days": "10", "priceLimit": "3000.00", "user": {"USERID": 481306, "username": "bpavelv", "profilepicture": "14/481306-2.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/14/481306-2.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/14/481306-2.jpg 2x", "badges": [{"id": 1559560, "user_id": "481306", "badge_id": "7", "date_create": "2024-02-06 16:18:47", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 777192, "user_id": "481306", "badge_id": "17", "date_create": "2022-09-27 12:58:20", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 2039295, "user_id": "481306", "badge_id": "18", "date_create": "2026-07-06 11:02:26", "badge": {"id": 18, "title": "\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": true, "sort": "1"}}, {"id": 1694434, "user_id": "481306", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "417", "wants_hired_percent": "40"}}, "date_active": "2026-07-14 08:05:08", "date_expire": "2026-07-15 08:05:08", "date_create": "2026-03-01 19:27:21", "views_dirty": "13032", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "23 \u0447. 2 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3078848, "status": "active", "wantDates": {"dateCreate": "23 \u044f\u043d\u0432\u0430\u0440\u044f, 17:23", "dateActive": "14 \u0438\u044e\u043b\u044f, 08:05", "dateExpire": "16 \u0438\u044e\u043b\u044f, 08:05", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/bpavelv", "possiblePriceLimit": 15000, "getWantsActiveCount": "13", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u043e \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\r\n\u0413\u0434\u0435 \u041f\u0435\u0434\u0430\u0433\u043e\u0433 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043e\u0442\u0432\u0435\u0442\u044b \u0432 \u0431\u0438\u043b\u0435\u0442\u0430\u0445\r\n\u0423\u0447\u0435\u043d\u0438\u043a \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0442\u043e\u043c + \u044d\u043a\u0437\u0430\u043c\u0435\u043d \u043f\u043e \u044d\u0442\u0438\u043c \u0431\u0438\u043b\u0435\u0442\u0430\u043c\r\n\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0431\u0430\u043b\u043b\u044b", "files": [], "kwork_count": 4, "lang": "ru", "name": "\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043e\u043d\u043b\u0430\u0439\u043d \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f", "max_days": "10", "priceLimit": "5000.00", "user": {"USERID": 481306, "username": "bpavelv", "profilepicture": "14/481306-2.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/14/481306-2.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/14/481306-2.jpg 2x", "badges": [{"id": 1559560, "user_id": "481306", "badge_id": "7", "date_create": "2024-02-06 16:18:47", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 777192, "user_id": "481306", "badge_id": "17", "date_create": "2022-09-27 12:58:20", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 2039295, "user_id": "481306", "badge_id": "18", "date_create": "2026-07-06 11:02:26", "badge": {"id": 18, "title": "\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": true, "sort": "1"}}, {"id": 1694434, "user_id": "481306", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "417", "wants_hired_percent": "40"}}, "date_active": "2026-07-14 08:05:06", "date_expire": "2026-07-16 08:05:06", "date_create": "2026-01-23 17:23:36", "views_dirty": "19376", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "1 \u0434. 23 \u0447.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 2720947, "status": "active", "wantDates": {"dateCreate": "31 \u044f\u043d\u0432\u0430\u0440\u044f 2025", "dateActive": "14 \u0438\u044e\u043b\u044f, 08:05", "dateExpire": "16 \u0438\u044e\u043b\u044f, 08:05", "dateReject": "10 \u043d\u043e\u044f\u0431\u0440\u044f 2025"}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/bpavelv", "possiblePriceLimit": 15000, "getWantsActiveCount": "13", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u043e\u0441\u043a\u0443 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c \u0442\u0438\u043f\u0430 \r\nhttps://t.me/UzVio_bot/VIO\r\n\u041d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 \u0441\u0430\u0439\u0442\u0443\r\n\u0420\u0430\u0437\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e\r\n\u0427\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438\u0441\u044c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 .\r\n\u0422\u0430\u043a\u0436\u0435 \u0447\u0442\u043e\u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0422\u0413 \u0438 \u043e\u043d\u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0414\u043e\u0441\u043a\u0435 \u043d\u0430 \u0434\u0435\u043a\u0441\u0442\u043e\u043f\u0435 \u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438. ", "files": [], "kwork_count": 1, "lang": "ru", "name": "\u0421\u0435\u0440\u0432\u0438\u0441 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439 Telegram Mini App| \u0414\u043e\u0441\u043a\u0430 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u0439", "max_days": "10", "priceLimit": "5000.00", "user": {"USERID": 481306, "username": "bpavelv", "profilepicture": "14/481306-2.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/14/481306-2.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/14/481306-2.jpg 2x", "badges": [{"id": 1559560, "user_id": "481306", "badge_id": "7", "date_create": "2024-02-06 16:18:47", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 777192, "user_id": "481306", "badge_id": "17", "date_create": "2022-09-27 12:58:20", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 2039295, "user_id": "481306", "badge_id": "18", "date_create": "2026-07-06 11:02:26", "badge": {"id": 18, "title": "\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": true, "sort": "1"}}, {"id": 1694434, "user_id": "481306", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "417", "wants_hired_percent": "40"}}, "date_active": "2026-07-14 08:05:03", "date_expire": "2026-07-16 08:05:03", "date_create": "2025-01-31 08:23:37", "views_dirty": "25408", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "1 \u0434. 23 \u0447.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3211504, "status": "active", "wantDates": {"dateCreate": "6 \u0438\u044e\u043b\u044f, 08:22", "dateActive": "14 \u0438\u044e\u043b\u044f, 08:04", "dateExpire": "15 \u0438\u044e\u043b\u044f, 08:04", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/bpavelv", "possiblePriceLimit": 3000, "getWantsActiveCount": "13", "isHigherPrice": true, "category_id": "41", "description": "Telegram CRM-\u0441\u0438\u0441\u0442\u0435\u043c\u044b\r\n— \u0443\u0447\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438 \u0437\u0430\u044f\u0432\u043e\u043a\r\n— \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c\u0438 (\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u043c\u0438 \u0434\u043b\u044f \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432)\r\n— \u041f\u043e\u0438\u0441\u043a \u043f\u043e \u0434\u0430\u0442\u0430\u043c, \u0441\u043b\u043e\u0432\u0430\u043c, \u043d\u043e\u043c\u0435\u0440\u0430\u043c \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043e\u0432\r\n— \u043d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\r\n— \u0440\u0430\u0431\u043e\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043f\u0440\u044f\u043c\u043e \u0432 \u0431\u043e\u0442\u0435\r\n— \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u0430\u043a \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438\r\n— \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u0430\u0437\u043e\u0432 \u0438 \u0443\u0441\u043b\u0443\u0433\r\n— \u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439\r\n— \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\r\n\u0411\u043e\u0442 \u0432 Telegram — \u0432\u0441\u0451 \u0432 \u0431\u043e\u0442\u0435, \u0431\u0435\u0437 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432.\r\n\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e", "files": [], "kwork_count": 3, "lang": "ru", "name": "\u041d\u0443\u0436\u0435\u043d Telegram CRM bot", "max_days": "10", "priceLimit": "1000.00", "user": {"USERID": 481306, "username": "bpavelv", "profilepicture": "14/481306-2.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/14/481306-2.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/14/481306-2.jpg 2x", "badges": [{"id": 1559560, "user_id": "481306", "badge_id": "7", "date_create": "2024-02-06 16:18:47", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 777192, "user_id": "481306", "badge_id": "17", "date_create": "2022-09-27 12:58:20", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 2039295, "user_id": "481306", "badge_id": "18", "date_create": "2026-07-06 11:02:26", "badge": {"id": 18, "title": "\u0421\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043b \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": true, "sort": "1"}}, {"id": 1694434, "user_id": "481306", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "417", "wants_hired_percent": "40"}}, "date_active": "2026-07-14 08:04:59", "date_expire": "2026-07-15 08:04:59", "date_create": "2026-07-06 08:22:33", "views_dirty": "3665", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "23 \u0447. 2 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3216563, "status": "active", "wantDates": {"dateCreate": "14 \u0438\u044e\u043b\u044f", "dateActive": "14 \u0438\u044e\u043b\u044f", "dateExpire": "16 \u0438\u044e\u043b\u044f", "dateReject": "14 \u0438\u044e\u043b\u044f"}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/idwork", "possiblePriceLimit": 60000, "getWantsActiveCount": "1", "isHigherPrice": true, "category_id": "41", "description": "\u0418\u0418 \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433 \u0434\u043b\u044f \u043c\u0443\u0436\u0447\u0438\u043d \u0438 \u0436\u0435\u043d\u0449\u0438\u043d\r\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ChatGpt,DeepSek\r\n\u041e\u0431\u0449\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u0422\u0435\u043b\u0435\u0433\u0440\u0430\u043c\u043c\u0435,\u041c\u0430\u043a\u0441\u0435", "files": [], "kwork_count": 19, "lang": "ru", "name": "\u0418\u0418 \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433 \u0434\u043b\u044f \u043c\u0443\u0436\u0447\u0438\u043d \u0438 \u0436\u0435\u043d\u0449\u0438\u043d", "max_days": "10", "priceLimit": "20000.00", "user": {"USERID": 574584, "username": "IDwork", "profilepicture": "13/574584-3.jpg", "profilePictureSrcSet": "https://cdn-edge.kwork.ru/files/avatar/big/13/574584-3.jpg 1x, https://cdn-edge.kwork.ru/files/avatar/big_r/13/574584-3.jpg 2x", "badges": [{"id": 1582246, "user_id": "574584", "badge_id": "7", "date_create": "2024-03-26 14:47:10", "badge": {"id": 7, "title": "\u041c\u0435\u0433\u0430 \u041f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "", "super_title": "", "super_description": "", "payer_level": null, "is_super_payer": false, "sort": "1"}}, {"id": 818330, "user_id": "574584", "badge_id": "17", "date_create": "2022-10-20 11:09:16", "badge": {"id": 17, "title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 100 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 5, "is_super_payer": false, "sort": "1"}}, {"id": 1699387, "user_id": "574584", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "16", "wants_hired_percent": "38"}}, "date_active": "2026-07-14 07:28:32", "date_expire": "2026-07-16 07:28:32", "date_create": "2026-07-14 01:20:02", "views_dirty": "160", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": false, "timeLeft": "1 \u0434. 22 \u0447.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3216553, "status": "active", "wantDates": {"dateCreate": "14 \u0438\u044e\u043b\u044f", "dateActive": "14 \u0438\u044e\u043b\u044f", "dateExpire": "16 \u0438\u044e\u043b\u044f", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/lorsanovumar", "possiblePriceLimit": 15000, "getWantsActiveCount": "1", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043b\u0438\u043a\u0435\u0440 \u043f\u043e\u0434 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u0438\u0433\u0440\u0435, 3-4 \u0440\u0435\u0436\u0438\u043c\u0430, \u0433\u0434\u0435 \u0442\u0440\u0435\u0445 \u0438\u0437 \u043d\u0438\u0445 \u043a\u043b\u0438\u043a\u0435\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u043a\u043b\u0438\u043a\u0430\u0442\u044c 400 \u043a\u043b\u0438\u043a\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 (\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0435\u0442\u0430\u043b\u0438 \u0432 \u043b\u0441) \r\n\u041c\u0435\u043d\u044c\u0448\u0435 400 \u043c\u044b \u043d\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c - \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e 400 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435", "files": [], "kwork_count": 5, "lang": "ru", "name": "\u041a\u043b\u0438\u043a\u0435\u0440 \u0434\u043b\u044f \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u043e\u0439 \u0438\u0433\u0440\u044b", "max_days": "10", "priceLimit": "5000.00", "user": {"USERID": 24750266, "username": "Lorsanovumar", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [], "data": {"wants_count": "1", "wants_hired_percent": "0"}}, "date_active": "2026-07-14 07:20:43", "date_expire": "2026-07-16 07:20:43", "date_create": "2026-07-14 00:19:13", "views_dirty": "158", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": false, "timeLeft": "1 \u0434. 22 \u0447.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3216500, "status": "active", "wantDates": {"dateCreate": "13 \u0438\u044e\u043b\u044f", "dateActive": "14 \u0438\u044e\u043b\u044f", "dateExpire": "15 \u0438\u044e\u043b\u044f", "dateReject": "13 \u0438\u044e\u043b\u044f"}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/alex6662009", "possiblePriceLimit": 3000, "getWantsActiveCount": "1", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u0435\u043d \u043f\u0430\u0440\u0441\u0435\u0440, \u0432\u043a, \u0442\u0433, \u043c\u043e\u0436\u0435\u0442 \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0451. \u0418\u0441\u043a\u0430\u0442\u044c \u043f\u043e \u0432\u0441\u0435\u043c \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0421\u041f\u0431, \u0447\u0430\u0442\u0430\u043c \u0438 \u0442.\u0434. \r\n\u0418\u0449\u0435\u043c \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043f\u0440\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0443\u0441\u043b\u0443\u0433. "\u041d\u0443\u0436\u0435\u043d \u0441\u0430\u043d\u0442\u0435\u0445\u043d\u0438\u043a" "\u041f\u043e\u0434\u0441\u043a\u0430\u0436\u0438\u0442\u0435 \u043c\u0430\u0441\u0442\u0435\u0440\u0430..."\r\n\u0422\u043e\u043a\u0435\u043d\u044b \u0435\u0441\u0442\u044c \u0432\u043a \u0438 \u0442\u0433.\r\n\u041f\u043e\u0434 \u0437\u0430\u0434\u0430\u0447\u0443 \u0435\u0441\u0442\u044c vds \u043d\u0430 ubuntu", "files": [], "kwork_count": 8, "lang": "ru", "name": "\u041d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0430\u0440\u0441\u0435\u0440", "max_days": "10", "priceLimit": "1000.00", "user": {"USERID": 680564, "username": "alex6662009", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [{"id": 2038094, "user_id": "680564", "badge_id": "25", "date_create": "2026-06-30 10:15:19", "badge": {"id": 25, "title": "\u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u0448\u0430\u0433 \u0432\u043f\u0435\u0440\u0435\u0434 - 3 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u043d\u0430 Kwork!", "description": "\u041d\u0430\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b 3 \u043f\u043e\u043a\u0443\u043f\u043a\u0438", "super_title": "", "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "1"}}], "data": {"wants_count": "4", "wants_hired_percent": "100"}}, "date_active": "2026-07-14 07:13:09", "date_expire": "2026-07-15 07:13:09", "date_create": "2026-07-13 21:39:33", "views_dirty": "147", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": false, "timeLeft": "22 \u0447. 10 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3216597, "status": "active", "wantDates": {"dateCreate": "14 \u0438\u044e\u043b\u044f", "dateActive": "14 \u0438\u044e\u043b\u044f", "dateExpire": "15 \u0438\u044e\u043b\u044f", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/avbv", "possiblePriceLimit": 9000, "getWantsActiveCount": "1", "isHigherPrice": true, "category_id": "41", "description": "\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0443 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0438\u0441\u0435\u043c \u0447\u0435\u0440\u0435\u0437 bardeen \u0438\u043b\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441\r\n1. \u0431\u0435\u0440\u0435\u043c \u043a\u043e\u043d\u0442\u0430\u043a\u0442 \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u0437 \u0431\u0430\u0437\u044b \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0433\u0443\u0433\u043b \u0434\u043e\u043a\u0441\r\n2. \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0443 \u0432 \u0431\u0438\u0442\u0440\u0438\u043a\u044124 / \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \r\n3. \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0431\u044b\u043b \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d \u0434\u043e\u0433\u043e\u0432\u043e\u0440\r\n\u0431\u0435\u0440\u0435\u043c \u0424\u0418\u041e \u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b / \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \r\n4. \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u044e\u0440.\u043b\u0438\u0446\u0430 / \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \r\n5. \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441 \u043a\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c \u043f\u043e \u0431\u0438\u0442\u0440\u0438\u043a\u0441 / \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u044b\r\n6. \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0438\u0441\u044c\u043c\u043e \u043d\u0430 \u043f\u043e\u0447\u0442\u0443 \u0438 \u0432 \u043c\u0430\u043a\u0441 \u0438\u0437 \u044d\u0442\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\r\n7. \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 - \u0441\u0442\u0430\u0432\u0438\u043c \u0434\u0430\u0442\u0443 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438\r\n8. \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443", "files": [], "kwork_count": 8, "lang": "ru", "name": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 AI bardeen", "max_days": "10", "priceLimit": "3000.00", "user": {"USERID": 1311077, "username": "avbv", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [{"id": 1521977, "user_id": "1311077", "badge_id": "14", "date_create": "2023-11-06 08:34:10", "badge": {"id": 14, "title": "\u041e\u0441\u0432\u043e\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 7 \u043f\u043e\u043a\u0443\u043f\u043e\u043a", "super_title": "\u041e\u0441\u0432\u043e\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u043a\u0443\u043f\u0430\u0442\u0435\u043b\u044c", "super_description": "\u0421\u0434\u0435\u043b\u0430\u043d\u043e \u0431\u043e\u043b\u0435\u0435 7 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0438 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 12 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 3 \u043c\u0435\u0441\u044f\u0446\u0430.", "payer_level": 2, "is_super_payer": false, "sort": "1"}}, {"id": 1737043, "user_id": "1311077", "badge_id": "42", "date_create": "2024-10-08 10:34:17", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "47", "wants_hired_percent": "53"}}, "date_active": "2026-07-14 05:26:46", "date_expire": "2026-07-15 05:26:46", "date_create": "2026-07-14 05:26:46", "views_dirty": "193", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": false, "timeLeft": "20 \u0447. 24 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3214895, "status": "active", "wantDates": {"dateCreate": "11 \u0438\u044e\u043b\u044f, 01:12", "dateActive": "14 \u0438\u044e\u043b\u044f, 00:20", "dateExpire": "15 \u0438\u044e\u043b\u044f, 00:20", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/erorkast", "possiblePriceLimit": 1500, "getWantsActiveCount": "2", "isHigherPrice": true, "category_id": "41", "description": "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u0432 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445. \u0412\u0430\u0448\u0438 \u043c\u044b\u0441\u043b\u0438 \u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0435( \u0438 \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0435) \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0431\u044b\u043b\u0438 \u0431\u044b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b. \u041f\u043e\u0447\u0442\u0430-\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c....", "files": [], "kwork_count": 5, "lang": "ru", "name": "\u041d\u0443\u0436\u0435\u043d \u0441\u043e\u0444\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u043e\u0447\u0442\u043e\u0432\u044b\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438", "max_days": "10", "priceLimit": "500.00", "user": {"USERID": 24675980, "username": "erorkast", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [], "data": {"wants_count": "2", "wants_hired_percent": "0"}}, "date_active": "2026-07-14 00:20:25", "date_expire": "2026-07-15 00:20:25", "date_create": "2026-07-11 01:12:01", "views_dirty": "1232", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "15 \u0447. 17 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3198895, "status": "active", "wantDates": {"dateCreate": "16 \u0438\u044e\u043d\u044f, 17:24", "dateActive": "14 \u0438\u044e\u043b\u044f, 00:19", "dateExpire": "15 \u0438\u044e\u043b\u044f, 00:19", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/oldfree", "possiblePriceLimit": 3000, "getWantsActiveCount": "2", "isHigherPrice": true, "category_id": "41", "description": "\u0421 \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u043c\u043e\u043d\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0431\u0435\u0437 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u0438 \u043f\u0440\u043e\u0447\u0438\u0445 \u0441\u0430\u043d\u043a\u0446\u0438\u0439. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u043b\u044e\u0431\u044b\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u0435\u043c \u0443\u0441\u043f\u0435\u0445\u0430. ", "files": [], "kwork_count": 1, "lang": "ru", "name": "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430/\u0434\u043e\u0447\u0438\u0442. \u0434\u0437\u0435\u043d/\u044e\u0442\u0443\u0431/\u0440\u0443\u0442\u0443\u0431", "max_days": "10", "priceLimit": "1000.00", "user": {"USERID": 5971687, "username": "oldfree", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [{"id": 1980635, "user_id": "5971687", "badge_id": "42", "date_create": "2025-11-27 14:04:10", "badge": {"id": 42, "title": "\u0411\u043e\u043b\u0435\u0435 5 \u043b\u0435\u0442 \u0441 Kwork", "description": "", "super_title": null, "super_description": null, "payer_level": null, "is_super_payer": false, "sort": "0"}}], "data": {"wants_count": "5", "wants_hired_percent": "0"}}, "date_active": "2026-07-14 00:19:20", "date_expire": "2026-07-15 00:19:20", "date_create": "2026-06-16 17:24:53", "views_dirty": "10354", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "15 \u0447. 16 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}, {"userAlreadyWork": null, "dateView": null, "id": 3189570, "status": "active", "wantDates": {"dateCreate": "3 \u0438\u044e\u043d\u044f, 10:33", "dateActive": "14 \u0438\u044e\u043b\u044f, 00:17", "dateExpire": "15 \u0438\u044e\u043b\u044f, 00:17", "dateReject": ""}, "isWantActive": true, "isWantArchive": false, "altStatusHint": {"color": "blue", "title": "\u0421\u0431\u043e\u0440 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439"}, "getReviewCanChange": false, "wantGetSumOrderCount": 0, "projectReviewType": null, "wantUserGetProfileUrl": "https://kwork.ru/user/m0471", "possiblePriceLimit": 1500, "getWantsActiveCount": "2", "isHigherPrice": true, "category_id": "41", "description": "\u041d\u0443\u0436\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 \u0438 \u0432\u0438\u0434\u0435\u043e \u0432 \u0414\u0437\u0435\u043d \u0441 \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u043e\u0432 \u0434\u0437\u0435\u043d-\u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u043e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438, \u0432 \u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 \u0438\u043b\u0438 \u043f\u043e \u0434\u0440\u0443\u0433\u043e\u043c\u0443. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u0447\u0442\u043e\u0431 \u0414\u0437\u0435\u043d "\u0437\u0430\u0449\u0438\u0442\u044b\u0432\u0430\u043b". \u041f\u0440\u0438\u043d\u0446\u0438\u043f \u0440\u0430\u0431\u043e\u0442\u044b: \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0431\u0435\u0440\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u044b \u0438\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0435, \u0441\u043c\u043e\u0442\u0440\u0438\u0442/\u0447\u0438\u0442\u0430\u0435\u0442, \u043e\u0442 1 \u0434\u043e 5 \u043c\u0438\u043d\u0443\u0442( \u043e\u0442 1 \u0448\u0442 \u0432 \u0447\u0430\u0441 \u0434\u043e 10 \u0432 \u0447\u0430\u0441). "\u0412\u043d\u0443\u0442\u0440\u0438\u043d\u043e\u0441\u0442\u0438" \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043c\u043d\u0435 \u043d\u0435 \u0432\u0430\u0436\u043d\u044b. \u0414\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043b\u0438... 2-3-4 \u043a\u043d\u043e\u043f\u043a\u0438 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0447\u0442\u043e \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u0432\u0441\u0435. \u0411\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u0441\u044f\u043a\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u0447\u0442\u043e\u0431 \u0441 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u0430 \u0441 \u0432\u0438\u043d\u0434\u043e\u0432\u0441. \u0412\u0430\u0448\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0442\u043e \u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e. ", "files": [], "kwork_count": 1, "lang": "ru", "name": "\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439 \u0432 \u0414\u0437\u0435\u043d", "max_days": "10", "priceLimit": "500.00", "user": {"USERID": 19273935, "username": "m0471", "profilepicture": "noprofilepicture.gif", "profilePictureSrcSet": "", "badges": [], "data": {"wants_count": "4", "wants_hired_percent": "67"}}, "date_active": "2026-07-14 00:17:37", "date_expire": "2026-07-15 00:17:37", "date_create": "2026-06-03 10:33:16", "views_dirty": "9896", "isUserWant": false, "alreadyWork": null, "isOtherActiveWantsExceptByWantId": true, "timeLeft": "15 \u0447. 15 \u043c\u0438\u043d.", "currentUserReviewType": null, "hasPortfolioAvailable": false, "isNeural": false, "orderManagerStatusDone": 5, "availableDurations": [1, 2, 3, 4, 5, 6, 7, 10, 14, 21, 30, 45, 60, 75, 90], "categoryLinksIdRu": 59, "getPriceThreshold": 4000}], "wantsFromAllRubrics": [], "attributesCount": [], "counts": {"kworks_filter_id_0": "10", "kworks_filter_id_1": "7", "kworks_filter_id_2": "3", "kworks_filter_id_3": "4", "kworks_filter_id_4": "18", "attrs": [], "prices_filter_id_0": "0", "prices_filter_id_1": "11", "prices_filter_id_2": "10", "prices_filter_id_3": "13", "prices_filter_id_4": "13", "category_id_41": "38", "category_id_37": "21", "category_id_38": "22", "category_id_39": "5", "category_id_40": "3", "category_id_79": "4", "category_id_80": "4", "category_id_81": "9", "category_id_255": "2", "category_id_11": 108}, "favouriteCategories": [], "favouriteCategoriesCount": [], "filter": {"price_from": null, "price_to": null, "hiring_from": null, "kworks_filters": null, "prices_filters": null, "keyword": null}, "filters": {"by_kworks": [{"id": 0, "name": "\u0414\u043e 5", "boundaries": {"from": null, "to": 5}}, {"id": 1, "name": "\u041e\u0442 5 \u0434\u043e 10", "boundaries": {"from": 5, "to": 10}}, {"id": 2, "name": "\u041e\u0442 10 \u0434\u043e 15", "boundaries": {"from": 10, "to": 15}}, {"id": 3, "name": "\u041e\u0442 15 \u0434\u043e 20", "boundaries": {"from": 15, "to": 20}}, {"id": 4, "name": "\u041e\u0442 20", "boundaries": {"from": 20, "to": null}}], "by_budget": [{"id": 0, "name": "\u0414\u043e 1 000 \u20bd", "boundaries": {"from": null, "to": 1000}}, {"id": 1, "name": "\u041e\u0442 1 000 \u20bd \u0434\u043e 3 000 \u20bd", "boundaries": {"from": 1000, "to": 3000}}, {"id": 2, "name": "\u041e\u0442 3 000 \u20bd \u0434\u043e 10 000 \u20bd", "boundaries": {"from": 3000, "to": 10000}}, {"id": 3, "name": "\u041e\u0442 10 000 \u20bd \u0434\u043e 30 000 \u20bd", "boundaries": {"from": 10000, "to": 30000}}, {"id": 4, "name": "\u041e\u0442 30 000 \u20bd", "boundaries": {"from": 30000, "to": null}}]}}} \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..1679dec --- /dev/null +++ b/main.py @@ -0,0 +1,94 @@ +from __future__ import annotations + +import asyncio +import logging + +from aiogram import Bot, Dispatcher, Router +from aiogram.types import CallbackQuery +from aiogram.client.session.aiohttp import AiohttpSession +from apscheduler.schedulers.asyncio import AsyncIOScheduler + +from app.config import load_settings +from app.service import OfferProcessingService +from app.sources import KworkSource +from app.state import SentOffersStore +from app.telegram import TelegramPublisher + + +logging.basicConfig( + level=logging.DEBUG, + format="%(asctime)s | %(levelname)s | %(name)s | %(message)s", +) + +logger = logging.getLogger(__name__) + + +def build_dispatcher() -> Dispatcher: + router = Router() + + @router.callback_query(lambda callback: callback.data == "delete_post") + async def delete_post_callback(callback: CallbackQuery) -> None: + if callback.message is None: + await callback.answer() + return + + try: + await callback.message.delete() + logger.info( + "Deleted Telegram message chat_id=%s message_id=%s by user_id=%s", + callback.message.chat.id, + callback.message.message_id, + callback.from_user.id, + ) + await callback.answer("Пост удален") + except Exception: + logger.exception( + "Failed to delete Telegram message chat_id=%s message_id=%s", + callback.message.chat.id, + callback.message.message_id, + ) + await callback.answer("Не удалось удалить пост", show_alert=True) + + dispatcher = Dispatcher() + dispatcher.include_router(router) + return dispatcher + + +async def main() -> None: + settings = load_settings() + dispatcher = build_dispatcher() + + session = AiohttpSession(proxy=settings.telegram_proxy_url) if settings.telegram_proxy_url else None + bot = Bot(token=settings.telegram_bot_token, session=session) + publisher = TelegramPublisher(bot=bot, channel_id=settings.telegram_channel_id) + store = SentOffersStore(settings.state_file) + + service = OfferProcessingService( + sources=[ + KworkSource( + category_ids=settings.kwork_category_ids, + timeout_seconds=settings.requests_timeout_seconds, + ) + ], + publisher=publisher, + sent_offers_store=store, + include_keywords=settings.keywords_include, + exclude_keywords=settings.keywords_exclude, + min_price_amount=settings.min_price_amount, + ) + + scheduler = AsyncIOScheduler() + scheduler.add_job(service.run_once, "interval", minutes=settings.scheduler_interval_minutes) + scheduler.start() + + await service.run_once() + + try: + await dispatcher.start_polling(bot) + finally: + scheduler.shutdown() + await bot.session.close() + + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..6877de5 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +aiogram>=3.10.0,<4.0.0 +APScheduler>=3.10.4,<4.0.0 +python-dotenv>=1.0.1,<2.0.0 +requests>=2.32.0,<3.0.0 +aiohttp-socks>=0.10.1,<1.0.0