Metadata-Version: 2.4
Name: LinkdeinAutomation
Version: 0.0.1
Summary: CLI tool to automate LinkedIn login and content posting using Selenium
Home-page: 
Author: Trisham Gupta
Author-email: trishamgupta43@gmail.com
Keywords: python,linkedin,linkedin-automation,selenium,browser-automation,social-media-automation
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE-2
Requires-Dist: selenium>=4.0.0
Requires-Dist: colorama>=0.4.6
Requires-Dist: pyfiglet>=1.0.0
Requires-Dist: pandas>=2.0.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: keywords
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# LinkedIn Automator

A Python-based Selenium automation utility for interacting with LinkedIn through a Chrome browser.

## Features

- Selenium-based Chrome browser automation
- Login/session workflow
- Local SQLite storage
- Cookie/session persistence
- Image, video, and document posting
- Post text/caption support
- Console-based menu interface
- Colored terminal output

## Requirements

- Python 3.9+
- Google Chrome
- Selenium-compatible WebDriver
- A LinkedIn account

## Installation

Install the dependencies:

```bash
pip install selenium colorama pyfiglet pandas
```

If published on PyPI:

```bash
pip install <your-package-name>
```

## Usage

Run the application:

```bash
python main.py
```

The current menu provides options for saving login/session data,
editing stored credentials, exiting, and starting the posting workflow.

### First Run

Choose option `1` and provide the LinkedIn username and password.
The application creates a local SQLite database and attempts to establish
a browser session.

### Posting

Choose option `5` to start the posting workflow.

Supported file formats currently include:

- Images: `.jpg`, `.jpeg`, `.png`, `.heic`
- Videos: `.mp4`, `.mov`
- Documents: `.pdf`, `.docs`

## Security Notice

The current implementation stores login credentials in a local SQLite
database and browser cookies/session information in JSON files.

**Never publish real credentials, cookies, session files, database files,
or other secrets to GitHub or PyPI.**

Recommended `.gitignore`:

```gitignore
*.db
*.sqlite
*.sqlite3
session.json
session.josn
.env
__pycache__/
*.pyc
dist/
build/
*.egg-info/
```

For production use, replace plaintext credential storage with a secure
credential store such as environment variables or an OS keychain.

## Responsible Use

This project is intended for legitimate automation, testing, and personal
workflows.

Users are responsible for complying with LinkedIn's Terms of Service,
applicable laws, privacy requirements, and organizational policies.
Do not use the software for spam, deceptive activity, unsolicited bulk
messaging, or other activity that violates platform rules.

LinkedIn may change its website UI and selectors at any time, which can
break Selenium-based automation.

## Project Structure

A recommended PyPI-ready structure is:

```text
linkedin-automator/
├── README.md
├── LICENSE
├── pyproject.toml
└── src/
    └── linkedin_automator/
        ├── __init__.py
        └── core.py
```

## Dependencies

The current script imports:

- `selenium`
- `colorama`
- `pyfiglet`
- `pandas`

It also uses Python standard-library modules:

- `time`
- `sys`
- `os`
- `sqlite3`
- `json`

## PyPI Publishing

Install the build tools:

```bash
python -m pip install --upgrade build twine
```

Build:

```bash
python -m build
```

Upload:

```bash
python -m twine upload dist/*
```

For initial testing, use TestPyPI before uploading to the main PyPI
repository.

## Known Limitations

The automation depends on LinkedIn's current web UI structure and
Selenium selectors. Website changes can require selector updates.

The existing source also contains legacy session-handling code and should
be reviewed and tested before being distributed as a production package.

## License

MIT License. See `LICENSE` for the complete license text.
