Suri banner

Suri

23 devlogs
48h 13m 41s

Do you hate slack desktop? Is it really slow for you like it is for me? Well fuck it I hate slack desktop and it's lag so I'm making it myself. HACKCLUBS SLACK SERVER IS HACKCLUB.ENTERPRISE.SLACK.COM THE HACKCLUB.SLACK.COM IS PRE MIGRATION AND WIL…

Do you hate slack desktop? Is it really slow for you like it is for me? Well fuck it I hate slack desktop and it’s lag so I’m making it myself. HACKCLUBS SLACK SERVER IS HACKCLUB.ENTERPRISE.SLACK.COM THE HACKCLUB.SLACK.COM IS PRE MIGRATION AND WILL NOT WORK IT NEEDS THE RIGHT SERVER also dropped support for macos it doesnt work for sum reason i dont got mac to fix so cope cwy

This project uses AI

I did use sum ai for optimizations and debugging because well im using a undocumented fucking dogshit api by slack and also im kind of dumb too

Demo Repository

Loading README...

Your Friendly Neighboured AVCAP Member Gayzzy

Shipped this project!

Hours: 46.83
Cookies: 🍪 1136
Multiplier: 20.23 cookies/hr

I made a custom slack client cuz the offical one sucks but this one sucks too i spend so much time on my other project logpheus that i kind of neglected this so i didnt get it to the state i wanted it to be but it works atleast on linux on arch idk abt other os’s and distros works on my machine tho most of the 40+ hours comes from me figuring out slacks shitty api it took so long for the auth and that ts was just a pain sob-wx ANYWAY ENJOY

Your Friendly Neighboured AVCAP Member Gayzzy

This is just me working on releases from github action

  • Made github action be halfed in build time by caching
  • Fixed tauri stupidness with versioning
  • Meowed a lot
Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

This is short, like you HEHEHEHEHE ANYGAY

  • Fixed message area overflowing which made newest msg be annoying and slightly hard to read
  • Fix above helped to fix auto scroll not scrolling to right message
  • Load more now is used and works!
  • Now fully using virtua to handle msgs as virtual list so not loading a bunch of msgs into dom and it makes my life more convienent
  • Cleaned up sum old code and commented features i wont finish before the end of this
    yay-67
Attachment
Attachment
Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

Oh yeah I’m suppose to do this… Oopsie daisy!
Most of this time is me messing with different libraries to get a working virtual list I was originally gonna use tanstack/virtual but using it kind of sucked so I swapped to virtua while virtua has its annoyances it does seem better as tanstack/virtual kept spamming me and had lag spikes while scrolling I kind of forgor to commit all my testing skulk but now improved scrolling!
Also some other changes

  • Github Action Workflow building the app as release (without windows build as im windowsphobic + couldn’t be asked to fix windows build failing)
  • Fixed cache issues causing weird bugs
Attachment
Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

Devlog time yipeeee!!!

  • Crazy speed bump!!!! Making use of caching of messages and channels now make load way faster by using a cache safe store for persistance so it shows something on app open and for channel open using cache safe store and a in memory cache for what ws sent when channel wasnt open
  • Cleaned up some of the code as its a bit of mess
  • Fixed flash on opening channel on app open as chat was lazy loaded
Attachment
Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

Yipeee sum changes 3c

  • Signin page is less ugly now i copied design from slacks page as it does look good but i want catppuuccin ;3c
  • Slight speed bump for load of channels by showing channels before loading unreads and mentions
Attachment
Attachment
1

Comments

Matei sHomePage (No.1 PHP Lover)

wow that’s so cool!!!!!

Your Friendly Neighboured AVCAP Member Gayzzy

Yknow this isnt really much of an update few changes but mostly fixing

  • Spent while trying to get slack.ts to work with suri yay it mostly works now i changed it to abuse vite to modify using ws and fetch to polyfill ws package with tauri websocket and fetch for tauri fetch
  • Mentions and unread is actually less static it now changes it based on new msgs from websocket YIPEEEEEEEE
  • Using slack.ts has improved type safety of suri as its using less any and more types via slack.ts
Attachment
Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

