Package: honeybot
🍯 honeybot py [docs]Launching pyhoneybot RewardsContributed to pyhoneybot? Here is a big thank you from our community to you.
Claim your badge and showcase them with pride.
Let us inspire more folks !Claim Now!🇲🇺 🇺🇸 🇨🇦 🇦🇷 🇮🇳 🇬🇧 🇬🇬 🇧🇷 🇸🇽 🇵🇱 🇩🇪 🇲🇼Table of Contents📮 About🕹 Project Motivation✂ Current Features:mountain: GUI clients⌚ Current Plugins⚡ Quickstart💻 Seeing The Bot In ActionDocker🔧 Plugins Development📃 Contributing Guide🔌 Todo Plugins☑ Allowing Plugins:thought_balloon: Project Testimonials📧 Contact (Including vulnerabilities)🖊 Credits📮 AboutHoneyBot is a python-based IRC bot. (python3.7) | If you want to just run the bot, go to thequick start sectionHoneyBot is my first time collaborating to an open source project and I'm loving it. Before discovering HoneyBot, I was very intimidated on the idea of working with other people and had no idea what an IRC even was. Now I realize how much fun and rewarding it is to work together on a project with dedicated and friendly individuals. The documentation is easy to follow and everyone is super helpful. I highly recommend any new programmer who want to contribute on an open source project to try out HoneyBot. Personally I enjoy working on this project more than my own schoolwork. --@RiceAboveFeel free to contribute to the project!🕹 Project MotivationImplementing the project in Java was weird, py's connect was sleek. Thus, the project stack was shifted over to Python.
If you can think of any features, plugins, or functionality you wish to see in the project. Feel free to add it yourself, or create an issue detailing your ideas. We highly recommend you attempt to implement it yourself first and ask for help in ourdiscord server!Psst. Since I learnt py through this bot, we decided to keep a new-comers friendly policy. Feeling lost? Just ping.✂ Current Features🍬 OOP architecture🛰️ keyword parameters🌵 password security with config file [disabled for now]🔌 now with plugins:mountain: GUI clientsGUI clients are used to manage plugins, launch bot as well as specify credentials.CPP clientby@Macr0Nerd⌚ Current PluginsPluginDescriptionContributor💎 bitcoinGet price of bitcoin@Macr0Nerd⏲ caesar cipherEncode your text@kylegalloway🔢 calcEvaluates maths expressions@Abdur-rahmaanJ📐 mathsTrigonometry & random number generator@Abdur-rahmaanJ🍃 conv sniffSet triggers like how many times a word occur for one or more words and send response@Abdur-rahmaanJ❄ greetDemo plugin@Abdur-rahmaanJ⛓ installed_modulesChecks dependencies installed@Abdur-rahmaanJ🕶 jokeGet random joke@Abdur-rahmaanJ,@colbyjayallen❓ self TriviaRandom trivia@ajimenezUCLA💢 usernameUsername generator@Abdur-rahmaanJ,@sseryani📜 quotesInspirational quotes@German-Corpaz📖 dictionaryReturns meaning of word@iamnishant14🔣 password generatorThe name tells it all@iamnishant14🐜 debugPrints all parameters passed to bot@Abdur-rahmaanJ📚 wikipediaReturns a wikipedia article@Macr0Nerd🗿 translateGoogle translate plugin@a-deeb📑 testRuns tests@Abdur-rahmaanJ⛅️ weatherReturns weather info for a given location@Macr0Nerd✉️ mailSend emails within the chat@TannerFry🕴️ hangmanPlay hangman in the chat@JustinWalker4179🎂 ageTakes in birthday and outputs age@JustinWalker4179✔️ factReturns a random fact@JustinWalker4179🔍 googleReturns three search results from google@JustinWalker4179📮 send messageSends a message to another channel@JustinWalker4179📝 logLogs the chat into a log file@RiceAbove🚪 joinsGreets everyone who joins the channel@RiceAbove📅 datePosts the current date@RiceAbove🕵️‍ riddleReturns a random riddle@AngeloGiacco🗞 newsGets the top 10 headlines from bbc world news@AngeloGiacco📝 horoscopeGets your daily horoscope for your starsign@AngeloGiacco💵 currency converterConverts currencies@AngeloGiacco🔫 russian_rouletteMay or may not kick you off the channel@AngeloGiacco🏨 monopolyHoneybot now supports the world's worst game!@AngeloGiacco⚽️ transfer_rumourShows the day's transfer rumours@AngeloGiacco🃏 blackjack/21Play 21 on honeybot!@AngeloGiacco🤒 coronaGet the latest news on coronavirus with honeybot!@AngeloGiacco📖 diaryKeep a diary with honeybot@AngeloGiacco🛩 flightGets flight info from flightradar24@AngeloGiacco🎲 rollRolls a dice@GlennToms❓ helpShow link to plugin's information page@edumello✅ channeljoinJoin command for bot@marceloyb:page_with_curl: comicReturns a random comic@mboekhold📝 todoMakes a to do list@h-ranjan1110🎱 Magic 8 BallAnswer questions using magic 8 ball@ZakariaTalhami🎟 Random ExcuseGenerates a random excuse for you.@rakeshseal0🦆 DuckDuckGo SearchSearch queries in duckduckgo and return abstract.@rakeshseal0🖼 Random ImageReturns a random image url.@rakeshseal0🛢 URL ShortenerShortens a url@rakeshseal0😁 emojiReturns emoji meaning@deadex-ng🎂 birthdayShows birthday match probability on a people group.@paulosgf🏀 basketballShows information about the medals of euroBasket and Basketball world cup@kefthymic🎬 movies_imdbReturns certain information about a certain movie or shows 250 all time best movies@ZoeyKats⚡ Quickstartsetupmkdirbotxcdbotx
python-mvenvvenv
venv\scripts\activate# or source venv/bin/activate for linuxpython-mpipinstallhoneybotrunhoneybotinit
honeybotrunin settings/CONNECT.conf[INFO]

