Activity

artur33

Added/Fixed:

  • Parses HTML email parts while preserving the raw HTML content + generates a plain text fallback using the ‘html2text’ library
  • New ‘open’ command that opens an email (HTML or text) in the system browser (allowing proper viewing of complex HTML emails when the terminal view is baddd)
  • Composer modified for reply editor: now prefills quoted content from the original message
  • New ‘forward’ command to forward emails (automatically includes original message content)
  • Minor internal fixes

Note: Initially I planned to use the w3m CLI browser to render HTML emails directly in the terminal, but nothing was really working properly. In the end I went with two separate approaches: terminal display uses ‘html2text’, and the new ‘open’ command allows viewing the full HTML version in the browser.

Next:

  • Attachment download and send
  • Threaded email view
  • Account management
  • Settings
Attachment
Attachment
Attachment
1

Comments

Cyber Ninja
Cyber Ninja about 6 hours ago

cool project

artur33

Added/Fixed:

  • Commands (‘next’/‘prev’/‘page’) to navigate between pages for now it’s still 20 emails per page (will do settings laterrr)
  • Star and unstar emails
  • Mark emails as unread
  • Delete emails (moves to trash)
  • Archive emails DOESN’T WORK FOR SOME REASONN I will fix in the next devlog if I can bruh
  • Automatically detects default labels used (this is because of different languages problems)
  • Shows “To” field when viewing sent emails
  • Starred messages visually highlighted in the inbox + star collumn
  • Prevents occasional decode errors when parsing messages
  • Fixed some other problems and sidebar now displays as the same height as the email part of the layout

Note: this took some time because of the ‘archive’ problem and some “gmail language” problems, hm (that’s why I added the default labels func and dict)…

Next:

  • Display HTML emails properly
  • Attachment download and send
  • Account management
  • Settings
0
artur33

Added/Fixed:

  • Email search functionality implemented (search results update the active message list)
  • New ‘search’ command
  • Labels now integrated directly into the main inbox view layout (responsive for wider terminals)
  • Small layout and rendering fixes

Next:

  • Star, delete, archive and mark unread actions
  • Display HTML emails properly
  • Attachment download and send
  • Account management
  • Settings
Attachment
0
artur33

Added/Fixed:

  • Label support implemented (lists available labels over the inbox, switching between labels using the ‘label’ command + fixed all the million IMAP problems -> that’s because I’m baka dev, the fix was easy, just separating the ‘name’ and ‘display’ in get_labels func…)
  • Message flags now fetched from IMAP
  • Unread emails are now bold in the UI inbox
  • Emails automatically marked as “seen” when opened
  • Threaded reply fixes (but still incomplete) (replying to emails preserves parent references)
  • Minor rendering improvements in the inbox and other stuff

Next:

  • Email search functionality
  • Star, delete, archive and mark unread actions
  • How can I display HTML emails…?
0
artur33

Added/Fixed:

  • Email compose functionality implemented (interactive terminal editor to write new emails (used prompt_toolkit library))
  • SMTP integration for sending emails
  • Reply support added (automatically fills recipient and subject)
  • Message IDs now displayed in inbox listing
  • Screen clears before commands for a TUI-like flow

Next:

  • Switch between Inbox, Sent, Spam, ecc.
  • Read indicators and behaviour
  • Email search functionality ye
0
artur33

Added/Fixed:

  • Inbox and email UI rendering using the “rich” library (table layout and formatted email display) (ui.py)
  • Inbox fetch limit increased (I’ll need to make a setting for this)
  • New ‘view’ command to open a specific email by ID
  • Email parsing improvements
  • Date formatting func

Note: I discovered the “rich” library while working on the UI and… wow, it saves a lot of time for tables. Feels much more polished with very little effort… incredible, why I haven’t discovered it earlier bruhh :/

Next:

  • Add compose and send email functionality (with SMTP)
  • Switch between Inbox, Sent, Spam, ecc.
Attachment
0
artur33

Note: This project started as a small experiment to see how practical a CLI email client could be lol, I don’t have much time left so I think I will need to grind it, ehe

