chore: update version; move scripts into examples folder
This commit is contained in:
19
README.md
19
README.md
@@ -18,10 +18,25 @@ c = ITDClient('TOKEN', 'refresh_token=...; __ddg1_=...; __ddgid_=...; is_auth=1;
|
|||||||
|
|
||||||
print(c.get_me())
|
print(c.get_me())
|
||||||
```
|
```
|
||||||
|
<!--
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> Берите куки из запроса /auth/refresh. В остальных запросах нету refresh_token
|
> Берите куки из запроса /auth/refresh. В остальных запросах нету refresh_token
|
||||||
> 
|
>  -->
|
||||||
|
|
||||||
|
## Получение cookies
|
||||||
|
|
||||||
|
Для получения access_token требуются cookies с `refresh_token`. Как их получить:
|
||||||
|
|
||||||
|
1. Откройте [итд.com](https://xn--d1ah4a.com) в браузере
|
||||||
|
2. Откройте DevTools (F12)
|
||||||
|
3. Перейдите на вкладку **Network**
|
||||||
|
4. Обновите страницу
|
||||||
|
5. Найдите запрос к `/auth/refresh`
|
||||||
|
6. Скопируйте значение **Cookie** из Request Headers
|
||||||
|
> Пример: `refresh_token=123123A67BCdEfGG; is_auth=1`
|
||||||
|
> В cookies также могут присутствовать значения типа `__ddgX__` (DDoS-Guard cookies) или `_ym_XXXX` (`X` - любое число или буква). Они необязательные и их наличие не влияет на результат
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
---
|
---
|
||||||
### Скрипт на обновление имени
|
### Скрипт на обновление имени
|
||||||
|
|||||||
@@ -2,62 +2,6 @@
|
|||||||
|
|
||||||
Эта папка содержит примеры использования ITD SDK для различных сценариев.
|
Эта папка содержит примеры использования ITD SDK для различных сценариев.
|
||||||
|
|
||||||
## Структура
|
|
||||||
|
|
||||||
```
|
|
||||||
examples/
|
|
||||||
├── README.md # Этот файл
|
|
||||||
└── stream/ # Примеры работы с SSE потоком уведомлений
|
|
||||||
├── basic_stream.py
|
|
||||||
├── stop_stream.py
|
|
||||||
├── filter_notifications.py
|
|
||||||
└── notification_logger.py
|
|
||||||
```
|
|
||||||
|
|
||||||
## Подготовка
|
|
||||||
|
|
||||||
Перед запуском примеров установите зависимости:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pip install -r ../requirements.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
## Получение cookies
|
|
||||||
|
|
||||||
Все примеры требуют cookies с `refresh_token`. Как их получить:
|
|
||||||
|
|
||||||
1. Откройте [итд.com](https://xn--d1ah4a.com) в браузере
|
|
||||||
2. Откройте DevTools (F12)
|
|
||||||
3. Перейдите на вкладку **Network**
|
|
||||||
4. Найдите запрос к `/auth/refresh`
|
|
||||||
5. Скопируйте значение **Cookie** из Request Headers
|
|
||||||
6. Формат: `refresh_token=...; __ddg1_=...; is_auth=1`
|
|
||||||
|
|
||||||
См. `cookie-screen.png` в корне проекта для примера.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Stream - Прослушивание уведомлений
|
|
||||||
|
|
||||||
Примеры работы с SSE потоком уведомлений в реальном времени.
|
|
||||||
|
|
||||||
📁 **Папка:** `stream/`
|
|
||||||
📖 **Документация:** [stream/README.md](stream/README.md)
|
|
||||||
|
|
||||||
**Примеры:**
|
|
||||||
- `basic_stream.py` - Базовое прослушивание всех уведомлений
|
|
||||||
- `stop_stream.py` - Программная остановка потока
|
|
||||||
- `filter_notifications.py` - Фильтрация по типу уведомлений
|
|
||||||
- `notification_logger.py` - Логирование в JSON файл
|
|
||||||
|
|
||||||
**Быстрый старт:**
|
|
||||||
```bash
|
|
||||||
cd stream
|
|
||||||
python basic_stream.py
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Дополнительная информация
|
## Дополнительная информация
|
||||||
|
|
||||||
- [Основной README](../README.md) - Документация по всему SDK
|
- [Основной README](../README.md) - Документация по всему SDK
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import sys
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
||||||
|
|
||||||
from itd import ITDClient, StreamConnect, StreamNotification
|
from itd import ITDClient, StreamConnect
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
cookies = 'YOUR_COOKIES_HERE'
|
cookies = 'YOUR_COOKIES_HERE'
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import sys
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
||||||
|
|
||||||
from itd import ITDClient, StreamConnect, StreamNotification
|
from itd import ITDClient, StreamConnect
|
||||||
from itd.enums import NotificationType
|
from itd.enums import NotificationType
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@@ -18,11 +18,10 @@ def main():
|
|||||||
|
|
||||||
client = ITDClient(cookies=cookies)
|
client = ITDClient(cookies=cookies)
|
||||||
|
|
||||||
# Настройка: какие типы уведомлений показывать
|
|
||||||
SHOW_TYPES = {
|
SHOW_TYPES = {
|
||||||
NotificationType.LIKE,
|
NotificationType.LIKE,
|
||||||
NotificationType.FOLLOW,
|
NotificationType.FOLLOW,
|
||||||
NotificationType.COMMENT,
|
NotificationType.COMMENT
|
||||||
}
|
}
|
||||||
|
|
||||||
print('-- Подключение к SSE...')
|
print('-- Подключение к SSE...')
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import sys
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
||||||
|
|
||||||
from itd import ITDClient, StreamConnect, StreamNotification
|
from itd import ITDClient, StreamConnect
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,7 @@ from pathlib import Path
|
|||||||
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
|
||||||
|
|
||||||
import threading
|
import threading
|
||||||
import time
|
from itd import ITDClient, StreamConnect
|
||||||
from itd import ITDClient, StreamConnect, StreamNotification
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
cookies = 'YOUR_COOKIES_HERE'
|
cookies = 'YOUR_COOKIES_HERE'
|
||||||
@@ -18,7 +17,6 @@ def main():
|
|||||||
|
|
||||||
client = ITDClient(cookies=cookies)
|
client = ITDClient(cookies=cookies)
|
||||||
|
|
||||||
# Функция для прослушивания в отдельном потоке
|
|
||||||
def listen():
|
def listen():
|
||||||
print('! Начинаем прослушивание...')
|
print('! Начинаем прослушивание...')
|
||||||
try:
|
try:
|
||||||
@@ -30,7 +28,6 @@ def main():
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'! Ошибка: {e}')
|
print(f'! Ошибка: {e}')
|
||||||
|
|
||||||
# В отдельном потоке
|
|
||||||
thread = threading.Thread(target=listen, daemon=True)
|
thread = threading.Thread(target=listen, daemon=True)
|
||||||
thread.start()
|
thread.start()
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "itd-sdk"
|
name = "itd-sdk"
|
||||||
version = "1.1.0"
|
version = "1.2.0"
|
||||||
description = "ITD client for python"
|
description = "ITD client for python"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
authors = [
|
authors = [
|
||||||
|
|||||||
2
setup.py
2
setup.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='itd-sdk',
|
name='itd-sdk',
|
||||||
version='1.1.0',
|
version='1.2.0',
|
||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
install_requires=[
|
install_requires=[
|
||||||
'requests', 'pydantic', 'sseclient-py'
|
'requests', 'pydantic', 'sseclient-py'
|
||||||
|
|||||||
Reference in New Issue
Block a user