Line 4: |
Line 4: |
| }} | | }} |
| | | |
− | The bots are written in Perl, but it's relatively independent of the Product Opener code base, similar scripts could be written in pretty much any language. | + | The bots are written in Perl or in Ruby, but it's relatively independent of the Product Opener code base, similar scripts could be written in pretty much any language. |
| The bot uses both the mongodb database and the perl binary files that stores the product data, but you could just use the mongodb data only, it's the same. | | The bot uses both the mongodb database and the perl binary files that stores the product data, but you could just use the mongodb data only, it's the same. |
− | =Checkbot=
| |
| | | |
| + | == Writing bots in Perl == |
| + | == Writing bots in Ruby == |
| + | <pre> |
| + | gem install openfoodfacts |
| + | </pre> |
| + | * Example that adds parent brands: https://github.com/openfoodfacts/openfoodfacts-corrector |
| + | == Writing bots in Python == |
| + | == Testing bots == |
| + | * Please test bots on world.openfoodfacts.net |
| + | * Please ask for permission to use the bot on Slack before you switch to .org |
| + | |
| + | == Active bots == |
| + | === Checkbot === |
| Checkbot is a little bot that will check Open Food Facts for obvious errors and report them on Slack, in the [https://openfoodfacts.slack.com/messages/bots/ #bots] channel. | | Checkbot is a little bot that will check Open Food Facts for obvious errors and report them on Slack, in the [https://openfoodfacts.slack.com/messages/bots/ #bots] channel. |
− | == Code == | + | ==== Code ==== |
− | [https://bitbucket.org/openfoodfacts/product-opener/src/3f2b4c2790d19ad559fb68376001d4dbc7cd34a5/cgi/checkbot.pl?at=master Code on bitbucket] | + | * Language: Perl |
− | == Current checks == | + | * [https://bitbucket.org/openfoodfacts/product-opener/src/3f2b4c2790d19ad559fb68376001d4dbc7cd34a5/cgi/checkbot.pl?at=master Code on bitbucket] |
| + | ==== Current checks ==== |
| * It checks if one of the nutrients has a value higher than 105g for 100g / 100ml. | | * It checks if one of the nutrients has a value higher than 105g for 100g / 100ml. |
| * It checks if sugar+starch > carbohydrates etc. | | * It checks if sugar+starch > carbohydrates etc. |
| * We'll be able to add rules like: sum of nutrients per 100g > 105g, | | * We'll be able to add rules like: sum of nutrients per 100g > 105g, |
| | | |
− | == Ideas == | + | ==== Ideas ==== |
− | * on pourrait faire une version de checkbot qui ping sur Slack les personnes qui ont ajouté les produits :wink: (ou leur envoyer un mail d'ailleurs) | + | * Checkbot pingue sur Slack les personnes qui ont ajouté les produits (ou leur envoyer un mail d'ailleurs) |
| + | * version live de checkbot qui pingue en continu |
| + | * écart à la moyenne de plus d'un facteur 9 (erreur de virgule) |
| * What about a label we could add on the products that have a verified erroneous label like the ajolix-chili above? We could tag them "error on label" and have checkbot skip them. What would you think of that @stephane? | | * What about a label we could add on the products that have a verified erroneous label like the ajolix-chili above? We could tag them "error on label" and have checkbot skip them. What would you think of that @stephane? |
| [http://world.openfoodfacts.org/label/incorrect-nutrition-facts-on-label incorrect-nutrition-facts-on-label] | | [http://world.openfoodfacts.org/label/incorrect-nutrition-facts-on-label incorrect-nutrition-facts-on-label] |
− | =Infobot= | + | |
| + | === Infobot === |
| [http://world.openfoodfacts.org/contributor/infobot Infobot user profile] | | [http://world.openfoodfacts.org/contributor/infobot Infobot user profile] |
| Infobot will add some information on requests on many products | | Infobot will add some information on requests on many products |
| | | |
− | = Fixbot = | + | == Retired bots == |
| + | === Fixbot === |
| [http://world.openfoodfacts.org/contributor/fixbot Fixbot user profile] | | [http://world.openfoodfacts.org/contributor/fixbot Fixbot user profile] |
| Fixbot removed bogus countries that appeared at some point in the products, due to a Product Opener bug | | Fixbot removed bogus countries that appeared at some point in the products, due to a Product Opener bug |
| Product http://world.openfoodfacts.org/product/8414606446629 (miel-quot-esencia-andalusi-quot / esencia-andalusi) : removing bogus countries, replacing with Spain | | Product http://world.openfoodfacts.org/product/8414606446629 (miel-quot-esencia-andalusi-quot / esencia-andalusi) : removing bogus countries, replacing with Spain |
− | == Ideas == | + | ==== Code ==== |
| + | * Language: Perl |
| + | ==== Ideas ==== |
| <pre> | | <pre> |
| tacite [12:53 AM] | | tacite [12:53 AM] |
Line 45: |
Line 64: |
| Tout les produits Leclerc Drive peuvent être trouvés dans Leclerc mais l'inverse pas forcément | | Tout les produits Leclerc Drive peuvent être trouvés dans Leclerc mais l'inverse pas forcément |
| </pre> | | </pre> |
− | =Scanbot= | + | === Scanbot === |
| [http://world.openfoodfacts.org/contributor/scanbot Scanbot user profile] | | [http://world.openfoodfacts.org/contributor/scanbot Scanbot user profile] |
| Scanbot will look for the IP of scanned products, and will add the matching countries in the country field. | | Scanbot will look for the IP of scanned products, and will add the matching countries in the country field. |
| Runs on demand. Not really reliable because of the IP system. | | Runs on demand. Not really reliable because of the IP system. |
| | | |
− | =UPCBot= | + | === UPCBot === |
| [http://world.openfoodfacts.org/contributor/upcbot UPCbot user profile] | | [http://world.openfoodfacts.org/contributor/upcbot UPCbot user profile] |
| UPCBot was used to normalize UPC codes. Since we now normalize them in Product Opener, it should not be used anymore. | | UPCBot was used to normalize UPC codes. Since we now normalize them in Product Opener, it should not be used anymore. |
| [[Category:ProductOpener]][[Category:Bots]] | | [[Category:ProductOpener]][[Category:Bots]] |
| + | ==== Code ==== |
| + | * Language: Perl |
| | | |
| = Ideas for new bots = | | = Ideas for new bots = |
| * tacite [10:10 PM] New bot idea : Getting notifications for new complete products by contributors that have less than 5 completed products. That way we know we have to control it thoroughly | | * tacite [10:10 PM] New bot idea : Getting notifications for new complete products by contributors that have less than 5 completed products. That way we know we have to control it thoroughly |