Added/Fixed:

  • Basic project structure split into modules (main, mail, auth and utils)
  • Simple command loop with command parsing (basically the same as one of my previous projects)
  • Gmail IMAP integration
  • Account setup flow added for first run (Email and password are stored securely using the system keychain (via the ‘keyring’ Python library), and the credentials automatically load on subsequent runs.
  • Login using Google App Passwords
  • Inbox basic fetching implemented (retrieves the latest emails from the inbox (for testing noww))
  • Colored status messages (info, success, error)
  • Other minor additions

Next:

  • Implement a proper UI to display the inbox
  • Add compose and send email functionality (with SMTP)
Attachment
0
artur33

Shipped this project!

Hours: 28.92
Cookies: 🍪 647
Multiplier: 22.37 cookies/hr

Shipping go-drop, a CLI file sharing tool written in Go :)
It lets you serve any file, folder, or text snippet over your local network or expose it to the internet via a tunnel (localhost.run) straight from your terminal.
It started as a tiny personal tool (because I needed to move some files and did’t have a usb drive :/) and I just wanted to transfer files without dragging them through Discord or Drive. It turned into a proper CLI app (kinda…) with a live Bubble Tea TUI, HTTPS with self-signed certs, receive mode, password, file previews in the browser, online tunneling, and QR codes that warn you when your terminal is too small to display them lol.
The hardest part was definitely the Bubble Tea TUI. I lost so much time just understanding how its everything works and restructuring the whole codebase around it. Everything has to flow through messages and I kept breaking things. I’m still not 100% happy with how clean it ended up, but it works, so that’s gud :D
I’m proud that this actually feels like a tool and the online tunnel especially I thought that was going to be difficult to implement and it ended up being easy yeeehh.
The project also taught me a lot about Go, networking, TLS, TUI, and how to build something that just works (in Go). But I still prefer Python after all of this, hihi :)

artur33

Note: Last devlog for this project. This started as a small personal tool to quickly transfer files, but it turned into a (kinda, lol) CLI application. Along the way I learned a lot about Go, a bittt of networking and TUI. The project definitely grew more complex than I initially expected :D

Added/Fixed:

  • QR generation moved fully into the terminal UI
  • Prints warning if the terminal window is too small
  • Properly respects the noqr CLI flag
  • Displays truncated file list before transfer preparation
  • Cleans up printed lines correctly after preparation
  • Active transfer tracking added (server now waits for compleating all the downloads before shutdown)
  • Added text preview support (there was a bug, bruh)
  • Fixed CSS word-wrap issues for long filenames
  • Linux clipboard support improved with “xsel” fallback
  • Fixed filename collision logic in receive mode
  • Wrote the README (with AI help)
  • Created all the executables (I can’t test on MacOS, hope it works, ye)
  • Minor internal fixes and cleanup
  • Tested if everything works (Windows and Linux (Arch))

Next:

  • SHIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
Attachment
0
artur33

Added/Fixed:

  • File preview system implemented (for images and PDFs)
  • Supports sharing entire directories (auto-zip)
  • Flag to share text (transformed into a .txt file)
  • Flag to specify a custom filename for the shared content
  • Version Flag
  • Progress spinner added for longer operations (zipping / preparation)
  • Download flow changes and refactor (for the success page)
  • Web success page added to trigger the download
  • Dark mode added to pages
  • Internal improvements, little changes and refactors

Next:

  • Fix bugs and everything
  • Build for every OS
  • Shippppppppppppppppppppp
0
artur33

Added/Fixed:

  • Online tunnel support implemented (exposes local server to the public internet) (tunnel.go)
  • Clipboard integration (all kind of URL automatically copy to clipboard)
  • Public URL displayed in the TUI and copied to clipboard too
  • Compact QR rendering (+ UI updated to show public QR)
  • Download page: displays filename, file size, and detected MIME type
  • Minor internal refactors related to tunnel stuff and UI updates

Note: I initially wanted to use ngrok for public exposure, but it ended up being more complex than expected (auth setup and other flow complications). Implementing the localhost.run tunnel flow turned out to be cleaner and simpler. I honestly thought this would be much harder to implement tho.

Next:

  • File preview in browser before downloading (images, text, PDF)
  • Folder support (auto-zip)
  • Dark mode for web pages
  • Fix bugs and everything
  • Build for every OS
  • Shippp
0
artur33

Added/Fixed:

  • Optional HTTPS mode implemented (generates self-signed certificate automatically and then uses TLS listener)
  • Command-line Arg: enable TLS
  • Displays certificate fingerprint in UI foe verification
  • File collision handling in receive mode (Prevents overwriting existing files)
  • Silenced default server logs (prevents UI bugs)
  • Minor internal refactors related to TLS setup

Next:

  • Public share (public URL)
Attachment
Attachment
0
artur33

