Join us on Discord!
You can help CodeWalrus stay online by donating here.

UniChat!

Started by _iPhoenix_, November 12, 2017, 11:37:38 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

_iPhoenix_

This project is not dead!

I'm adding bots; you can suggest witty remarks here!

(Action commands, like /pm, will be in a second form, later)

This week has been a very productive week for UniChat: 1.5k-ish additions, 200-something deletions, and more. (We are sorry that we have to keep the service itself under wraps, it's going through some massive changes)

Here's a changelog:
+ Karma and profiles (this is a huge update and I can't put my excitement into words. It isn't done, and needs a TON of polishing, but it's still quite exciting.)
* Restructured how database is stored to make it virtually impossible to spam (All of the spambots we tested can't beat this one, let alone take it down)
+ Added many commands and created a still-unfinished Chatbot API (using the loosest definition of what an API is)
+ Added more ways for the admins and moderators to smite you and laugh in your face. (and a way to report abuse, for the recipients)
* Changed how highlights work.
+ Notifications. (You can toggle between not receiving notifications, only receiving them on highlights, and always receiving them.)
+ Preliminary link detection.
* Internal optimizations.

Here's the current to-do list:
1) Finish implementing karma. (It's not going to be live-updating, due to the limitations of GitHub hosting, but it will update every 30 seconds, whenever an admin or moderator has the admin console open)
2) Beautify profile pages, they look like they were made in 30 seconds (they were)
3) Finish link detection.
4) Add buttons for notifications. Currently you have to run a command in the console to toggle them. (Super easy)
5) General UI and UX enhancements.

I'll probably release a video today or tomorrow showing off the new features.

Or, I can put up a demo, that is, well, broken:
https://legend-of-iphoenix.github.io/UniChatDemo/

I'll try to x-post more, I actually forgot because I was so busy.
  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

_iPhoenix_

#31
A lot of changes have happened this week! (I do know it's Friday, I am busy on other projects for the rest of the week. I quite like the idea of weekly update posts, I'll probably keep doing them unless nothing has happened that week.)

[spoiler](In case you haven't noticed, my changelog bullet points actually mean things. A '-' means I removed a feature, a '+' means I added a feature, and a '*' means that I changed an existing feature)[/spoiler]

* Moved the code handling bots away from the user, due to security. (You could give your self insane quantities of karma really easily. All bots are now controlled from the Admin Console).
* Fixed the bug where messages from bots would appear twice.
* Fixed the bug where return messages from ~karma would sink to the bottom of the page on reload.
* Fixed the bug where /pm's would show up as 'undefined' in the chat log, and you would get notifications from /pm's that you shouldn't see.
+ Bot API (lets you write your own bots) is working, just need to write some docs. (yay fun. I have the first two pages done.)
- Unfortunately, we have to say goodbye to the "get recent pm's" button, because:

       
  • It never worked as intended.
  • It was unfixably buggy.
  • It had some huge security flaws.
+ Added notifications: https://github.com/Legend-of-iPhoenix/UniChatDemo/wiki/Notifications
+ Added link detection! (I used small snippets of SAX's link detection script, credits are in the readme, and the actual snippet is here)
* Tightened up security.
* Merged karma over from the closed beta, and did a database check to find all <username>++'s and increment karma as necessary.
+ (edit) Added Battlesquid's flame effect to his username in the profile.
+ (edit) Added all kinds of cool commands.
+ (edit) Added semi-functional username linking.
* (edit) Updated the docs with the new commands.
+ (edit) Added documentation on the bot API, available here:  part 1 and part 2
+ (edit) Work has commenced on a small, UniChat-like bot platform, that is entirely local and lets you test your bots without me going in and making them part of UniChat. (Which may take a while.)

The Closed Beta Testers (Codename: CITY, due to a PM I sent them, titled "Can I Trust You?") were: (in no particular order) TheLastMillennial/TLM, Battlesquid, SM84CE, and xMarminq_.

They all have ethereal, glowy usernames in their UniChat profiles, but I'm giving them the option to have it be whatever they want. I remember that Battlesquid wants (edit: and now has) flames, (as a side note, the flame text currently in jcgter777's signature is from that experiment, I showed Battlesquid a demo picture via SAX, and he wanted a firey version of his username, too!) and other members of the closed beta can submit their choices here.

Without their testing, UniChat would be much, much more primitive, and I don't think I would have had the motivation to get this far.

Thanks.
  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

_iPhoenix_

<double triple quadruple? quintuple! sextuple?! septuple?!?! post, big update>

I am SUPER happy to announce that you can finally create your own bots for UniChat, using the UniChat bot API.

You can find the download here, as well as the documentation.

I'm interested in seeing what you guys can create!
  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

_iPhoenix_

#33
I'm having some issues with my own code that I cannot solve. (And to think I'm the person who is supposed to know these things...)

In the bots API, (relevant file, main.js, is here) I'm having some issues where multiple objects (in this case, bots) of the same constructor are sharing properties. (in this case, the name attribute)

In my code, I am creating and initializing bots as per my documentation, but I am initializing two bots, one with the name "iPhoenixBot", and the other with the name "karmaBot". Note that iPhoenixBot is being initialized first, then karmaBot.

The command "~bad" is registered under iPhoenixBot, yet when I execute that command, this happens:

Quote[07:47:52] _iPhoenix_: ~bad
[07:47:53] [karmaBot]: That's so bad, it's almost impressive!
As you can tell, the username is showing up wrong.

The console tells me this:

QuoteCallback for bot "iPhoenixBot" triggered with message "bad".
Response from "karmaBot" received. //this should be "iPhoenixBot", not "karmaBot"
Callback for bot "karmaBot" triggered with message "bad".


In the main.js file linked above, I am using the bot_name input from the constructor in the code to determine what name to display.

I initially assumed this was the problem. I thought that the bot_name variable might be changed each time the constructor is called, even though this seems strange.

I changed it to "this.name", which is the bot's name. This works elsewhere, but it didn't work there.

How can I fix this, and what exactly is happening?


I fixed it, but I can't quite explain how I fixed it or how my fix works, but it does.
  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

_iPhoenix_

We now have a chrome extension!

You can download the source from here (That's from my fork of the repository, which is currently the most functional version, AFAIK.)

Here's how you can install it:

Download from the link above!
Go to chrome://extensions and check the checkbox in the top left labeled "developer mode".
Click the "Load unpacked extension..." button and navigate to the downloaded folder.
You are done!

To chat with other UniChatters, you can click the UniChat icon in the extensions bar!

Note: Be sure not to delete the folder downloaded, unless you want to break the extension.

Huge thanks to LAX18 for creating the extension!
  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

_iPhoenix_

#35
Thanks to me, you can join #UniChat-dev on EFnet!
  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

_iPhoenix_

I added a sweet active users bar, and you can see exactly who is online and has posted a message in the last 15 minutes, in real time! (depending on connection)

Check it out!
  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

_iPhoenix_

#37
There is some planned downtime for UniChat now, starting 2 hours ago and ending when I am done. (EDIT: I'm done!)

When it is over, you guys will have private chatrooms!

It's technically usable but very buggy; I'm here, in the default chatroom and in test, which is here.
  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

_iPhoenix_

[double post because of huge update]

UniChat private chatrooms are done, and here's how they work:

When you go to the main page, https://legend-of-iphoenix.github.io/UniChatDemo/, you are automatically put into the default chat room! This is where we expect most of our users will be.

Just like IRC Channels, you can share room ("channel") names with each other. Each room has its own private list of online users and messages!

You can use the built-in hub, or the simple form on the main page, below the settings bar (it might be below the message bar on some devices).

Additionally, you can create a private chatroom using a button under settings, with a random key that is highly unlikely to be guessed by others.
  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

123outerme

#39
Working on my own bot for UniChat, and I've been having some fun. I'm compiling a list of my favorite messages it's produced, such as:

Command: |promote <thing>

[outerBot]: 123outerme's new corporate money grab, Flex Tape, is so perfect it will make you hate reality.
[outerBot]: 123outerme's new religion, UniChat, is so perfect it will make you hate reality.
[outerBot]: jcgter777's new idea, death, is a thing that exists that you can find.
[outerBot]: jcgter777's new religion, 123outerme, is pitifully mediocre.
[outerBot]: 123outerme's new idea, |promote, is basically the reason WWIII was started.


Command: |throw <thing>

[outerBot]: 123outerme throws outerBot away.
[outerBot]: 123outerme throws LAX18 away.


Command: |destroy <thing>

[outerBot]: 123outerme destroys spam.


Command: |options <number>

[outerBot]: Well 123outerme, we could execute Order 66, or repurpose outerBot to fight ninjas.


Command: |status

[outerBot]: Welcome back, sir. At version undefined, I am fully operational.

Yeah right on that last one.
  • Calculators owned: TI-84+CSE, TI-nspire Clickpad, TI-84+SE

_iPhoenix_

I'll let @Alvajoy123 explain himself here.

  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

Dream of Omnimaga

  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

_iPhoenix_

Quote from: 123outerme on January 27, 2018, 09:37:47 PM
Working on my own bot for UniChat, and I've been having some fun. I'm compiling a list of my favorite messages it's produced, such as:

Command: |promote <thing>

[outerBot]: 123outerme's new corporate money grab, Flex Tape, is so perfect it will make you hate reality.
[outerBot]: 123outerme's new religion, UniChat, is so perfect it will make you hate reality.
[outerBot]: jcgter777's new idea, death, is a thing that exists that you can find.
[outerBot]: jcgter777's new religion, 123outerme, is pitifully mediocre.
[outerBot]: 123outerme's new idea, |promote, is basically the reason WWIII was started.


Command: |throw <thing>

[outerBot]: 123outerme throws outerBot away.
[outerBot]: 123outerme throws LAX18 away.


Command: |destroy <thing>

[outerBot]: 123outerme destroys spam.


Command: |options <number>

[outerBot]: Well 123outerme, we could execute Order 66, or repurpose outerBot to fight ninjas.


Command: |status

[outerBot]: Welcome back, sir. At version undefined, I am fully operational.

Yeah right on that last one.

Here's one more for |promote:
[09:37:58] jcgter777: |promote death
[09:37:58] [outerBot]: jcgter777's new service, death, is worse than expected.
  • Calculators owned: Two TI-84+ CE's
Please spam here: https://legend-of-iphoenix.github.io/spam/

"walruses are better than tuxedo chickens, all hail the great :walrii:" ~ me
Evolution of my avatar:

Alvajoy123

Quote from: _iPhoenix_ on January 28, 2018, 12:18:37 AM
I'll let @Alvajoy123 explain himself here.



sorry I connected my website to your database
  • Calculators owned: TI-84+CE
The maker of Xenon.

c4ooo

I like how it took him a year to respond.
Edit: also damn I didn't realize this project was started so long ago... time flies.

Powered by EzPortal