OmitMe - Your Privacy-Centric, Easily Extendable Data Deletion Solution
Project description
OmitMe
Your Privacy-Centric, Easily Extendable Data Deletion Solution.
Install
pip install omitme
May need to have chrome installed to function.
Usage
omitme-cli --help
Example
omitme-cli discord login
omitme-cli discord accounts
omitme-cli discord target messages-delete-all --account account_name
Tested on
- Linux ✅
- Windows ❌
- MacOS ❌
Supported platforms
Working
- Discord
Planned
- Matrix
In-progress
- Work in progress GUI for Linux, MacOS & Windows.
Contributing
Omitme is built to be expandable to other platforms.
See an example here
The Platform
class
Each new platform, show inherit from Platform
.
class Discord(Platform):
Each platform class requires some metadata.
icon
should be stored in omitme/resources/platforms
class Discord(Platform):
api_url = "https://discord.com/api/v9"
login_url = "https://discord.com/login"
alias = "discord"
icon = "discord.png"
description = "Manage your discord data"
Login
Each platform requires a login handler like so.
driver
is a instance of seleniumwire's webdriver
@login
async def handle_login(
self, driver: webdriver.Chrome, accounts: Accounts
) -> httpx.AsyncClient:
pass
Once login is successful, the account should be stored safely using accounts.add
& your custom HTTPX session should be returned.
@login
async def handle_login(
self, driver: webdriver.Chrome, accounts: Accounts
) -> httpx.AsyncClient:
driver.get(self.login_url)
...
await accounts.add(resp.json()["username"], session={"headers": headers})
return session
Targets
Targets are the methods called when a user wants to omit something, e.g. omitme-cli reddit target posts-delete-all
, posts-delete-all
would be our target.
Events
CheckingEvent
, API call in progress.OmittedEvent
, data has been omitted.CompletedEvent
, the omitting process is complete.
@target("posts delete all", description="Delete all reddit posts")
async def handle_delete_posts(
self, session: httpx.AsyncClient
) -> AsyncIterator[OmittedEvent | CheckingEvent | FailEvent | CompletedEvent]:
resp = await session.get(
f"/user/{await self._get_username(session)}/submitted",
params={"timeframe": "all", "limit": "100"},
)
for post in resp.json()["data"]["children"]:
await self._delete_post(session, post["kind"], post["data"]["id"])
yield OmittedEvent(
channel=post["data"]["subreddit"], content=post["data"]["selftext"]
)
yield CompletedEvent()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file omitme-0.0.9.tar.gz
.
File metadata
- Download URL: omitme-0.0.9.tar.gz
- Upload date:
- Size: 557.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.11.9 Linux/6.5.0-1017-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 838fce0f690c16dbeda5a82b672b3648948d26960bf9920db11902f049309742 |
|
MD5 | e41a71ed1cbe3beece352476201bda19 |
|
BLAKE2b-256 | 6e269952e21159324733fcdb1bdf16d5e817c937d8ca50b3f03edd92d7a98354 |
File details
Details for the file omitme-0.0.9-py3-none-any.whl
.
File metadata
- Download URL: omitme-0.0.9-py3-none-any.whl
- Upload date:
- Size: 573.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.11.9 Linux/6.5.0-1017-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b481f7ac954734d4a83f50f5ac7fe8db90183b25f22d7e920931ae3a4283569d |
|
MD5 | 18480e923150b15ae0b77827b7196c38 |
|
BLAKE2b-256 | 596de1369d8432d9a16fb766a93e914a26dba42a8c398c75814d1d6309152e96 |