Added/Fixed:

  • Integrated Bubble Tea TUI (ui.go)
  • UI now surfaces progress, status updates, and errors in real time
  • Upload progress streamed into the UI via events
  • Download completion, limits reached, and errors now emit UI messages
  • Moved QR generation to a dedicated function
  • Cleaner separation between server logic and UI (sometimes not, but I tried :/)
  • Added browser “success page” after upload (redirect flow)
  • Minor flow and stability fixes related to event handling
  • Bugs and problem fixes (a lot)

Note: This was honestly really difficult. I lost a lot of time understanding how Bubble Tea works and restructuring everything around events, I’m not fully happy with the result, but it works and it’s fine for now ig

Next:

  • Certificates
  • Public share (public url)?????????????????????? I’m so cooked…
0
artur33

Shipped this project!

Hours: 36.03
Cookies: 🍪 663
Multiplier: 18.41 cookies/hr

After ~2weeks of working, I’m shipping Root-Dungeon.
It’s a dungeon crawler where your real file system is the game world. Rooms are actual folders on your Desktop, enemies and items are .txt files you open and read, and you use the codes you find in them inside the game window to fight and progress.
Started as an experiment or idea and ended up with a game with combat (both timing based and projectile dodging), locked rooms, leveling and inventory system, combo tracking, achievements, save/load, sound effects, and a debug panel.
The hardest part was definitely the boss battle. The projectile dodge mechanic was the most complex thing I’ve built, and I used AI to help with that part specifically. The rest of the combat and dungeon logic I mostly figured out on my own, which I’m happy about.
I’m proud that the core idea actually works and feels fun: exploring real folders, opening files to find enemy codes, and then fighting them in the window is well, not unique, but there arent’t a lot of projects like this, I really like those kind of games that interact with the OS.
So at the end it went from a folder creation to something that actually feels like a game :)

artur33

Note: Last devlog for this project. I’m honestly really happy with how it turned out, it evolved from an experiment into something playable and interesting I think.

Added/Fixed:

  • Achievements system fully integrated with a separate achievement window (achievements.py)
  • Player death tracking implemented for achievement needs
  • Defeat during the boss battle, max your HP now
  • Used keys are now removed after unlocking rooms
  • Consumed potions are now removed after use
  • Locked room unlock window now displays available rooms
  • Player name prompt at game start
  • Formatting corrections
  • Balance tweaks
  • Proper path handling for sounds, saves, and icon when frozen
  • Wrote the README (with AI help)
  • Created the executable (with Pyinstaller ‘socialnet.spec’)
  • Added ‘requirements.txt’
  • Minor internal fixes and cleanup
  • Tested if everything works

Next:

  • SHIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
Attachment
0
artur33

Added/Fixed:

  • Receive mode implemented to accept file uploads
  • Command-line args: flag to enable receive mode and save uploaded files save path
  • Web ‘upload’ interface added: “drag and drop” support and progress bar
  • Prints (in console) upload progress (transfer)
  • Same QR code generation func for receive mode webpage

Next:

  • UI
  • Certificates?
  • Public share (public url)?????????????????????? I’m so cooked…
0
artur33

Added/Fixed:

  • Multi file sharing support via, saved in RAM, ZIP archive (automatically creates a ZIP when multiple input paths are provided)
  • Command-line Arg: configurable archive name for generated ZIP
  • Transfer size and file listing feedback
  • Logging improvements: prints client IP and transfer activity, prints waiting/progress messages

Next:

  • Upload mode (receive files from other devices)
  • UI…
0
artur33

Added/Fixed:

  • Token access control for downloads
  • Command-line Arg: password protection layer (POST form (web.go) authentication before download)
  • Command-line args: IP download limiting and timeout auto shutdown
  • Shutdown reason codes (completed, timeout, error)

Next:

  • Allow sharing multiple files
  • Maybe a UI? lol
Attachment
Attachment
Attachment
0
artur33

Added/Fixed:

  • Command-line args: custom port selection, download limit control and option to disable QR code output
  • Server shuts down automatically after reaching the specified download (fixed the behaviour for implementing the new args func)
  • Improved CLI output clarity (colored status messages)
  • Explicit display of the download URL
  • Added cache control headers to prevent unwanted caching (this one fixed the automatic shutdown)

Next:

  • A password for accessing download
  • Allow sharing multiple files
0
artur33

Note: This project started as a quick personal tool to transfer files without external services, and as a way to learn Go, ehe, I’m not really good at this language

