python-discord / sir-lancebot

A Discord bot started as a community project for Hacktoberfest 2018, later evolved to an introductory project for aspiring new developers starting out with open source development.
MIT License
240 stars 240 forks source link

Uwuification unsatisfactory. #812

Closed gitautas closed 2 years ago

gitautas commented 3 years ago

Description and reasoning

The current uwuification algorithm is very simple and frankly unsatisfactory, as there have been many recent advances in the field of uwuification I believe that Sir Lancebot would be greatly improved by the addition of a more feature-rich uwugorithm.

Proposed Implementation

I personally have written a more advanced uwuifier in python that does not depend on any external libraries and am willing to implement it into Sir Lancebot.

Would you like to implement this yourself?

HassanAbouelela commented 3 years ago

Hey! Congrats on finishing your project!

I’m not personally in favor of this idea. There are costs to implementing any feature, which most people don’t consider. The most obvious costs are implementation, and review, but the more expensive ones are maintenance.

I really don’t care all that much about this command, and I don’t think it’s worth investing effort into making it some super generator that will replace all generators (TM).

If the current implementation is unsatisfactory, let’s remove it.

gitautas commented 3 years ago

That's a valid concern, I personally believe that it's a fine feature, also with things like this, once they're up and running, maintenance isn't a real burden since there are no additional dependencies and there would be a single call to a black box which alters a string, not exactly a towering monolith of complexity. I'd personally be more interested in seeing the project grow, not regress in terms of features.

Either way, not my call.

jacobmonck commented 3 years ago

I have to agree with Scale on this one, I think it will take way too much time and effort for just one command that only a few people will use. I don't see a problem with the current implementation honestly.

MrHemlock commented 3 years ago

If the current implementation is unsatisfactory, let’s remove it.

I disagree with this. Lancebot is, at its core, a fun bot. If people want to improve on existing things, more power to them. If we're saying that Lancebot isn't for this anymore, then we need to be very clear about that.

I've read the code for the implementation @gitautas wrote up. Since it uses all built-ins and execution/processing time is minimal, there is very little strain on the system itself. @gitautas Has also mentioned (in voice chat) that they are more than willing to make it native to Lancebot instead of having it as an external dependency.

Again, looking over the code they have, the only effort or work I foresee on our part is review. Implementation goes through @gitautas, maintenance is always a concern for anything, but this is much less labor intensive than other issues we've accepted in the past.

lemonsaurus commented 3 years ago

@gitautas can you present your implementation here so we can see it in action without having to study the source code or run it? Maybe with some GIFs? Maybe in the original post?

I'm a little on the fence here, mostly because I don't understand precisely how this will change the .uwu feature from how it works today. I don't think this PR description accurately explains what changes you want to make, and I don't have the time to sit down and play with your implementation.

gitautas commented 3 years ago

@lemonsaurus So the current uwufication in Sir Lancebot is a very simple wepwacement, just replaces Rs and Ls to Ws. This was okay for a quick joke, but the state of uwufication has progressed to have a lot more features, such as:

My implementation is very simple, the entire project is 120 LOC and only uses built ins, making it possible to mainline into the lancebot in case adding a third party lib is not ideal.

Here's an example.

Vietnam’s tourism sector has been hardest-hit by COVID-19 as the number of foreign tourists in the first six months of 2021 saw a year-on-year plunge of 97.6 percent with only 88,200. Tourism revenues only reached 4.5 trillion VND (197.64 million USD), down 51.8 percent.

Some 95 percent of travel companies have to cease operations or switch to other sectors.

In 2014, the InterContinental Danang Sun Peninsula Resort was named Asia's Leading Luxury Resort by the World Travel Awards (WTA), which was nicknamed by The Wall Street Journal as the Oscars of the travel industry.

This was the first time that a resort in Vietnam has won such a grand title.
vietnyam’s t-touwism rawr sectow h-has been h-hawdest-hit by covid-19 mya as t
he (U ᵕ U❁) nyumbew of foweign nyaa~~ touwists :3 in the fiwst σωσ six m-months
o-of mya 2021 saw a-a yeaw-on-yeaw OwO p-pwunge o-of 97.6 pewcent with (U ﹏ U) o
nwy 88,200. touwism wevenues UwU onwy weached 4.5 t-twiwwion vnd :3 (197.64 miww
ion u-usd), down 51.8 pewcent. some 95 😳😳😳 pewcent o-of twavew companies have
 (U ᵕ U❁) to cease opewations mya ow s-switch t-to (✿oωo) othew sectows. i-in
 2014, the intewcontinyentaw danyang sun peninsuwa wesowt w-was nyamed asia's XD
 w-weading wuxuwy wesowt b-by the wowwd twavew (⑅˘꒳˘) awawds -.- (wta), which wa
s rawr x3 nicknyamed by the waww stweet jouwnyaw as the o-oscaws of (U ᵕ U❁) the
 -.- t-twavew industwy. t-this was the fiwst (U ﹏ U) t-time that a OwO wesowt
 😳 in vietnyam h-has won such òωó a-a gwand titwe.

Most things are adjustable, so the level of uwufication can be tuned to the desires of the user.

lemonsaurus commented 3 years ago

I appreciate your response, which is very thorough and now I understand the changes.

The changes are, of course, like something out of a nightmarish fever dream and I hate them with every fiber of my being, but that doesn't mean I'm opposed to them. I'm sure some of our users would have a lot of fun with this.

You said the user can control the "intensity", please explain by which mechanism the user would control this?

gitautas commented 3 years ago

@lemonsaurus currently the insertion of emojis and the stuttering are handled by a weighted RNG, which by default sets both values to 20%, meaning the every fifth word is stuttered and every fifth space has an emoji or word inserted, this can be tuned to the desires of either the staff, or the user by passing additional arguments.

When calling you have two optional float weight values UwU.ify(str string, float emoji_strength, float stutter_stregnth)

lxnn commented 3 years ago

I, for one, am glad that we can remain on the cutting-edge in this vitally important area. All too often, the most advanced uwugorithms are locked up in the ivory towers of academia, where they are unable to fulfil the enormous potential they have to enrich the lives of ordinary people. Thank you, @gitautas, humbly.

lemonsaurus commented 3 years ago

I don't have a problem with this idea, I'll leave it to you guys to find the right "intensity" for our use.