Feature - Implemented Add new Fax(ing) bots

Fluxxdog

Active member
Without seeing the relevant code in your breakfast script, I can say nothing about what happened here.
Code:
			if(faxbot(whisper)){
				cli_execute("faxbot "+whisper);
				set_property("_copyTarget",get_property("photocopyMonster"));
			}
			else delay[count(delay)]="faxbot($monster["+whisper+"]) didn't work as expected";
-.- I had commented out the CLI command and SOMEWHERE along the line, it didn't save. UGH! I had been telling it to do it twice in a row which probably caused the hang-up. I'm so sorry.

(goes off to commit seppuku with a wet trout)
 

metool

New member
Well, I would request that both Faustbot and Easyfax save their XML config file in UTF-8 - and that the XML header, if provided, say exactly that:

<?xml version="1.0" encoding="UTF-8"?>

Per your request, my XML file now has the proper deceleration heading.
 

lostcalpolydude

Developer
Staff member
I've written some code to handle partial matches for mafia (only relevant for the CLI command), but I want to wait to test it with the Art Teacher before adding that code (it did work with "echo" though).
 

Veracity

Developer
Staff member
As I mentioned earlier, my clan (Grrl Power!) has an art teacher in its fax machine. I advertised it to Easyfax about 7 hours ago, but I don't see it on his config. I obviously don't know what it takes to make that happen.
 

Crowther

Active member
As I mentioned earlier, my clan (Grrl Power!) has an art teacher in its fax machine. I advertised it to Easyfax about 7 hours ago, but I don't see it on his config. I obviously don't know what it takes to make that happen.
If a clan was on the whitelist before, what was there is still remembered. Easyfax very slowly (once every ten minutes) checks clans it hasn't looked at that day. However, the number of clans now exceeds 144, so not all will be checked. I need to rethink how that part works. I added a command to force Easyfax to come check. It's "check". You'll have to be in the correct clan of course. Right now "Adventurer echo" is listed as being in Grrl Power!. I hope that was true earlier.
 

xKiv

Active member
However, the number of clans now exceeds 144, so not all will be checked. I need to rethink how that part works.

I would go with "check the clan that has gone the longest without checking" ...
Then I would want to be fancy and and some sort of "reliability score" (how many times did I see the monster in this clan change, per unit time? Use some attenuation ... for every check, like for example reliability := 0.9*reliability + 0.1*(same monster? 1:0)) and check unreliable clans more often than reliable (check clan with largest 'time_since_last_check/reliability').
Then I would probably find that this fanciness breaks things too much, and go back to simplicity.
 

Crowther

Active member
I would go with "check the clan that has gone the longest without checking" ...
Then I would want to be fancy and and some sort of "reliability score" (how many times did I see the monster in this clan change, per unit time? Use some attenuation ... for every check, like for example reliability := 0.9*reliability + 0.1*(same monster? 1:0)) and check unreliable clans more often than reliable (check clan with largest 'time_since_last_check/reliability').
Then I would probably find that this fanciness breaks things too much, and go back to simplicity.
I've considered things similar to that, but no idea pops as being great. I realized last night that I should be using my deliveries to check clans. One problem I have is with time. Is there a way to get a proper linear time value in ash? I could probably construct one out of what's there, but that's prone to bugs.
 

Veracity

Developer
Staff member
I added a command to force Easyfax to come check. It's "check". You'll have to be in the correct clan of course.
I just had a multi in that clan send a "check" command to Easyfax via chat. He did not say anything in reply. Is that expected?

I then opened the Request a Fax frame, which read the config, and I don't see the Art Teacher.

I don't think I have a public way to update a bot's configuration. There is an old method in FaxBotDatabase - reconfigure() - which will redo everything, but I think that will no longer work coreectly (if it ever did) since GUI elements will not be correctly updated. I might want to consider having an "update" button on the Request a Fax frame that updates a single bot's data.

Right now "Adventurer echo" is listed as being in Grrl Power!. I hope that was true earlier.
That was true before. I fetched an Art Teacher from Faxbot yesterday afternoon, though, specifically to allow Easyfax to have access to it.
 

Crowther

Active member
It's "check".
Ugh. Check was broken, but now it's fixed. I faked a "check" from Brianna and now the Art Teacher is listed and works, but only if you ask for it in UTF-8 like the XML file. Sadly, the k-mail list is in the other format. Getting closer.
 

Crowther

Active member
I don't think I have a public way to update a bot's configuration. There is an old method in FaxBotDatabase - reconfigure() - which will redo everything, but I think that will no longer work coreectly (if it ever did) since GUI elements will not be correctly updated. I might want to consider having an "update" button on the Request a Fax frame that updates a single bot's data.
I only do updates (if needed) to the XML file once per hour anyway.
 

zekaonar

Member
What is the CLI command to request a fax from a particular faxbot? I didn't see it mentioned anywhere, and "faxbot [command] - send the command to faxbot" doesn't help.
 

lostcalpolydude

Developer
Staff member
There isn't one. You use that command, and mafia finds a bot that recognizes the command. You don't have to care which bot you get the fax from. I should update the documentation though.
 

lostcalpolydude

Developer
Staff member
I would expect that to work, but I can't look at the code right now. Does mafia request a fax and you don't get one, or does mafia say that no bots can send that?
 

lostcalpolydude

Developer
Staff member
Ah, that worked when hasCommand used equalsIgnoreCase. That was changed to equals, while the equals method in Monster was made case-insensitive, but since it's a string comparison that doesn't apply. The first thing done there is getCanonicalName, so the capitalization you specify is ignored there. With all the talk of different encodings that I haven't really followed, I'm not sure what the best solution is.
 

BobbyCorno

New member
Just in case additional data points are useful, I'm not able to use Faustbot with r14149.

Code:
> faxbot adventurer_echo

Configuring faxable monsters.
Configuring FaxBot (2194132)
Configuring FaustBot (2504770)
Configuring Easyfax (2504737)
Faxable monster lists fetched.
Visiting Fax Machine in clan VIP lounge
Asking FaustBot to send a fax: adventurer_echo
No response from FaustBot after 60 seconds.

When I fire up the relay browser, I see 4 PM's from Faustbot that he's faxed in the monster, and I see in the clan logs that he's done it.

Is there any additional information y'all need to help in debugging this?
 
Top