Added/Fixed:

  • Temporary HTTP file sharing implemented
  • Automatic host IP detection
  • Terminal QR code generation (trough this package: go-qrcode)
  • Server automatically stops after the file is downloaded once

Next:

  • Add optional flags like port selection for example
  • Some kind of status of the file on host
  • A password for accessing download
  • Allow sharing multiple files
0
artur33

Added/Fixed:

  • JSON based save & load system implemented (save and restore data and game state, DON’T DELETE DUNGEON FOLDER AND OTHER STUFF IN THERE)
  • UI buttons added for saving and loading (and achievements -> still wip)
  • Boss attempts and defeats tracked across runs (for achievement, still wip)
  • Minor other changes

Next:

  • Add achievement system for replayability
  • Bug fixes and final stability pass
  • Shippppppppppppppppppp
0
artur33

Added/Fixed:

  • Runtime gameplay stats system (tracks run duration, damage dealt and damage taken, hit timing accuracy and breakdown, potions used, enemies defeated and max combo reached)
  • Boss battle improvements: Boss attack-bar UI added with timing based hit logic (same as for normal enemies)
  • Sound feedback system (hits, misses, attacks, level-up, victory and defeat sounds added) (sounds.py) [sounds in the ‘sounds’ folder]
  • End-of-run statistics displayed on victory (Game ending)
  • UI layout adjustments for battle and endgame stats

Next:

  • Add save and load (in a json file ig)
  • Add achievement system for replayability
  • Bug fixes and final stability pass
  • Shippppppppppppppp
0
artur33

Added/Fixed:

  • Boss integrated into dungeon generation
  • Boss battle system introduced with a projectile-based fight (heart-dodging movement and projectile attack patterns)(inside ‘battle.py’ as another class)
  • Victory (still WIP, I need to make an endgame statistic) and defeat handling for boss battle
  • Legendary Sword removed from direct item spawns (this was a bug)
  • Other minor fixes and changes

Note: Boss battle system is still incomplete — victory flow has bugs and the player attack turn is not implemented yet. This devlog marks progress after 4 hours… I am tiredddd.

Next:

  • Finish the boss battle system
  • Add end game statistic after defeating the boss
  • Maybe add sound effects
  • Bug fixes and final stability pass
  • Shippp :)
0
artur33

Added/Fixed:

  • Debug panel integrated (F1 keybinding to open debug panel)(debug.py):
  • God Mode toggle (infinite HP)
  • One-hit-kill toggle
  • Full Heal button
  • Add XP func
  • Give all keys button
  • Player last HP tracking added to detect external HP changes
  • Battle UI now forces refresh when HP changes outside normal turn flow (potions/debug)
  • Fixed key naming mismatch (renamed corridor key and aligned enemy drop)
  • Minor internal refactors related to debug hooks and battle state synchronization

Next:

  • Implement the final Boss Battle, an Undertale-style battle system for the Boss, now I will work on this, oh myyy…
Attachment
0
artur33

Added/Fixed:

  • Combo system implemented for battles: perfect hits increase damage and grant bonus XP (+ track of max combo)
  • Math puzzle based room unlocking integrated into progression (puzzles.py)
  • Potion usage fully implemented (inventory tracking and healing logic)
  • Legendary Sword system added (Legendary Vault unlock logic)
  • Miniboss marking and handling
  • Room-prefixed unique code generation (different from only numbers like before)
  • Reset func for full player + dungeon state reset
  • Folder lock checks now propagate up for directory paths (full ones)
  • Startup and cleanup flows improved to properly reset everything (before there were errors because of this)
  • Enemy data reorganized (for different Enemy, Miniboss and then Boss -> next devlog)
  • Minor internal refactors and stability fixes

Next:

  • Implement the final Boss Battle, I thought of making an Undertale-style battle system for the Boss, at least I will try to do it…
  • I also noticed that I need some kind of cheat panel (or debug) to speed up playtesting and bug finding (infinite health and “one hit kill” at least)
0
artur33

Added/Fixed:

  • Item spawning and loot system integrated in the dungeon rooms (items.py)
  • Code protected item files with validation before collection (same as for the enemies and room unlock)
  • Item effects system updating player stats and inventory
  • Expanded dungeon content with additional item and key drops tied to enemy encounters
  • Combat balance adjustment: defense now fully applied in damage calculations
  • UI updated to support item collection and potion interaction (still WIP)
  • Minor layout tweaks and internal refactors

