Slack Bot Icekeem
- 5 Devlogs
- 8 Total hours
A simple bot that takes care of my Channel! Alongwith being very nice it is tasty as well!
A simple bot that takes care of my Channel! Alongwith being very nice it is tasty as well!
Along with that I also added tags of my blogs to my carousal. Most of the hard part was debugging why my Home page wasn’t showing up properly. It was because I forgot to add error reporting 
I also spent a long time trying to add images to my hope page. The images didn’t just work! After a lot of time googling, I think it is because the image block can’t render svg files 
Lastly, I also added @mention replies to my bot. There are a few fun pre-determined replies and when the input matches none, it passes the input to a free tier model of Gemini called Gemini Lite Flash 3.1
I had a lot of love and passion for this bot, and such also had high expectations with the payout. But unfortunately I only got 3x multiplier. I was sad, but I was ready to improve on the mistakes I made, I wanted to know what went wrong.
After I read the reviews, I was a little bit happier. They all said my bot was really good made! But unfortunately it didn’t work.
I spent the next couple of hours trying to find out what I did wrong!
…
…
…
I couldn’t. I lastly resorted to asking AI, I gave it full details. And it gave me my answer… the reason my bot shut down was because I was using the --user tag while starting my bot using systemd 
I was devastated. I will never emotionally recover from this.
But the all good reviews kept motivated to keep on working. So i kept working on my other projects with full motivation! And yesterday I took some time off to complete the final few features I planned on adding to the bot.
Currently the bot is “completed” as per my book, but I will still add new features, updates when I see a interesting one!
Currently this is probably the last devlog of IceKeem in Stardance.
Made a carousal for my blogs!
This was surprisingly simple due to slack block builder! I just used the default carousal they provide and put in my data in-place of the dummy texts :)
But there was a problem! If someone invocated the /icekeem-blog command from #channel123 it the msg will be sent to my personal channel! That was bad and I was having a hard time figuring out how to get the channel id where the command was invocated.
The function I was using:
await client.chat.postEphemeral({
user: presser,
channel: ChannelID,
text: "text",
blocks: [...],
})
I don’t know why but I was under a illusion that respond function can’t do the blocks that my carousal uses…
When I tried, it worked!
await respond({ text: `text`, blocks: [...] })
Just as I had planned I improved the welcome thing.
When ppl join my channel the bot sends a welcome msg with a big fat squishy asmr satisfying button. This time I worked on to make the button a one-time-button and only allowing the joinee to press the button…
Ah yes! I also spent some time finishing up the banner image. Looks cool imo. But there are overall 3 different views I encountered in stardance.hackclub.com. And it looks bad in 2 of them due to the image being cropped…idk what I should do… the natural thing to do would be to bring everything to the center…but that’d look ugly…idk what to do. I think I’ll finish this project with this devlog. I still have to make the README, but that shouldn’t take much time, i’ll do that in github’s online editor
It’s been a smooth and calm day for me. So smooth that something feels off…idk but everything I had in mind worked super easily… something definitely is off…
Anyway, first thing I did was make the /icekeem-help command. It was easy - just like a print statement. Also added link to the blog in /icekeem-blog command.
I also made the event triggers for people joining/leaving my channel. There probably are bugs rn… but we’ll fix them when we encounter them. The slack docs is amazing! I google stuff and almost always the first thing in the slack docs has my answer, I don’t want to admit but the google ai in the search also is useful…
The last thing I did before sleeping was make the sleep function work… I couldn’t, lastly had to resort to ai making the code for me.
I didn’t try to partition my code in different files like I’d like to. I will, if the codebase becomes more than 500+ lines.
Today morning I tried the blog command and found that the link is not working. Easy fix, I path was defined in the top layer insead of inside meta.
I also added buttons for the people who join my channel. It is great you should check it out!! Making this frustrated me a little, but it worked by the end. I had to ask AI for help with making the button green like my previous workflow bot had. Fortunately a single option did the trick.
After done with coding, I made the “banner”(?) for this project. It is still a wip, but it is something. I think I’ll change the bg for the screenshots of the bot working. But that is a task for future me.
My next steps will be to make the button one time use and the “ping me” message be sent in thread.
The bot setup and a basic Ping/fetch function to my own blogs!
There is not much to say about my progress since things aren’t going very complex rn. I made a ping command that takes a int for timeout/sleeping (which doesn’t work rn…sob)
While following the tutorial I saw them using the Cat Facts API, and I remembered that I also made an API for my blogs! So I used that to fetch the latest BLOG that I have updated. Currently the site of blogs and the blogs aren’t really finished either…so we’ll just have to work with what crap had the last time I worked on it
The one thing that took some time was figuring out how the arguments work. Another thing that took some time is FIGURING OUT HOW TO USE A FUNCTION DEFINED IN ANOTHER FILE 😭 I couldn’t figure that out…probably will ask my friends for help.
I plan on adding triggers for when ppl join my channel…also is buttons available now? Those chonky buttons were great, I hope they are available to use in a bot 