Metadata-Version: 2.4
Name: HackaProfile
Version: 1.1.0
Summary: A simple tool to automatically update Slack user profile based on their Hackatime/Wakatime heartbeat!
Project-URL: Repository, https://github.com/zibuyin/HackaProfile
Project-URL: Issues, https://github.com/zibuyin/HackaProfile/issues
Project-URL: Homepage, https://github.com/zibuyin/HackaProfile
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: annotated-doc==0.0.4
Requires-Dist: blinker==1.9.0
Requires-Dist: certifi==2026.6.17
Requires-Dist: charset-normalizer==3.4.7
Requires-Dist: click==8.4.1
Requires-Dist: dotenv==0.9.9
Requires-Dist: Flask==3.1.3
Requires-Dist: idna==3.18
Requires-Dist: itsdangerous==2.2.0
Requires-Dist: jaraco.classes==3.4.0
Requires-Dist: jaraco.context==6.1.2
Requires-Dist: jaraco.functools==4.5.0
Requires-Dist: Jinja2==3.1.6
Requires-Dist: keyring==25.7.0
Requires-Dist: markdown-it-py==4.2.0
Requires-Dist: MarkupSafe==3.0.3
Requires-Dist: mdurl==0.1.2
Requires-Dist: more-itertools==11.1.0
Requires-Dist: prompt_toolkit==3.0.52
Requires-Dist: psutil==7.2.2
Requires-Dist: Pygments==2.20.0
Requires-Dist: pyperclip==1.11.0
Requires-Dist: python-dotenv==1.2.2
Requires-Dist: questionary==2.1.1
Requires-Dist: requests==2.34.2
Requires-Dist: rich==15.0.0
Requires-Dist: shellingham==1.5.4
Requires-Dist: typer==0.26.7
Requires-Dist: urllib3==2.7.0
Requires-Dist: wcwidth==0.8.1
Requires-Dist: Werkzeug==3.1.8
Requires-Dist: platformdirs==4.10.0
Requires-Dist: Jinja2==3.1.6

# HackaProfile
<img src="./assets/icon.png" width=30% alt="HackaProfile logo"></img>

### A simple tool to automatically update Slack (more platforms *SOON*) user profile based on their Hackatime/Wakatime heartbeat!

## Features
- FULLY local (no data leaves your device except for the API calls to update profile)
- FULLY customizable (see the Place holder variables section)
- More features #TODO ~~(I don't wanna write README.md >:3)~~

## installation
### Install pipx
Check [pipx docs](https://pipx.pypa.io/stable/how-to/install-pipx/)

### Install Hackaprofile
```bash
pipx install hackaprofile
hackaprofile setup
```

Then follow the guided setup

## Placeholder Variables
A key feature of HackaProfile is that it allows you to customise your profile however you like (just like how you would change it on Slack/other platforms) BUT it **also allows you to use dynamic values** (i.e. Placeholder variables).

Example
`I am typing {{language}} in {{project}} project` becomes `I am typing Python in HackaProfile project`

-`{{id}}` Some sort of Hackatime id, might be unique?
- `{{created_at}}` When was the Hackatime data last fetched
- `{{time}}` Current time in Unix Timestamp
- `{{category}}`: Category of the Hackatime action
    - communicating
    - ai coding
    - coding
    - writing docs
- `{{project}}` Hackatime project name
- `{{language}}` Shows the current language that that you are working on
- `{{editor}}` Current IDE/Editor
- `{{operating_system}}` The current OS (N.B for MacOS, it shows `darwin`)
- `{{entity}}` Path to the file workng on
- `{{machine}}` Current machine's hostname

## Logic Operators
You could not only dynamically set variables, but you could also **choose how they are represented dynamically*

### If Statements:
`{% if [condition] %} ... {% elif [condition] %} ... {% else %} ... {% endif %}
### Filters:

Transforms the string to lowercase
```
{{string|lower}}
```

Transforms the STRING to UPPERCASE
```
{{string|upper}}
```

Transforms the String into a Title format
```
{{string|title}}
```

### Escaping:
```
{{ "string to be escaped" }}
```
or
```
{% raw %}
string to be escaped
{% endraw %}
```