Next:

  • Add combo system to battles
  • Implement potion usage functionality
  • Design and integrate puzzle mechanics
  • Fix problems and bugs
0
artur33

Added/Fixed:

  • Battle system improvements with proper victory callbacks and end states
  • Locked rooms logic: now requiring specific keys to access
  • Enemies are now locked to rooms and correctly removed after defeat
  • Player leveling
  • Inventory management expanded to get keys and drops
  • Clearer defeat and victory feedback in battles
  • Minor internal refactors related to battle flow and dungeon progression

Next:

  • Plan and implement additional items (healing items, weapons, buffs, etc.)
  • Expand dungeon with more rooms and enemies (new keys and game logic)
0
artur33

Added/Fixed:

  • Timing based attack system with visual attack bar
  • Dynamic HP bars for both player and enemies, based on max HP
  • Added a welcome (README) file at dungeon start to guide the player
  • Minor internal refactors related to battle and battle window UI

Next:

  • Enhance and complete the battle system (enemy file removal after defeat, clearer end states (player’s level progression))
  • Implement locked rooms and access logic
  • Design items, keys, and game logic
0
artur33

Added/Fixed:

  • Enemy spawning logic integrated into dungeon room creation (the start of the game) (enemies.py)
  • Each enemy is assigned a unique fight code
  • Fight system for now allows initiating battles via code, still WIP (battle.py)
  • Now using a dictionary to store game stats
  • Added basic quest tracking in the main UI
  • Minor UI tweaks and internal refactors

Next:

  • Continue with the battle system (will make a classic timing-based “click in time to deal more damage” thing, for now maybe, ehe)
  • Design items, keys, and game logic
Attachment
0
artur33

Added/Fixed:

  • Improved main window UI layout with clearer separation (using frames) between title, stats panel, and game log area
  • Added a scrollable game log to display game events and actions, later
  • Player stats now update and logic ( in player.py)
  • Dungeon cleanup/reset with confirmation dialog
  • Refactored dungeon creation logic into external module (dungeon.py)
  • New buttons: ‘Unlock Room’, ‘Fight Boss’ and ‘Cleanup’
  • General UI cleanup and small internal refactors

Next:

  • Add enemy spawning logic
  • Plan and implement fight mechanics, hm…
  • Design items, keys, and game logic
Attachment
0
artur33

Added/Fixed:

  • Initial Tkinter UI (main.py) with a main window and primary controls: ‘Start Game’, ‘Open Folder’ and ‘Fight’ (still placeholder WIP)
  • Dungeon folders creation logic
  • Created config.py (just for the path for now)

Note: I’m still thinking about the project structure so there could be changes and refactors

Next:

  • Complete the main game windows UI
  • Implement player stats (HP, level, inventory, etc)
  • Add enemy spawning logic
Attachment
0
artur33

Shipped this project!

Hours: 85.81
Cookies: 🍪 2445
Multiplier: 28.5 cookies/hr

After a month of working on it, I’m shipping CLI-SocialNet
It’s a “full” social network platform (similiar to Twitter (X)) that runs in a terminal.
Started as a way to learn SQL databases and ended up doing a lot of features and commands: posts, comments, likes, follows, DMs, polls, hashtags, an XP system and even ASCII art in posts (conversion).
The hardest part was probably the fact that I was getting lost in my own codebase as it grew, I had a lot of files and implementing new functionality became a bit complex. The MongoDB part was also challenging (I used the most AI in there (MongoDB) to speed things up after already learning what I wanted from SQL).
I’m proud of the result, of course, it actually feels like a real social network. Maybe it’s not the most original thing to make, but I’ve done it on my own. The project taught me how to build “big” projects (since I think this is my biggest project?) and try not to get lost in the codebase lol

artur33

Last devlog for this project, it was a good one, I think I’ve learnt a lot about SQL databases (Which was the main goal for me) and yeah, it was a big project (at least for me, hehe), I’m very happy and proud ^^

Added/Fixed:

  • Refactored configuration handling with a dedicated loader module (and updated all config references in other files) (config_loader.py)
  • Improved ‘help’ command output for better command viewing
  • Adjusted post rendering alignment
  • Wrote the README (with AI help)
  • Created the executable (with Pyinstaller ‘socialnet.spec’)
  • Added ‘requirements.txt’ and ‘config.json’
  • Removed ‘config.py’
  • Minor internal refactors and cleanup

Next:

  • SHIPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
Attachment
0
artur33

