Initial commit: Messenger TUI project skeleton
This commit is contained in:
+39
@@ -0,0 +1,39 @@
|
|||||||
|
# Environment
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
|
||||||
|
# Python
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
*.so
|
||||||
|
.Python
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
.venv/
|
||||||
|
|
||||||
|
# Build
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
*.egg-info/
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# OS
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Config (secrets)
|
||||||
|
config.json
|
||||||
|
*.local.yaml
|
||||||
|
credentials/
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
*.log
|
||||||
|
logs/
|
||||||
@@ -0,0 +1,130 @@
|
|||||||
|
# Messenger TUI
|
||||||
|
|
||||||
|
Terminal-based Matrix client for accessing Facebook Messenger via bridge.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
This project connects to a self-hosted Matrix homeserver with a mautrix-facebook bridge, providing a lightweight TUI for messaging on Messenger without the heavy desktop/mobile apps.
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────┐
|
||||||
|
│ Your Server │
|
||||||
|
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
|
||||||
|
│ │ Matrix Homeserver │ │ mautrix-facebook bridge │ │
|
||||||
|
│ │ (Conduit) │◄──►│ │ │
|
||||||
|
│ └─────────┬───────────┘ └──────────────┬────────────┘ │
|
||||||
|
│ │ │ │
|
||||||
|
│ │ Facebook/Meta │ │
|
||||||
|
│ │ Messenger │ │
|
||||||
|
│ │ ◄──── │ │
|
||||||
|
│ │ │ │
|
||||||
|
└─────────────┼───────────────────────────────┼────────────────┘
|
||||||
|
│ │
|
||||||
|
▼ │
|
||||||
|
┌─────────────────────────────────────────────────────────────┐
|
||||||
|
│ Your Laptop │
|
||||||
|
│ ┌─────────────────────────────────────────────────────┐ │
|
||||||
|
│ │ WeeChat TUI │ │
|
||||||
|
│ │ (This Client) │ │
|
||||||
|
│ └─────────────────────────────────────────────────────┘ │
|
||||||
|
└─────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- [ ] Text messaging
|
||||||
|
- [ ] Group chats
|
||||||
|
- [ ] Image/media receive
|
||||||
|
- [ ] Image/media send
|
||||||
|
- [ ] Notifications
|
||||||
|
- [ ] Search
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- WeeChat
|
||||||
|
- Matrix account on self-hosted server
|
||||||
|
- Server-side: Conduit + mautrix-facebook bridge
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
### 1. Install WeeChat
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# macOS
|
||||||
|
brew install weechat
|
||||||
|
|
||||||
|
# Linux (Debian/Ubuntu)
|
||||||
|
sudo apt install weechat
|
||||||
|
|
||||||
|
# Linux (Arch)
|
||||||
|
sudo pacman -S weechat
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Connect to Matrix homeserver
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/weechat plugin load matrix
|
||||||
|
/set matrix.server.your_server_name.homeserver https://your-server.com
|
||||||
|
/plugin reload matrix
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Login
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/matrix certs /path/to/ca-certificate.pem # if self-signed
|
||||||
|
/matrix login your_username your_password
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Bridge your Messenger account
|
||||||
|
|
||||||
|
On the server, configure mautrix-facebook and link your Facebook account.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Basic WeeChat Commands
|
||||||
|
|
||||||
|
| Command | Description |
|
||||||
|
|---------|-------------|
|
||||||
|
| `/buffer list` | List all joined rooms |
|
||||||
|
| `/join #room:server.com` | Join a room |
|
||||||
|
| `/query nick` | Open private chat |
|
||||||
|
| `Ctrl+P / Ctrl+N` | Switch buffers |
|
||||||
|
| `Ctrl+W then n` | Close buffer |
|
||||||
|
| `/set` | View/set options |
|
||||||
|
| `/help` | WeeChat help |
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
### WeeChat Matrix Settings
|
||||||
|
|
||||||
|
```weechat
|
||||||
|
/set matrix.server.default.homeserver "https://your-matrix-server.com"
|
||||||
|
/set plugins.var.dev矩阵.notify.enabled on
|
||||||
|
/set plugins.var.dev矩阵.notify.message on
|
||||||
|
```
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
messenger_tui/
|
||||||
|
├── README.md # This file
|
||||||
|
├── .gitignore
|
||||||
|
├── config/ # WeeChat config snippets
|
||||||
|
│ └── weechat.conf
|
||||||
|
└── scripts/ # Helper scripts
|
||||||
|
└── setup_weechat.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Known Limitations
|
||||||
|
|
||||||
|
- Voice/video calls: Not supported via bridge
|
||||||
|
- Read receipts: Partial support
|
||||||
|
- Some rich media features may not work
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- [WeeChat Quick Start](https://weechat.org/doc/quickstart/)
|
||||||
|
- [mautrix-facebook](https://docs.mau.fi/bridges/python/facebook/index.html)
|
||||||
|
- [Conduit Matrix Server](https://conduit.rs/)
|
||||||
Executable
+23
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Setup script for WeeChat Matrix client
|
||||||
|
# Run this after installing WeeChat
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "Setting up WeeChat for Matrix..."
|
||||||
|
|
||||||
|
# Load matrix plugin
|
||||||
|
weechat --run-command "/plugin load matrix"
|
||||||
|
|
||||||
|
# Server configuration (update these values)
|
||||||
|
SERVER_NAME="your_server_name"
|
||||||
|
HOMESERVER="https://your-matrix-server.com"
|
||||||
|
|
||||||
|
# Set up server
|
||||||
|
weechat --run-command "/set plugins.var.dev矩阵.server.default.homeserver ${HOMESERVER}"
|
||||||
|
|
||||||
|
echo "Setup complete!"
|
||||||
|
echo "Next steps:"
|
||||||
|
echo "1. Update HOMESERVER in this script with your actual server URL"
|
||||||
|
echo "2. Run: /matrix login <username> <password>"
|
||||||
|
echo "3. Bridge your Messenger account on the server"
|
||||||
Reference in New Issue
Block a user