## Welcome to <img src="https://raw.githubusercontent.com/ClointFusion/Image_ICONS_GIFs/main/Cloint-LOGO-New.png" height="30"> , Made in India with &#10084;&#65039; 

<br>

<img src="https://raw.githubusercontent.com/ClointFusion/Image_ICONS_GIFs/main/CCEW.PNG">


## Description

Cloint India Pvt. Ltd - Python functions for Robotic Process Automation shortly `RPA`.

# What is ClointFusion?

ClointFusion is an Indian firm based in Vadodara, Gujarat. ClointFusion is a Python-based RPA platform for developing Software BOTs. Using AI, we're working on Common Man's RPA.

<img src="https://raw.githubusercontent.com/ClointFusion/Image_ICONS_GIFs/main/DOST%20Blocks/Block-GUI.png">

#### Check out Project Status

![PyPI](https://img.shields.io/pypi/v/ClointFusion?label=PyPI%20Version) 
![PyPI - License](https://img.shields.io/pypi/l/ClointFusion?label=License) 
![PyPI - Status](https://img.shields.io/pypi/status/ClointFusion?label=Release%20Status) 
![ClointFusion](https://snyk.io/advisor/python/ClointFusion/badge.svg) 
![PyPI - Downloads](https://img.shields.io/pypi/dm/ClointFusion?label=PyPI%20Downloads) 
![Libraries.io SourceRank](https://img.shields.io/librariesio/sourcerank/pypi/ClointFusion) 
![PyPI - Format](https://img.shields.io/pypi/format/ClointFusion?label=PyPI%20Format) 
![GitHub contributors](https://img.shields.io/github/contributors/ClointFusion/ClointFusion?label=Contributors) 
![GitHub last commit](https://img.shields.io/github/last-commit/ClointFusion/ClointFusion?label=Last%20Commit) 

![GitHub Repo stars](https://img.shields.io/github/stars/ClointFusion/ClointFusion?label=Stars&style=social) 
![Twitter URL](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Ftwitter.com%2FClointFusion) 
![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCIygBtp1y_XEnC71znWEW2w?style=social) 
![Twitter Follow](https://img.shields.io/twitter/follow/ClointFusion?style=social)

## Release Notes

- Click here for <a href="https://github.com/ClointFusion/ClointFusion/blob/master/Release_Notes.txt" target="_blank"> Release Notes</a>

---

# Installation

<br>

> ### ClointFusion is now supported on Windows / Ubuntu / macOS* !

## Windows :

> ### Windows users can download EXE pre-loaded with Python 3.9 and ClointFusion package: <a href='https://github.com/ClointFusion/ClointFusion/releases/download/v1.0.0/ClointFusion_Community_Edition.exe' target="_blank">Windows EXE</a>
### OR

* ClointFusion is compatible with both Windows 10 and Windows 11.
* Installing on a Windows PC is a breeze.
* Make certain that Python 3.8 or Python 3.9 is installed.
* Then, from the command prompt, execute the following command.

    ```
    pip install -U ClointFusion
    ```

## Ubuntu :
* Clointfusion requires sudo rights to install on Ubuntu.
* Additional Linux packages must be installed before Clointfusion can be installed.
* Make certain that Python 3.8 or Python 3.9 is installed.
* Then, from the command prompt, execute the following command.

    ```
    sudo apt-get install python3-tk python3-dev
    sudo pip3 install ClointFusion
    ```

<br>

# Importing

<br>

> ### ClointFusion can be accessed using one of two methods.

## Windows :

* ### Terminal : Opens a Python interpreter using the command " import ClointFusion as cf "

    ```
    cf_py
    ```
* ### Code Editor or IDE : Import ClointFusion first, and then run the file in Python.

    ```
    # cf_bot.py

    import ClointFusion as cf

    cf.browser_activate()
    ```
    ```
    python cf_bot.py
    ```


## Ubuntu :

* ### Terminal : Opens a Python interpreter with the command " import ClointFusion as cf " and the required sudo privileges.

    ```
    sudo cf_py
    ```
* ### Code Editor or IDE : Run the file with sudo permissions.

    ```
    # cf_bot.py
    
    import ClointFusion as cf

    cf.ChromeBrowser()
    ```
    ```
    sudo python3 cf_bot.py
    ```

<br>

# Features

<br>

> ## DOST : Your friend in automation || Build RPA Bots without Code.

` DOST ` is an interactive Blockly based ``no-code`` BOT Builder platform built and optimized for ClointFusion-based BOT building. We feel that automation is important for people other than programmers. Using DOST, even a common man can create a BOT in minutes.

### Advantages of DOST

- Easy to Use.
- Build BOT in minutes.
- No prior Programming knowledge needed.

# ClointFusion in Action

## **Now access more than 100 functions (hit ctrl+space in your IDE)**

***TIP: You can find and inspect all of ClointFusion's functions using only one function i.e., `find()`. Just pass the partial name of the function.***

```
cf.find("sort")

cf.find("gui")

```

* ### 4 functions on Mouse Operations:

| Function | Accepted Parameters | Description |
| :--------: | :----: | :----------- |
| cf.mouse_click() | x=" ", y=" ", left_or_right="left", no_of_clicks=1  | Clicks at the given X Y Co-ordinates on the screen using ingle / double / triple click(s). Optionally copies selected data to clipboard (works for double / triple clicks) |
| cf.mouse_move() | x=" ", y=" " | Moves the cursor to the given X Y Co-ordinates |
| cf.mouse_drag_from_to() | x1=" ", y1=" ", x2=" ",y2=" ", delay=0.5 | Clicks and drags from X1 Y1 co-ordinates to X2 Y2 Co-ordinates on the screen |
| cf.mouse_search_snip_return_coordinates_x_y() | img=" ", wait=180 | Searches the given image on the screen and returns its center of X Y co-ordinates. |

<br>
<img src="https://github.com/ClointFusion/Image_ICONS_GIFs/blob/main/Mouse_Operations.gif?raw=true" height="400">

----

* ### 6 functions on Window Operations (works only in Windows OS):

| Function | Accepted Parameters | Description |
| :--------: | :----: | :----------- |
| cf.window_show_desktop() | None | Minimizes all the applications and shows Desktop. |
| cf.window_get_all_opened_titles_windows() | window_title=" " | Gives the title of all the existing (open) windows. |
| cf.window_activate_and_maximize_windows() | windowName=" " | Activates and maximizes the desired window. |
| cf.window_minimize_windows() | windowName=" " | Activates and minimizes the desired window. | 
| cf.window_close_windows() | windowName=" " | Close the desired window. |
| cf.launch_any_exe_bat_application() | pathOfExeFile=" " | Launches any exe or batch file or excel file etc. |

<br>
<img src="https://github.com/ClointFusion/Image_ICONS_GIFs/blob/main/Functions%20Light%20GIFs/Window Operations.gif?raw=true" height="400">

----

* ### 8 functions on Folder Operations:

| Function | Accepted Parameters | Description |
| :--------: | :----: | :----------- |
| cf.folder_read_text_file() | txt_file_path=" " | Reads from a given text file and returns entire contents as a single list |
| cf.folder_write_text_file() | txt_file_path=" ", contents=" " |  Writes given contents to a text file |
| cf.folder_create() | strFolderPath=" " | When you are making leaf directory, if any intermediate-level directory is missing, folder_create() method creates them. |
| cf.folder_create_text_file() | textFolderPath=" ", txtFileName=" " | Creates text file in the given path. |
| cf.folder_get_all_filenames_as_list() | strFolderPath=" ", extension='all' | Get all the files of the given folder in a list. |
| cf.folder_delete_all_files() | fullPathOfTheFolder=" ", file_extension_without_dot="all" | Deletes all the files of the given folder |
| cf.file_rename() | old_file_path='', new_file_name='', ext=False | Renames the given file name to new file name with same extension. |
|cf.file_get_json_details() | path_of_json_file='', section='' | Returns all the details of the given section in a dictionary |

<br>
<img src="https://github.com/ClointFusion/Image_ICONS_GIFs/blob/main/Folder_Operations.gif?raw=true" height="400">

----

* ### 3 functions on Keyboard Operations:

| Function | Accepted Parameters | Description |
| :--------: | :----: | :----------- |
| cf.key_hit_enter() | write_to_window=" " | Enter key will be pressed once. |
| cf.key_press() | key_1='', key_2='', key_3='', write_to_window=" " | Emulates the given keystrokes. |
| cf.key_write_enter() | text_to_write=" ", write_to_window=" ", delay_after_typing=1, key="e" | Writes/Types the given text and press enter (by default) or tab key. |

<br>
<img src="https://github.com/ClointFusion/Image_ICONS_GIFs/blob/main/KB_Operations.gif?raw=true" height="400">

----

* ### 5 functions on Screen-scraping Operations:

| Function | Accepted Parameters | Description |
| :--------: | :----: | :----------- |
|cf.scrape_save_contents_to_notepad() | folderPathToSaveTheNotepad=" ", switch_to_window=" ",X=0, Y=0 | Copy pastes all the available text on the screen to notepad and saves it. |
| cf.scrape_get_contents_by_search_copy_paste() | highlightText=" " | Gets the focus on the screen by searching given text using crtl+f and performs copy/paste of all data. Useful in Citrix applications. This is useful in Citrix applications |
| cf.screen_clear_search() | delay=0.2 | Clears previously found text (crtl+f highlight) |
| cf.search_highlight_tab_enter_open() | searchText=" ", hitEnterKey="Yes", shift_tab='No' | Searches for a text on screen using crtl+f and hits enter. This function is useful in Citrix environment. |
| cf.find_text_on_screen() | searchText=" ", delay=0.1, occurance=1, isSearchToBeCleared=False | Clears previous search and finds the provided text on screen. |

<br>
<img src="https://github.com/ClointFusion/Image_ICONS_GIFs/blob/main/Screen_Scraping.gif?raw=true" height="400">

----

* ### 11 functions on Browser Operations:

| Function | Accepted Parameters | Description |
| :--------: | :----: | :----------- |
| driver = cf.ChromeBrowser() |  | Function to launch browser and start the session. |
| driver.open_browser() | dummy_browser=True,<br> incognito=False,<br> profile="Default" | Function to launch browser and start the session. |
| driver.navigate() | url=" " | Navigates to Specified URL. |
| driver.write() | Value=" ",  User_Visible_Text_Element=" " |  Write a string on the given element. |
| driver.mouse_click() | User_Visible_Text_Element=" ", element=" ",<br> double_click=False, right_click=False | Click on the given element. |
| driver.wait_until() | text=" ", element="t" | Wait until a specific element is found. |
| driver.refresh_page() | None | Refresh the page. |
| driver.close() | None | Close the Helium browser. |
| driver.hit_enter() | None | Hits enter KEY using Browser Helium Functions |
| driver.key_press() | key_1=" ", key_2=" " | Type text using Browser Helium Functions and press hot keys |
| driver.mouse_hover() | User_Visible_Text_Element=" " | Performs a Mouse Hover over the Given User Visible Text Element |
| driver.scroll() | direction="down", weight="100" px  | Scrolls the browser window. | 

<br>
<img src="https://github.com/ClointFusion/Image_ICONS_GIFs/blob/main/Functions%20Light%20GIFs/browser_functions.gif?raw=true" height="400">

----

* ### 4 functions on Alert Messages:

| Function | Accepted Parameters | Description |
| :--------: | :----: | :----------- |
| cf.message_counter_down_timer() | strMsg="Calling ClointFusion Function in (seconds)", start_value=5 | Function to show count-down timer. Default is 5 seconds. |
| cf.message_pop_up() | strMsg=" ", delay=3 | Specified message will popup on the screen for a specified duration of time.|
| cf.message_flash() | msg=" ", delay=3 | Specified msg will popup for a specified duration of time with OK button. |
| cf.message_toast() | message,website_url=" ", file_folder_path=" " | Function for displaying Windows 10 Toast Notifications. Pass website URL OR file / folder path that needs to be opened when user clicks on the toast notification. |

----

* ### 3 functions on String Operations: 

| Function | Accepted Parameters | Description |
| :--------: | :----: | :----------- |
| cf.string_remove_special_characters() | inputStr=" " | Removes all the special character. |
| cf.string_extract_only_alphabets() | inputString=" " | Returns only alphabets from given input string |
| cf.string_extract_only_numbers() | inputString=" " | Returns only numbers from given input string |

<br>
<img src="https://github.com/ClointFusion/Image_ICONS_GIFs/blob/main/String_Operations.gif?raw=true" height="400">

----

* ### Loads of miscellaneous functions related to emoji, capture photo, flash (pop-up) messages etc:

| Function | Accepted Parameters | Description |
| :--------: | :----: | :----------- |
| cf.clear_screen() | None | Clears Python Interpreter Terminal Window Screen |
| cf.print_with_magic_color() | strMsg:str=" ", magic:bool=False | Function to color and format terminal output |
| cf.show_emoji() | strInput=" " | Function which prints Emojis |
| cf.download_this_file() | url=" " | Downloads a given url file to BOT output folder or Browser's Download folder |
| cf.pause_program() | seconds="5" | Stops the program for given seconds |

<br>
<img src="https://github.com/ClointFusion/Image_ICONS_GIFs/blob/main/miscallaneous.gif?raw=true" height="400">    


# BOTS made out of ClointFusion

### Outlook Email BOT implemented using ClointFusion

<img src="https://github.com/ClointFusion/Image_ICONS_GIFs/blob/main/Functions%20Light%20GIFs/Gmail_and_Outlook_BOT.gif?raw=true" height="400">

<br>

# We love your contribution

Contribute to us by giving a star, writing articles on `ClointFusion`, giving comments, reporting bugs, bug fixes, feature enhancements, adding documentation, and many other ways. 


## Invitation to our Monthly Branded Hackathon

We also invite everyone to take part in our monthly branded event, the `ClointFusion Hackathon`, and stand a chance to work with us.

Checkout our Hackathon Website for more details here: [ClointFusion Hackathon](https://sites.google.com/view/clointfusion-hackathon
)

<br>

## Date &#10084;&#65039; with ClointFusion

This an initiative for fast track entry into our growing workforce. For more details, please visit: [Date with ClointFusion](https://lnkd.in/gh_r9YB)


## Acknowledgements

We sincerely thanks to all it's dependent packages for the great contribution, which made `ClointFusion` possible!

Please find all the dependencies [here](https://openbase.com/python/ClointFusion/dependencies) 
<!-- 
<a href="https://openbase.com/python/ClointFusion/dependencies" target="blank">ClointFusion thanks all its dependent packages for the great contribution, which has made ClointFusion possible !</a> -->


## Need help in Building BOTS?

Write us by clicking below<br>
<div align='left'>
<a href="mailto:ClointFusion@cloint.com" target="_blank"><img src="https://img.shields.io/badge/Gmail-D14836?style=for-the-badge&logo=gmail&logoColor=white" alt="Gmail"></a> &nbsp;
</div>

---

Disclaimer: We collect anonymous data on installation and usage statistics in order to improve our product and provide better services.