freakazoid
Freakazoid is a cleverbot integrated bot for Hive.
Changes in v0.0.4
- Hive / Eclipse Update
- Gem Update
- Added optional support for
meeseeker
.
Features
- Added account name as Conversation ID so that Cleverbot maintains separate conversations with each account.
- Now sending a random sub-string for interaction greater than 140 characters. This is so long posts don't flood Cleverbot, but also makes it seem like the bot read a specific part of the post and is reacting to it, just like a typical human.
- Added
except_apps
andonly_apps
config options, which helps avoid endless bot-on-bot conversations. - The bot will now follow users who meet certain criteria.
- Added the ability to vote and self-vote if certain criteria have been met.
This bot will automatically reply to posts and comments that reply to and mention the bot. The replies are provided by the Cleverbot API.
The main reference implementation of Freakazoid is @banjo. For example:
Install
Linux
$ sudo apt-get update
$ sudo apt-get install ruby-full git openssl libssl1.0.0 libssl-dev
$ sudo apt-get upgrade
$ gem install bundler
macOS
$ gem install bundler
I've tested it on various versions of ruby. The oldest one I got it to work was:
ruby 2.0.0p645 (2015-04-13 revision 50299) [x86_64-darwin14.4.0]
You can try the system version of ruby
, but if you have issues with that, use this how-to, and come back to this installation at Step 4:
Setup
First, clone this git and install the dependencies:
$ git clone https://github.com/inertia186/freakazoid.git
$ cd freakazoid
$ bundle install
Configure
Edit the config.yml
file.
:freakazoid:
:block_mode: irreversible
:account_name: <your Hive bot name>
:posting_wif: <your Hive bot posting key>
:cleverbot_api_key: <your cleverbot api key>
:chain_options:
:chain: hive
:url: https://api.hive.blog
In order to integrate with Cleverbot, you need to register your bot and get a key: https://www.cleverbot.com/api/
Edit the support/reply.md
template (optional).
Meeseeker Support
If you are running a meeseeker sync
, you can enable this option for streaming by uncommenting the :meeseeker:
config group of config.yml
. If your meeseeker sync
is running on another host, update the :url:
line with the correct address.
See: https://github.com/inertia186/meeseeker
Example:
:meeseeker_options:
:url: redis://127.0.0.1:6379/0
Run Mode
Then run it:
$ rake run
Freakazoid will now do it's thing. Check here to see an updated version of this bot:
https://github.com/inertia186/freakazoid
Upgrade
Typically, you can upgrade to the latest version by this command, from the original directory you cloned into:
$ git pull
Usually, this works fine as long as you haven't modified anything. If you get an error, try this:
$ git stash
$ git pull
$ git stash pop
$ bundle install
If you're still having problems, I suggest starting a new clone.
Troubleshooting
Problem: Everything looks ok, but every time Freakazoid tries to reply, I get this error:
Unable to reply with <account>. Invalid version
Solution: You're trying to reply with an invalid key.
Make sure the .yml
file contains the correct voting key and account name (social
is just for testing).
Problem: The node I'm using is down.
Is there a list of nodes?
Solution: Yes, special thanks to @holger80.
https://hive.blog/@fullnodeupdate
Tests
- Clone the client repository into a directory of your choice:
git clone https://github.com/inertia186/freakazoid.git
- Navigate into the new folder
cd freakazoid
- Basic tests can be invoked as follows:
rake
- To run tests with parallelization and local code coverage:
HELL_ENABLED=true rake
Get in touch!
If you're using Freakazoid, I'd love to hear from you. Drop me a line and tell me what you think! I'm @inertia on Hive and Discord.
License
I don't believe in intellectual "property". If you do, consider Freakazoid as licensed under a Creative Commons License.
Looks like there's a bug in peakd
json_metadata
. It's adding a period to the mentions if the account name is at the end of a sentence. Hey @banjo are you there?... and it looks like hive.blog doesn't bother with
json_metadata
mentions for comments.... and nether does peakd. I guess I need to add a feature to look at the body of the comment for mentions. Great.
Hello @banjo ...
kiss him senseless.
Stop that you perv.
You started it.
lol
Ruskowska.
How clever can @banjo now be with chat gpt 3 ?
This stuff is so cool, I would like to know how to make things like this, but I have a lot more knowledge to acquire.
Hi there, i just came across yr bot so i had to share this