An open API service indexing awesome lists of open source software.

https://github.com/yasserbdj96/imbot

Imbot is an automation tool for website control. Simplify your workflow and automate repetitive tasks with ease.
https://github.com/yasserbdj96/imbot

bot python

Last synced: 3 months ago
JSON representation

Imbot is an automation tool for website control. Simplify your workflow and automate repetitive tasks with ease.

Awesome Lists containing this project

README

          


imbot


Imbot is an automation tool for website control. Simplify your workflow and automate repetitive tasks with ease.


[![Test on Ubuntu latest](https://github.com/yasserbdj96/imbot/actions/workflows/python-app-on-linux.yml/badge.svg)](https://github.com/yasserbdj96/imbot/actions/workflows/python-app-on-linux.yml)
[![pypi-setup](https://github.com/yasserbdj96/imbot/actions/workflows/pypi-setup.yml/badge.svg)](https://github.com/yasserbdj96/imbot/actions/workflows/pypi-setup.yml)
[![Docker image](https://github.com/yasserbdj96/imbot/actions/workflows/docker-image.yml/badge.svg)](https://github.com/yasserbdj96/imbot/actions/workflows/docker-image.yml)
[![Github Container Registry](https://github.com/yasserbdj96/imbot/actions/workflows/gcr.yml/badge.svg)](https://github.com/yasserbdj96/imbot/actions/workflows/gcr.yml)
[![Upload to PYPI](https://github.com/yasserbdj96/imbot/actions/workflows/pipup.yml/badge.svg)](https://github.com/yasserbdj96/imbot/actions/workflows/pipup.yml)
[![Mirror and run GitLab CI](https://github.com/yasserbdj96/imbot/actions/workflows/push-gitLab.yml/badge.svg)](https://github.com/yasserbdj96/imbot/actions/workflows/push-gitLab.yml)
[![Deploy static content to Pages](https://github.com/yasserbdj96/imbot/actions/workflows/pages.yml/badge.svg)](https://github.com/yasserbdj96/imbot/actions/workflows/pages.yml)
[![CodeQL](https://github.com/yasserbdj96/imbot/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/yasserbdj96/imbot/actions/workflows/codeql-analysis.yml)
[![CodeFactor](https://www.codefactor.io/repository/github/yasserbdj96/imbot/badge)](https://www.codefactor.io/repository/github/yasserbdj96/imbot)
[![Supported Versions](https://img.shields.io/pypi/pyversions/imbot.svg)](https://pypi.org/project/imbot)
[![Visitors](https://visitor-badge.laobi.icu/badge?page_id=yasserbdj96.imbot&format=true)](https://github.com/yasserbdj96/imbot)
[![Docker pulls](https://img.shields.io/docker/pulls/yasserbdj96/imbot)](https://hub.docker.com/r/yasserbdj96/imbot/)
[![Open Source](https://img.shields.io/badge/Open%20Source-%E2%99%A5-red)](https://github.com/yasserbdj96/imbot)
[![Stars](https://img.shields.io/github/stars/yasserbdj96/imbot?color=red)](https://github.com/yasserbdj96/imbot)
[![Forks](https://img.shields.io/github/forks/yasserbdj96/imbot?color=red)](https://github.com/yasserbdj96/imbot)
[![Watching](https://img.shields.io/github/watchers/yasserbdj96/imbot?label=Watchers&color=red&style=flat-square)](https://github.com/yasserbdj96/imbot)
![GitHub contributors](https://img.shields.io/github/contributors/yasserbdj96/imbot)
![GitHub closed issues](https://img.shields.io/github/issues-closed/yasserbdj96/imbot)
![GitHub pull requests](https://img.shields.io/github/issues-pr-raw/yasserbdj96/imbot)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/yasserbdj96/imbot)
![GitHub commit activity](https://img.shields.io/github/commit-activity/m/yasserbdj96/imbot)
![GitHub last commit](https://img.shields.io/github/last-commit/yasserbdj96/imbot)
[![GitHub license](https://img.shields.io/github/license/yasserbdj96/imbot)](https://github.com/yasserbdj96/imbot)
[![Join the chat at https://gitter.im/yasserbdj96/imbot](https://badges.gitter.im/yasserbdj96/imbot.svg)](https://gitter.im/yasserbdj96/imbot?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

Languages:


* python3

Requirements


[✓] hexor

[✓] asciitext

[✓] selenium

Docker pull,build & run:

```bash
# pull:
❯ docker pull yasserbdj96/imbot:latest

# build:
❯ docker build -t docker.io/yasserbdj96/imbot:latest .

# run:
❯ docker run -e headless=* -e json_data='*' -e opiration_title='*' -e argvs='=""' -i -t imbot:latest
# EX:
# docker run -e headless=True -e json_data="google.json" -e opiration_title="search" -e argvs='search_for="yasserbdj96 on github"' -i -t imbot:latest
# * = All inputs must be entered.
```

Github Packages pull,build & run:

```bash
# pull:
❯ docker pull ghcr.io/yasserbdj96/imbot:latest

# build:
❯ docker build -t ghcr.io/yasserbdj96/imbot:latest .

# run:
❯ docker run -e headless=* -e json_data='*' -e opiration_title='*' -e argvs='=""' -i -t ghcr.io/yasserbdj96/imbot:latest
# EX:
# docker run -e headless=True -e json_data="google.json" -e opiration_title="search" -e argvs='search_for="yasserbdj96 on github"' -i -t ghcr.io/yasserbdj96/imbot:latest
# * = All inputs must be entered.
```

Python Package Installation:

```
# Install from pypi:
❯ pip install imbot
# OR
❯ python -m pip install imbot

# Local install:
❯ git clone https://github.com/yasserbdj96/imbot.git
❯ cd imbot
❯ pip install -r requirements-pypi.txt
❯ sudo python setup.py install

# Uninstall:
❯ pip uninstall imbot
```

Run without installation:

```
❯ git clone https://github.com/yasserbdj96/imbot.git
❯ cd imbot
❯ pip install -r requirements.txt
❯ python run.py --headless --json_data '*' --opiration_title '*' --argvs '{"":""}' --exec_path ''
# EX:
# python run.py --headless False --json_data './imbot-examples/google.json' --opiration_title 'search' --argvs '{"search_for":"yasserbdj96 github"}' --exec_path './chromedriver'
# * = All inputs must be entered.

# Run with Makefile:
❯ make run headless= json_data='*' opiration_title='*' argvs='{"":""}' exec_path=''
```

Usage:

```python
from imbot import *

p1=imbot(json_data="*",sleep_time=2,url="*",headless=True,exec_path="")

p1.run(*,)
# * = All inputs must be entered.

p1.end()

"""
Default json code:
{
"url":"",
"":{
"operations":[
{"element_by":"","element_code":"","element_arg":"","opt":"","arg_data":"","data":"","sleep":}
]
}
}

Help:
# Types of finding elements : "element_by"=[id,name,xpath,link_text,partial_link_text,tag_name,class_name,css_selector]
# If you don't use the 'code' key, you must use the 'element_arg' key to enter data from your script.
# If you don't use the 'data' key, you must use the 'arg_data' key to enter data from your script.
# When using the 'put' option you must use 'data' or 'arg_data', Unlike the "click" option.
# When using the 'get' option you must use 'data' or 'arg_data', Unlike the "click" option, data=get_attribute("").
# 'arg_data' and 'element_arg' are 'variable name'.
# 'arg_data' and 'element_arg' are the variable name of the element to be inserted from the list. //Example: p1.run(,password="123456789")
# 'data' and 'element_code' for entering data like password or username from json file (this is a common option if the variables you want to use are static).
# 'sleep' To wait for a certain period before starting an operation.
"""
```

Examples:

```python
from imbot import *

# Examples
# Example 1:
# Open the website link:
p1=imbot("google.json")#,headless=False

# Here, search for a movie poster in Google Images and get the link:
print(p1.run("search",search_for="yasserbdj96 on github"))
print(p1.run("search",search_for="luffy one piece"))

# end
p1.end()
```

Screenshot:



yasserbdj96


yasserbdj96



Changelog History:


Click to See changelog History



Limitations:


# Types of finding elements : "element_by"=[id,name,xpath,link_text,partial_link_text,tag_name,class_name,css_selector]

# If you don't use the 'code' key, you must use the 'element_arg' key to enter data from your script.

# If you don't use the 'data' key, you must use the 'arg_data' key to enter data from your script.

# When using the 'put' option you must use 'data' or 'arg_data', Unlike the "click" option.

# When using the 'get' option you must use 'data' or 'arg_data', Unlike the "click" option, data=get_attribute("").

# 'arg_data' and 'element_arg' are 'variable name'.

# 'arg_data' and 'element_arg' are the variable name of the element to be inserted from the list. //Example: p1.run(,password="123456789")

# 'data' and 'element_code' for entering data like password or username from json file (this is a common option if the variables you want to use are static).

# 'sleep' To wait for a certain period before starting an operation.



Development By:

Developer / Author: [yasserbdj96](https://github.com/yasserbdj96)



License:


The content of this repository is bound by the following LICENSE.



Support:


If you like `imbot` and want to see it improve furthur or want me to create intresting projects , You can buy me a coffee




imbot by yasserbdj96


BTC: bc1q2dks8w8uurca5xmfwv4jwl7upehyjjakr3xga9





website .
github .
gitlab .
linkedin .
twitter .
instagram .
facebook .
youtube .
pypi .
docker .
telegram .
gitter .
e-mail .
sponsor