server_url = irc.libera.chat
port = 6667
name = appinventormuBotIn settings/PLUGINS.conf listed plugins under plugins/downloaded will load. Plugins listed under plugins/core are auto loaded.💻 Seeing The Bot In ActionGet an IRC clientWeb:Kiwiirc(easy)Desktop:HexchatAndroid:Revolution IRCconfigureport: 6667
url: irc.libera.chatthen join channel#ltchyou should see the bot as hbot ... or as it's name is insettingsDockerBuilding Docker imageChange SERVER, PORT and NICKNAME variables to match your preferencesdocker build -t "honeybot/honeybot:6.0.2" .Running Docker imagedocker run -d --name=honeybot honeybot/honeybot:v6.0.2 honeybot run🔧 Plugins DevelopmentEach plugin has a folder named after it. In it there is a file called main.py. In each there is a class called Plugin.# -*- coding: utf-8 -*-classPlugin:def__init__(self):passdefrun(self,incoming,methods,info,bot_info):try:ifinfo['command']=='PRIVMSG'andinfo['args'][1]=='.hi':methods['send'](info['address'],'hooo')exceptExceptionase:print('woops plugin error ',e)we see four parameters being passed to the run method, incoming, methods, info, bot_info)parameter1: incomingincomingis the raw line and is not used except if you are not satisfied with the already provided methodsparameter2: methodsmethodsis a dictionary of methods to ease your life. a quick look atmain.pyrevealsdefmethods(self):return{'send_raw':self.send,'send':self.send_target,'join':self.join}wheresend_rawallows you to send in any string you want, thereby allowing you to implement any irc protocol from scratchbut, for most uses,sendallows you to send a message to an addressmethods['send']('<address>', '<message>'). using it in conjunction with info parameter allows you to send messages where it came from, in pm to the bot or in a channel. you can however hardcode the address.joinallows you to join a channel bymethods['join']('<channel name>')parameter3: info (meaning message info)for a normal run, info produces{'prefix':'appinv!c5e342c5@gateway/web/cgi-irc/kiwiirc.com/ip.200.200.22.200','command':'PRIVMSG','address':'##bottestingmu','args':['##bottestingmu','ef']}hence if you want messages,messages = info['args'][1:]or the first word if you want to check for command will beinfo['args'][1]use examplethe command info is used in the join channel plugin to detect a join command and greet the user who just joinedbot infobot_info returns info about the botreturn{'name':self.name,'special_command':self.sp_command,'required_modules':self.required_modules,'owners':self.owners,'time':self.time,'friends':self.friends}so that in run method you can access those.use exampleFor example, the time info is used in the uptime plugin by minussing it from the current time to get time bot has been running.The required modules is used in the installed plugin to determine what required plugin the bot runner did not installwrapping uphenceifinfo['command']=='PRIVMSG'andinfo['args'][1]=='.hi':methods['send'](info['address'],'hooo')from above meansif message received == .hi:
    send(address, message)📃 Contributing Guidehttps://pyhoneybot.github.io/honeybot/How_Tos/contributing.htmldon't forget to add your country flag here after accepted PR. i'll have to hunt it down on your profile if not.make sure to follow PEP8Check outContributingto get started on contributing.🔌 Todo Plugins💐 humour🌨️ weather✉️ mail🎛️ maths📥 pm when user onlineRandom Colour☑ Allowing PluginsPlugins availablehttps://pyhoneybot.github.io/honeybot/plugins.htmlin PLUGINS.conf, add the plugin to allow on a new line !calc
username📧 Contact (Including vulnerabilities)EmailAbdur-Rahmaan Janhangeer |arj.python@gmail.com🖊 Credits@arwinneil, "Open Source" and "Made In Moris" badges