Added/Fixed:

  • Reporting system for posts, comments, and users
  • User command to submit reports: ‘report’
  • Admin commands to review, resolve, or dismiss reports: ‘admin reports’, ‘admin resolve’ and ‘admin dismiss’
  • Minor internal refactors related to moderation

Next:

  • Fix problems/bugs
  • Make an executable (or smth like that)
  • Shipppppppppppppppppppppppppp
0
artur33

Added/Fixed:

  • XP system with tracking for user interactions (posting, liking, commenting, reposting and following)
  • Achievements system and rewards for them
  • Leaderboard to rank users
  • Terminal width customization (in settings) for more flexible UI
  • New commands: ‘xp’, ‘achievements’ and ‘leaderboard’
  • Minor internal refactors and fixes related to visibility (users can always view their own content even if private -> this was a bug in the sqlite database)

Next:

  • Fix problems/bugs
  • Make an executable (or smth like that)
  • Shipppppppppppppppppp
0
artur33

Added/Fixed:

  • User settings system with customizable preferences
  • Appearance settings: banner color and prompt color
  • Display settings: posts per page
  • Notification preferences settings
  • New commands: ‘settings’ and ‘setting’
  • Minor internal refactors and fixes related to settings (like the login and logout commands and all the banner/prompt colors) and notifications

Next:

  • Add levels and xp system (more interactions more profile level)
  • Fix problems/bugs
  • Make an executable (or smth like that)
  • Shipppppppppppp
Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
0
artur33

Added/Fixed:

  • Poll support for posts: users can create polls, vote, and view results/own polls
  • Both database (Sql and Mongo) schema updates to support polls
  • Post display enhancements to correctly render poll options (‘utils.py’)
  • Changed the ‘whoami’ command (a bit)
  • New commands: ‘postpoll’, ‘votepoll’ and ‘mypolls’

Next:

  • Add some small settings features
  • Maybe add levels and xp system (more interactions more profile level)
  • Fix problems/bugs
  • Make an executable (or smth like that)
  • Shippppp
Attachment
0
artur33

Added/Fixed:

  • Completed the MongoDB database backend file
  • Resolved all compatibility issues between MongoDB and the existing codebase by aligning MongoDB behavior with existing commands and “feature expectations”

Note: This devlog marks the end of the MongoDB work. I did use AI during this, mainly to fix bugs and problems, and yes… a lot of tab autocomplete
No new features were added here: the focus was entirely on making MongoDB fully compatible with the rest of the project without breaking everything, yeah

Next:

  • Add polls in posts
  • Possibly add some small settings features
  • Maybe add levels and xp system (more interactions more profile level)
  • Fix problems/bugs
  • Make an executable (or smth like that)
  • After that, probably, the project will be ready for shipping
0
artur33

Added/Fixed:

  • Addad a switch for database backend (sqlite3 - MongoDB)
  • Expanded (and still working on) MongoDB logic [for now: users, posts, sessions, likes]
  • Standardized post ID handling (just by making it an int everywhere) across ‘main.py’ commands.

Note: This devlog is mostly to document progress. I’m still working on the MongoDB backend and not really adding new features… just copying the sql database logic and making sure things don’t explode.

Next:

  • Continue working on the MongoDB backend
  • Make things work :p
Attachment
0
artur33

Added/Fixed:

  • Private account (no visibility of content)
  • Access control updated to allow content viewing of private users only if mutual followers (can_view_content func)
  • Registration rate-limit per device (hash composed by hostname-MACadress-system) to reduce spam registers
  • Large ASCII ‘big text’ posts support + preview command
  • Improved login failure handling: account lock after 5 wrong password attempts.
  • Started working (a little little bit) on the MongoDB database
  • New commands: ‘postbig’ and ‘bigtext’
  • Internal refactors and bug fixes related to privacy, authentification and posts

Note: This was probably the most complicated devlog to make so far. A lot of different files and functions, I’m starting to get lost in my own codebase, and honestly… I’m tireddd, ahhh…

Next:

  • Continue/Complete the MongoDB database layer file ‘database_m.py’ (Likely use some AI help for this, since the main goal was learning about SQL-like databases. Also because I alredy did some MongoDB projects so this is just to speed up things, but I will try to do my best)
0
artur33

Added/Fixed:

  • Command alias system for user shortcuts (of commands)
  • Post search functionality to find content by query
  • User search functionality to find other users
  • Mention system with automatic detection during post creation
  • New commands: ‘search’, ‘usersearch’, ‘mentions’, ‘alias’ and ‘unalias’
  • Minor internal refactors and fixes

