Skip to content

Commit

Permalink
release v1.1.1 (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
ZeN220 authored Jan 22, 2023
2 parents 795fd0c + 51a808e commit 0ddc6d1
Show file tree
Hide file tree
Showing 22 changed files with 895 additions and 384 deletions.
49 changes: 49 additions & 0 deletions .github/workflows/linters.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Lint code

on:
pull_request:
paths:
- "src/**"
- ".github/workflows/linters.yaml"
- "pyproject.toml"
- "poetry.lock"
push:
paths:
- "src/**"
- ".github/workflows/linters.yaml"
- "pyproject.toml"
- "poetry.lock"

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10"]

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install poetry
run: pipx install poetry

- name: Install dependencies
run: poetry install

- name: Run flake8
run: poetry run flake8

- name: Run black
run: poetry run black --check src

- name: Run isort
run: poetry run isort --check-only src

- name: Run mypy
run: poetry run mypy src
157 changes: 5 additions & 152 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,158 +6,11 @@ __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

# 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/#use-with-ide
.pdm.toml

# 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
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject
# PyCharm
.idea/

# mkdocs documentation
/site
# VSCode
.vscode/

# mypy
# Mypy cache
.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/
50 changes: 50 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: "trailing-whitespace"
- id: "check-case-conflict"
- id: "check-merge-conflict"
- id: "end-of-file-fixer"
- id: "check-toml"

- repo: https://github.com/psf/black
rev: 22.10.0
hooks:
- id: black
name: black

- repo: https://github.com/pycqa/flake8
rev: 5.0.4
hooks:
- id: flake8
name: flake8

- repo: https://github.com/pycqa/isort
rev: 5.10.1
hooks:
- id: isort
name: isort

- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.991
hooks:
- id: mypy
name: mypy
language: system

- repo: https://github.com/python-poetry/poetry
rev: 1.2.2
hooks:
- id: poetry-lock
name: poetry-lock
files: pyproject.toml
- id: poetry-export
name: poetry-export requirements-dev
files: pyproject.toml
args: [
"--without-hashes",
"--with", "dev",
"-f", "requirements.txt",
"-o", "requirements-dev.txt"
]
42 changes: 18 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,55 @@
# LolzAutoBuy
Данный скрипт предназначен для автоматического поиска и покупки аккаунтов с маркета https://lolz.guru/market.
# lolz-auto-buyer
Данный скрипт предназначен для автоматического поиска и покупки аккаунтов с маркета https://lzt.market.

Для его запуска вам потребуется Windows/Linux, а также установленный Python 3.8+. **Никакие библиотеки предустанавливать не нужно**.
Для его запуска вам потребуется Windows/Linux, а также установленный Python 3.8+. **Никакие библиотеки предустанавливать не нужно**.

# Config.ini
Первым делом, вам нужно правильно заполнить конфигурационный файл. Вы должны открыть файл `config.ini.example` и заполнить все его поля. Дальше, вам остается изменить имя файла на `config.ini`. Поговорим о полях самого конфига:
Первым делом, вам нужно правильно заполнить конфигурационный файл. Вы должны открыть файл `config.example.ini` и заполнить все его поля. Дальше, вам остается изменить имя файла на `config.ini`. Поговорим о полях самого конфига:

## Lolzteam
```
token = 31156ccaff01dad7610dd6d4409d1593cd94cd9f
search_urls_list = https://lolz.guru/market/steam/?order_by=price_to_up, https://lolz.guru/market/discord/?order_by=price_to_up&pmax=10
search_urls_list = https://lzt.market/steam/?order_by=price_to_up, https://lzt.market/discord/?order_by=price_to_up&pmax=10
count = 1
```
`token` - Сюда вы вставляете свой токен от аккаунта Lolzteam.<br>
`search_urls_list` - В данное поле вы вставляете ссылки, по которым скрипт будет искать и покупать аккаунты. Чтобы ее получить, вам нужно выставить нужные параметры в [поиске маркета](https://lolz.guru/market/) и просто скопировать ссылку из адресной строки (видоизменять её **не** нужно).<br>
`count` - Данное поле отвечает за количество аккаунтов, которое будет куплено. После превышения данного числа скрипт закончит работу.
`token` - Токен от аккаунта Lolzteam.<br>
`search_urls_list` - Ссылки, по которым скрипт будет искать и покупать аккаунты. Чтобы ее получить, вам нужно выставить нужные параметры в [поиске маркета](https://lzt.market) и просто скопировать ссылку из адресной строки (видоизменять её **не** нужно).<br>
`count` - Количество аккаунтов, которое будет куплено. После превышения данного числа скрипт закончит работу.
## Telegram
```
[telegram]
bot_token = 1:AAABBBCCC
id = 1 # Your Telegram ID
text_message = По вашему запросу успешно куплен аккаунт!
```
`bot_token` - В это поле нужно вставлять токен от телеграм бота, который будет уведомлять вас о покупке аккаунта.<br>
`bot_token` - Токен от Telegram бота, который будет уведомлять вас о покупке аккаунта.<br>
`telegram_id` - Telegram ID, на который будет отправляться уведомление о покупке аккаунта.<br>
`text_message` - Текст, который будет отправлять бот после покупки аккаунта.<br>
## Logging
**Не трогайте данный раздел, если вы не являетесь разработчиком.**
```
level = 20<br>
format = [%%(levelname)s] %%(asctime)s - %%(name)s - %%(message)s<br>
level = 20
format = [%%(levelname)s] %%(asctime)s - %%(name)s - %%(message)s
```
`level` - Уровень логгирования.<br>
`level` - Уровень логирования. <br>
`format` - Формат логов. (Из-за особенностей файла .ini символ '%' нужно экранировать)

# Как его запустить?

И так, вы правильно заполнили файл config.ini, отлично! Теперь, осталось запустить основной файл, для этого используйте команду:
И так, вы правильно заполнили файл config.ini, отлично! Теперь, осталось запустить скрипт, для этого используйте команду:
```bash
python __main__.py
python -m src
```
Ключевое слово `python` может меняться в зависимости от версии самого Python и от вашей операционной системы.
Ключевое слово `python` может меняться в зависимости от версии самого Python и от вашей операционной системы.

Теперь скрипт работает! Каждые 3 секунды он проверяет аккаунты на маркете по вашему запросу, и если такие находятся - покупает их. О покупке он сообщает вам в личные сообщения Telegram от имени бота, токен от которого вы указали в config.ini.


# FAQ
Q - Как получить токен Lolzteam?<br>
A - Для этого в первую очередь вам нужно создать приложение. Сделать это можно через [настройки API](https://lolz.guru/account/api). В поле Redirect URI вы можете указать любую, например, главную страницу форума: https://lolz.guru. <br>
После создания приложения, вам нужно скопировать Client ID своего приложения и вставить его в ссылку:
`https://api.lolz.guru/oauth/authorize?response_type=token&client_id=CLIENT_ID&scope=read+post+market`<br>
И в адресной строке будет наш токен:<br>
![Взято из https://lolz.guru/posts/comments/8086747](https://i.imgur.com/KLriwYl.png)
A - Для этого вам нужно перейти по [ссылке](https://zelenka.guru/account/authorize?client_id=v3fqcys6di&response_type=token&scope=market+read+post). После выдачи разрешения, вас перенаправит на этот же репозиторий. Вам будет достаточно скопировать значение параметра `access_token` из адресной строки браузера.
![Взято из https://zelenka.guru/posts/comments/8086747](https://i.imgur.com/KLriwYl.png)

Q - Можно ли вставить несколько запросов в скрипт? <br>
A - Да. Для этого вам нужно перечислить ссылки на покупку через запятую, например:<br>
`search_urls_list = https://lolz.guru/market/discord/?order_by=price_to_up&pmin=10, https://lolz.guru/market/discord/?order_by=price_to_up&pmin=100&pmax=1000`
A - Да. Для этого вам нужно перечислить ссылки на покупку через запятую.

Q - Можно ли уменьшить задержку между запросами? <br>
A - Нет, это ограничение идет со стороны Market API и обойти его никак нельзя.
49 changes: 0 additions & 49 deletions __main__.py

This file was deleted.

Loading

0 comments on commit 0ddc6d1

Please sign in to comment.