Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kesha1225/pykwork
Простая асинхронная обёртка над закрытым api для фриланс биржи kwork.ru
https://github.com/kesha1225/pykwork
kwork kwork-api kwork-bot
Last synced: 2 months ago
JSON representation
Простая асинхронная обёртка над закрытым api для фриланс биржи kwork.ru
- Host: GitHub
- URL: https://github.com/kesha1225/pykwork
- Owner: kesha1225
- Created: 2020-02-02T21:54:29.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-02-12T20:16:21.000Z (11 months ago)
- Last Synced: 2024-10-10T13:35:17.828Z (3 months ago)
- Topics: kwork, kwork-api, kwork-bot
- Language: Python
- Size: 98.6 KB
- Stars: 36
- Watchers: 2
- Forks: 4
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Простая асинхронная обёртка над закрытым api для фриланс биржи kwork.ru
https://api.kwork.ru/
все доступные методы тут, можно запрашивать их через api_request.
Сейчас доступ закрыли, но его можно открыть с помощью [docs.html](docs.html)
(просто откройте файл в браузере).
Там вся документация по методам и параметрам.**Если нужного вам метода нет в классе или нет нужных параметров просто используйте
[документацию](docs.html) и api_request!!**
```python3
await self.api_request(
method="post", api_method="actor", token=await self.token
)
```## Установка
Последняя версия (рекомендуется):
```
pip install https://github.com/kesha1225/pykwork/archive/master.zip --upgrade
```Версия на pypi (может быть устаревшей):
```
pip install kwork
```## Обзор
Список доступных методов можно посмотреть [здесь](./api_example.py)
Пример простого api запроса:
```python3
from kwork import Kwork
from kwork.types import Actor
import logging
import asynciologging.basicConfig(level=logging.INFO)
async def main():
api = Kwork(login="login", password="password")
me: Actor = await api.get_me()
# Получение своего профиля
print(me)
await api.close()loop = asyncio.get_event_loop()
loop.run_until_complete(main())```
### pykwork предоставляет возможность создания ботов для мгновенных ответов потециальным покупателям
Пример бота с тремя хендлерами для ответов:
```python3
from kwork import KworkBot
from kwork.types import Message
import logging
import asynciologging.basicConfig(level=logging.INFO)
bot = KworkBot(login="login", password="password")
@bot.message_handler(on_start=True)
async def simple_handle(message: Message):
"""
Отвечаем только если это первое сообщение от юзера
"""
text = ("Здравствуйте, рад что вы обратились именно ко мне,"
" опишите ваше желание подробнее!")
await message.answer_simulation(text)@bot.message_handler(text_contains="бот")
async def bot_handler(message: Message):
"""
Отвечаем если текст сообщения содержит слово бот
"""
text = "Вам нужен бот? Можете посмотреть на примеры уже сделанных:..."
await message.answer_simulation(text)@bot.message_handler(text="привет")
async def bot_handler(message: Message):
"""
Отвечаем только если текст такой же как параметр text
"""
text = "И вам привет!"
await message.answer_simulation(text)async def run():
"""
Запускаем бота
"""
await bot.run_bot()loop = asyncio.get_event_loop()
loop.run_until_complete(run())```
## Примечание
Получая ошибку "Подтвердите что вы не робот" просто ставьте прокси.
Kwork может банить по ip, но в основном pykwork предотвращает это, даже
если вас забанили, не пугайтесь, аккаунты они не банят, просто перезайдите
с vpn/tor/proxy. Если вас каким то чудом забанили, но вам нужно продолжить
использовать бота - воспользуйтесь прокси (socks5/socks4):```python3
from kwork import Kwork
from kwork.types import User, Actor
import logging
import asynciologging.basicConfig(level=logging.INFO)
async def main():
api = Kwork(login="login", password="password", proxy="socks5://208.113.220.250:3420")me: Actor = await api.get_me()
print(me)await api.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main())```
Получая ошибку "Необходимо ввести последние 4 цифры номера телефона." используйте параметр phone_last
```python3
api = Kwork(login="login", password="password", phone_last="0102")
```Если вдруг какие - то методы перестанут работать или работают неправильно -
пишите отчёты в issue