Note: I NEED TO START WORKING AT MONGO DATABASEEE

Next:

  • Fix and do the TODO’s (private profiles and user creation)
  • Large ASCII text might be cool, but uhhh, aaaaaaa
  • Once again… maybe start working on a MongoDB database aaaaaaaaaaaaaaaa
Attachment
Attachment
Attachment
Attachment
0
artur33

Added/Fixed:

  • Hashtag system with automatic detection during post creation
  • Trending hashtags
  • Hashtag search functionality
  • Help message (for non-logged users)
  • Changed banner (lol)
  • New commands: ‘hashtag’, ‘htrending’ and ‘hsearch’

Note: This devlog was written a bit in a rush again after spending most of the time implementing the hashtag system and fixing edge cases… sowwy

Next:

  • Add finally a command for creating aliases of existing commands
  • User mentions
  • Possibly start working on a MongoDB database option (if nothing comes to my mind)
Attachment
Attachment
0
artur33

Added/Fixed:

  • Repost system for reposts and quote reposts
  • Bookmarking system for saving posts
  • Post pinning on user profiles (Profile displays pinned posts)
  • Conversation closing command for direct messages
  • Notification clearing command
  • New commands: ‘repost’, ‘unrepost’, ‘quote’, ‘reposts’, ‘pin’, ‘unpin’, ‘pinned’, ‘bookmark’, ‘unbookmark’, ‘bookmarks’, ‘closedm’ and ‘clearn’
  • Minor internal refactors and fixes (+ feed and post metadata updated to include repost info)

Note: hashtag functionality will he added in next devlog because I already spent a lof of time doing all of this and I need to make a devlog aaaaaaaa…

Next:

  • Try to implement the hashtag system for post discovery
  • Consider adding command aliases command
  • Possibly start working on a MongoDB database option
0
artur33

Added/Fixed:

  • Notification system for user interactions: likes, comments, follows, and direct messages
  • Unread notification and unread message counts displayed directly in the prompt
  • DM: ‘messages’ and ‘inbox’ UI change
  • Admin “panel” UI change
  • New command: ‘notifications’
  • Minor internal refactors and database schema updates related to notifications and messaging and UI (utils)

Next:

  • Add a repost system
  • Add pinnable posts on user profiles
  • Add post bookmarking /saving
  • Maybe a hashtag system for post discovery (idk how… lol)
Attachment
0
artur33

Added/Fixed:

  • Improved post, comment, and profile display with bordered UI and new structure (text wrapping and Unicode alignment for correct rendering)
  • Comment counts added to posts
  • Profiles now display recent posts

Note: A lot of time was spent making the UI work properly and display everything correctly. I initially tried to make all the layout and formatting logic on my own, but ended up using AI to help reason through alignment, borders, and edge problems/bugs.

The notification system was not implemented in this commit, as development was focused on UI :/

Next:

  • Finish UI changes: for admin views and direct messages
  • Add the notification system
1

Comments

janekmusin
janekmusin about 2 months ago

Looks great, I’m looking forward to release

artur33

Added/Fixed:

  • Private account support -> users can toggle private status
  • Direct messaging system (“user-to-user” private communication): Inbox and message viewing logic for direct messages
  • Comment display on single posts (comment count and comments)
  • Minor internal refactors and fixes
  • New commands: ‘dm’, ‘messages’, ‘inbox’ and ‘private’

Note:
UI improvements were not made again… I didn’t really have the time to think about it, so this part is still postponed for the next devlog (or at least hope so)

Next:

  • In the next devlog, focus will (finally) be on a proper UI redesign and cleanup
  • Possibly add a notification system
Attachment
0
artur33

Added/Fixed:

  • Post comments support: add, view, and delete comments
  • Admin log system to track moderation actions
  • User verification (just the verified -> doesn’t change anything, for now) system and admin privilege management (an user can become an admin now)
  • Minor internal refactors and bug fixes related to comments and moderation logic
  • New commands: ‘admin makeadmin’, ‘admin removeadmin’, ‘admin verify’, ‘admin unverify’, ‘admin logs’, ‘comment’, ‘delcomment’, ‘comments’

Note:

UI improvements were not made. Development was slowed due to some “implementation challenges” for the comment system, especially regarding comment IDs (I’m still not that good at databases…)

