Initial commit. First draft v0.1
This commit is contained in:
212
README.md
212
README.md
@@ -1,2 +1,214 @@
|
||||
# yourls-ui
|
||||
|
||||
Small Qt tray utility for shortening URLs using the **YOURLS API**.
|
||||
|
||||
The application sits in the system tray and allows quickly shortening the URL currently stored in the clipboard.
|
||||
|
||||
It was designed as a lightweight helper for everyday use with a self-hosted YOURLS instance.
|
||||
|
||||
---
|
||||
|
||||
# Features (v0.1)
|
||||
|
||||
- System tray application
|
||||
- Simple configuration window
|
||||
- Uses YOURLS API with **signature authentication**
|
||||
- Reads URL from clipboard
|
||||
- Generates a short URL
|
||||
- Copies the short URL back to clipboard
|
||||
- Shows popup with clickable link
|
||||
- Error reporting with API response
|
||||
|
||||
---
|
||||
|
||||
# How it works
|
||||
|
||||
1. Application starts
|
||||
2. If configuration exists → it goes directly to the **system tray**
|
||||
3. If configuration is missing → **settings window opens**
|
||||
|
||||
From the tray menu you can run:
|
||||
|
||||
```
|
||||
Cut URL
|
||||
```
|
||||
|
||||
The application will:
|
||||
|
||||
1. Read the current clipboard
|
||||
2. Check if the content is a valid URL
|
||||
3. Call the YOURLS API
|
||||
4. Receive a shortened link
|
||||
5. Copy the shortened link back to clipboard
|
||||
6. Show a popup window with the result
|
||||
|
||||
---
|
||||
|
||||
# Configuration
|
||||
|
||||
The settings window contains:
|
||||
|
||||
```
|
||||
API URL
|
||||
API signature
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
API URL:
|
||||
https://example.com/yourls-api.php
|
||||
|
||||
Signature:
|
||||
e484ea32c0
|
||||
```
|
||||
|
||||
⚠️ Important:
|
||||
|
||||
The signature field must contain **only the signature value**, not:
|
||||
|
||||
```
|
||||
signature=e484ea32c0
|
||||
```
|
||||
|
||||
Correct:
|
||||
|
||||
```
|
||||
e484ea32c0
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Tray menu
|
||||
|
||||
Right click the tray icon to access the menu:
|
||||
|
||||
```
|
||||
Cut URL
|
||||
Help
|
||||
About
|
||||
Exit
|
||||
```
|
||||
|
||||
Double clicking the tray icon opens the settings window.
|
||||
|
||||
---
|
||||
|
||||
# Building
|
||||
|
||||
Requirements:
|
||||
|
||||
```
|
||||
Qt 5
|
||||
Qt Widgets
|
||||
Qt Network
|
||||
qmake
|
||||
```
|
||||
|
||||
Build:
|
||||
|
||||
```bash
|
||||
qmake
|
||||
make
|
||||
```
|
||||
|
||||
Or open `yourls-ui.pro` in **Qt Creator** and build normally.
|
||||
|
||||
---
|
||||
|
||||
# Project structure
|
||||
|
||||
```
|
||||
main.cpp
|
||||
Application entry point
|
||||
|
||||
mainwindow.h / mainwindow.cpp
|
||||
Main application window
|
||||
Tray integration
|
||||
UI logic
|
||||
|
||||
mainwindow.ui
|
||||
Qt Designer UI for settings window
|
||||
|
||||
yourlsclient.h / yourlsclient.cpp
|
||||
YOURLS API client
|
||||
Handles HTTP requests and responses
|
||||
```
|
||||
|
||||
The YOURLS API communication is encapsulated in `YourlsClient`.
|
||||
|
||||
---
|
||||
|
||||
# API call
|
||||
|
||||
The application performs a request similar to:
|
||||
|
||||
```
|
||||
GET /yourls-api.php
|
||||
?action=shorturl
|
||||
&format=json
|
||||
&signature=<signature>
|
||||
&url=<url>
|
||||
```
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
https://example.com/yourls-api.php?action=shorturl&format=json&signature=ABC123&url=https://example.com
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Future ideas
|
||||
|
||||
Possible improvements for future versions:
|
||||
|
||||
### Hotkey support
|
||||
Global hotkey to trigger URL shortening.
|
||||
|
||||
### Clipboard watcher
|
||||
Automatically detect URLs copied to clipboard.
|
||||
|
||||
### Tray notifications
|
||||
Use system notifications instead of popup dialog.
|
||||
|
||||
### Recent history
|
||||
Store last shortened URLs.
|
||||
|
||||
### Custom alias
|
||||
Allow specifying custom short URL alias.
|
||||
|
||||
### Open YOURLS admin
|
||||
Add tray menu entry for opening YOURLS admin panel.
|
||||
|
||||
### Packaging
|
||||
Provide:
|
||||
|
||||
```
|
||||
AppImage
|
||||
.deb package
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Version
|
||||
|
||||
```
|
||||
v0.1
|
||||
```
|
||||
|
||||
Initial working release.
|
||||
|
||||
---
|
||||
|
||||
# Author
|
||||
|
||||
```
|
||||
deeaitch
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# License
|
||||
|
||||
GPL
|
||||
Reference in New Issue
Block a user