I should probably devlog….

  • Now using eventemitter3 for websocket events
  • Tried to use slack.ts for some stuff but for some stuff it doesnt work atm so fina use both mine and slack.ts for now
  • Oooooo trying to get emojis 3c
  • Sum other bug fixes
Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

Mreow 3c
HAIIIIII THIS IS A DEVLOG YIPEEEEEEEEEEEEEEEEE

  • Unread channels highlight
  • Channels that you got pinged in highlight
Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

This isn’t much of new stuff just really cleaning up the codebase and adding types

  • Split up stuff into seperate modules on the rust side so compile time is faster as it doesnt have to rebuild whole of lib.rs
  • Slack.ts file now uses types so its harder to make dumb mitakes
  • Fixed new msgs not getting name fetched if they arent already saved
Attachment
Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

A bit better message parsing :3c it now has semi good image support setup image is kinda large gotta fix that but it also unescapes html encode stuff now so yipee

Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

Names! Yes this could of been done in like 30 minutes but im a twat i made a stupid mistake causing me to not match the user id to the gotten ids for the channel because i used channel: channelId in the body not channels: [channelId] causing slack to throw workspace users not channel users. I also moved chat to its own file instead of just in the index.tsx file

Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

Yeah my previous fix to shutup couldnt find callback id annoyed me so i spent this whole devlog time just trying to get my shit rust code to work so it prevents default reload and instead causes a window relaunch clearing out any callback ids so no console spam because it relaunches on reload

Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

I forgor to make a devlog qwp. ANYWAY 10 days past and i did some stuff :3 I tried to get tauri to shutup about “couldnn’t find callback id” because it sucks at cleaning up its own resources with its plugins that took a while until i just made console.warn filter it out of console to shut it up instead it aint my job to fix tauris shit, I also made a bit of a ui for it and real time messages from the websocket and ability to post messages! (dont mind the random person on the right i stole the ui from flowbite :3c)

Attachment
1

Comments

Keyboard1000n17
Keyboard1000n17 5 months ago

i was gonna say “stop making flashbangs” but i cant be talking lmfao

Your Friendly Neighboured AVCAP Member Gayzzy

More modifications to auth! This time not because slack sucks but because I wanted auto login. It now saves xoxd and xoxc in a json file with name scheme “slack-${user.name}.json” user,name being active system user so different system users dont got same file and don’t worry it’s encrypted with a key set in system keyring under that users account. The user account name is grabbed using a tauri command with using the rust crate “users’ to get the active system account.

Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

Well this was semi painful but WEBSOCKET mhm yes we got slack websocket in it now and because slack sends so much data even on channels your not currently looking at you could multiple channels at once on it :uuh: mhm yes you can see people typing, that someone joined someone sent a message while not being in that channel very sigma must say but this was pain to get to work

Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

Well this one is a long one. I literally spent 4 hours and the feature isn’t done yet. I can confirm that I hate slack, I have gained more hate for tauri and more love for tauri. I tried first to make the request for data i need manually which for some god known reason refused to work and kept 404ing aka i hate slack, i then spent my time trying to grab data from session storage before slack wiped it which that didnt work out then I realised it moves the data to localStorage which is well weird and I wrote rust code to grab that then I spent more time just trying to get that data from webview to frontend code and FINALLY I GOT THE DATA login still not done tho now take a picturee of my shit code

Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

I spent most of the 2h 33m trying and debugging just to get a single d cookie that slack auth uses it was pain in the ass since webkit2gtk kept crashing (because it sucks ass) when i tried to intercept responses to look through there headers under I realised tauri supports grabbing webview windows cookies so I swapped to on_navigation to look for path /checkcookie which slack auth uses to check for cookie is valid so we know the webview will have the cookie at that time then we extract and print it for now. I still gotta grab the second token although that should be 10x easier since slack sends that one over a network request only requiring the d cookie to get it although it does require some parsing since the response is js script? thats really stupid

Attachment
Attachment
0
Your Friendly Neighboured AVCAP Member Gayzzy

Yes I am 1h 48m in to this and I have made barely any progress. Blame slack for that I spent all this time just trying to get convo history to work :hs:

Attachment
0