Next:

  • Enhance “comment” commands (current implementations is very basic)
  • Finally the UI cleanup and visual improvements (maybe)
  • Adding direct messages between users
Attachment
0
artur33

Added/Fixed:

  • ‘ascii.py’ for image-to-ASCII conversion [I’ve spent a bit of time to undestand how to make it work…]
  • Image support for posts with automatic ASCII art conversion and display
  • Avatar management system with ASCII profile pictures
  • Different feeds (personal and global): Personal feed (showing posts from followed users) and Global feed (explore feed for “new” content)
  • Refactored admin command structure in ‘main.py’ (now through subcommands)
  • Rate-limit for posting posts
  • Minor internal refactors and bug fixes related to posts, profiles, and feeds
  • New commands: ‘feed’, ‘explore’, ‘postimg’, ‘posturl’, ‘avatar’, ‘avatarurl’, ‘removeavatar’

Next:

  • Add comments support for posts
  • Do an admin log/audit system
  • Allow users to become admins
  • Some kind of user verification features
  • General UI cleanup and improvements [it really doesn’t look great right now…]
Attachment
0
artur33

Added/Fixed:

  • ‘admin.py’ and ‘config.py’ (currently only used for default admin password)
  • Default Admin user creation
  • Admin management system and functionality: ban/unban users, delete posts, and basic admin dashboard
  • “User” table changes (to manage account banning, ecc.)
  • Improved session validation and user feedback on moderation actions
  • Profile command with full profile display functionality
  • Following/Followers lists support to view who a user is following/who follows the user
  • New commands: ‘profile’, ‘following’, ‘ban’, ‘unban’ and ‘admin_delete’
  • Modified command: followers -> modified logic (similar to ‘foolowing’ command)
  • Minor bugs fixed

Next:

  • Image posting with automatic transformation into ASCII art
  • ASCII profile pictures (same logic as the previus lol)
  • Improve the current home feed and split it into a ‘Home’ and an ‘Explore’ feed, I think
0
artur33

Note: Profile-related commands and features are not fully completed yet. Work on them was temporarily paused to write this devlog, since it’s been a long time since the last one.

Added:

  • Created social.py (for social related functions)
  • Profiles with all the information about the user: id, username, display_name, bio, status, location, website, created_at, followers_count, following_count and posts_count
  • Follow system: unfollow users and track followers (followers listing and count)
  • Refactored posts display logic to improve clarity
  • Moved ‘displayname’ func in social.py
  • Profile editing commands: bio, status, location, and website
  • Social commands: unfollow, followers
  • Fixed database calls for supporting the new behaviour

Next:

Finalize profile commands, adding admin user (and commands) and enhance user feed/home

0
artur33

Initially, I wanted to store likes directly in the ‘posts’ table, but while working, I realized it would be cleaner to separate tables…
Added:

  • Like system and tracking (+ related database changes): ‘like’, ‘unlike’ and ‘likes’ commands
  • ‘Follow’ command (needs to be finished by adding the unfollow and user profiles)
    And yeah, I need to finish the ‘follow system’ and make profiles
Attachment
0
artur33

Added:

  • Post management features (posts.py): create, delete, view posts and user feed;
  • ‘post’, ‘viewpost’, ‘deletepost’ and ‘myposts’ commands (and ‘home’ function modified);
  • ‘displayname’ command and functionality;
  • ‘validate_session’ function and integration;
  • ‘show_status’ function for ‘whoami’command.
    Fixed database table creation bug (caused by the timestamp).
    Will work now on the like and follow system…
Attachment
0
artur33
  • Improved feedback messages by adding custom prints functions;
  • Modified authentication system by adding session management (not fully complete);
  • Added banner and a raw ‘home’ command.
    Now I will FINALLY start working on posts and on the homepage ^^
Attachment
0
artur33

Refactored authentication and added “utils.py”.
Added: ‘changepassword’ command.
Improved feedback messages (because I want to make different types of print functions for errors, warnings, info, ecc.) -> I will work on this now.
I want to finally start working on the homepage and the postsss

Attachment
0
artur33

I modified the user authentication system:
User registration and login with validation and all the authentication system is now on a separated file “auth.py
Added:

  • Logout functionality
  • Account deletion
  • Whoami command
  • Enhanced command parsing in “main.py”
  • Close database connection on exit (hehe, I forgot to do it previously)
Attachment
0
artur33

Added first implementation of user registration and login functionality, everything works trough a SQLite3 database (I’m new at working with SQL-based databases)

Attachment
0