The present system for farming works - don't get my wrong. Hell, it works pretty well. But the thing is, it just works. There's huge room for improvement.
Here's what I propose:
First, a new tab (probably under army) is created : Farming
In this tab we have a table and a few settings (the settings will be explained later).
The table stores the source village, destination village, resources per hour, and an "attacking with" setting
In the map tab, create a button "Add to farm queue".
When this button is pressed, Add an entry to the farming table (ideally this should be done for all selected villages automatically), containing the source village (this is the one that is selected on the map screen; dropdown already exists and doesn't need to be added), the village currently selected on the map, 0 resources per hour, and 0 for the "attacking with" setting.
Now, here's what settings should be added to this new "Farming" tab:
-Schedule (start and end time of day. Ideally uses the local/system time, not the server time). This would be good, because I run the bot through the night, but don't want to farm though the night (too suspicious)
-Army 1
-Army 2
-Army 3
Army 1, 2, and 3 all hold "farming templates", like you would see with the farming assistant or a farming script. Basically, the number of each type of unit to send on the farming run.
-Farm Every X (Do a farming run every x hours/minutes/whatever unit you like)
-wall breaker on/off
Now, here's what happens when farming is active, and the time of day is within the schedule:
if the resources per hour is 0, send JUST a scout to the village
when the scout arrives, read the report, and set the "resources per hour" cell in the table for that village. (resources per hour is the sum of resources per hour of each type of resource mine).
if resources per hour != 0:
Send an attack to the village. If the "Attack with" setting for that village is set to calculated:
Figure out the combination of units best suited to both take the most resources. A future idea would be to also optimize time, so LC are sent to further away villages and infantry to closer ones.
Send that many + a scout + rams if wall is up & wallbreaker is on.
Otherwise, if "Attack with" is not set to calculated, attack with the number of troops specified by the chosen template + a scout + rams if the walls are up and wallbreaker is on.
When the attack lands, read the report, update the village info (because on some worlds barbs grow, so wall levels and resources per hour may change), and then delete the report.
Finally, send all the the farming runs from each village in rapid succession - just a few seconds apart, to simulate using a farming script.
Once all the runs from one village are sent, move to the next one, send all runs, move to the next one, etc.
repeat every X hours/minutes/seconds/whatever is specified by the setting.
A feature like this - even in a more rudimentary form (ie, just using a template or two and keeping farming in it's own tab + table, no fancy stuff) would be a major improvement to the current system, and probably not tooooo hard to implement. I can't force you to take such an endeavor up, but if you did and you had any questions from me about anything mentioned here, I'm glad to clarify. Also if you need any help knowing how to do something (doubtful), I consider myself fairly adept at programming and could probably help you.