{"id":16935555,"url":"https://github.com/bvolpato/taskerbox","last_synced_at":"2025-04-11T18:54:08.569Z","repository":{"id":33307798,"uuid":"36952538","full_name":"bvolpato/taskerbox","owner":"bvolpato","description":"🎩  Java lightweight automation engine","archived":false,"fork":false,"pushed_at":"2025-03-10T21:20:54.000Z","size":592,"stargazers_count":8,"open_issues_count":5,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T14:51:15.790Z","etag":null,"topics":["integration","java","java-automation-engine","maven","polling","slack"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bvolpato.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-05T19:56:08.000Z","updated_at":"2024-12-31T17:26:19.000Z","dependencies_parsed_at":"2023-10-15T22:43:28.762Z","dependency_job_id":"69473e2a-34e6-41f7-aa0b-4bac7f0c24bc","html_url":"https://github.com/bvolpato/taskerbox","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bvolpato%2Ftaskerbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bvolpato%2Ftaskerbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bvolpato%2Ftaskerbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bvolpato%2Ftaskerbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bvolpato","download_url":"https://codeload.github.com/bvolpato/taskerbox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248464699,"owners_count":21108238,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["integration","java","java-automation-engine","maven","polling","slack"],"created_at":"2024-10-13T20:54:49.030Z","updated_at":"2025-04-11T18:54:08.537Z","avatar_url":"https://github.com/bvolpato.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Taskerbox\n========\n\n[![Apache License](http://img.shields.io/badge/license-ASL-blue.svg)](https://github.com/brunocvcunha/taskerbox/blob/master/LICENSE)\n[![Build Status](https://travis-ci.org/brunocvcunha/taskerbox.svg)](https://travis-ci.org/brunocvcunha/taskerbox)\n[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.brunocvcunha.taskerbox/taskerbox/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.brunocvcunha.taskerbox/taskerbox)\n[![Coverage Status](https://coveralls.io/repos/github/brunocvcunha/taskerbox/badge.svg?branch=master)](https://coveralls.io/github/brunocvcunha/taskerbox?branch=master)\n\nJava automation engine based on producers (channels) \u0026amp; consumers (actions)\n\nThe main goal is to automate useful tasks. You can control running channels using Desktop UI or lightweight web panel.\n\nChannels\n--------\n- Files\n- Message Queues\n- Price Finder\n- Social Media\n- Crawlers\n- Job Seeker\n- Server (Socket) Watchers\n- Package Tracking\n\nActions\n--------\n- Desktop Toaster\n- Email Sending\n- SMS Sending ([Plivo](https://www.plivo.com/))\n- Slack messaging\n\n\nExample\n--------\n\nFor example, to receive Tweet Messages in your desktop (Toaster Message), polling every minute:\n```xml\n\u003ctaskerbox\u003e\n\n  \u003corg.brunocvcunha.taskerbox.impl.twitter.TwitterChannel\n    id=\"TwitterToaster\" every=\"60000\" consumerKey=\"(consumerKey)\"\n    consumerSecret=\"(consumerSecret)\"\n    accessToken=\"(accessToken)\"\n    accessTokenSecret=\"(accessTokenSecret)\"\u003e\n\n    \u003corg.brunocvcunha.taskerbox.impl.twitter.TwitterToasterAction /\u003e\n\n  \u003c/org.brunocvcunha.taskerbox.impl.twitter.TwitterChannel\u003e\n\n\u003c/taskerbox\u003e\n\n```\n\nTo receive [Hacker News (YCombinator)](https://news.ycombinator.com/) in your Gmail, also popping up a Toaster (polling every two minutes):\n```xml\n\n\u003corg.brunocvcunha.taskerbox.impl.feed.FeedChannel\n  id=\"YCombinatorFeed\" feedUrl=\"https://news.ycombinator.com/rss\" every=\"120000\"\u003e\n\n  \u003corg.brunocvcunha.taskerbox.impl.email.EmailAction\n    smtpFrom=\"Taskerbox v0.1 \u0026lt;taskerbox@brunocandido.com\u0026gt;\"\n    smtpHost=\"mail.brunocandido.com\" smtpPort=\"587\" smtpUser=\"taskerbox@brunocandido.com\"\n    smtpPassword=\"(password)\"  enableTLS=\"true\" email=\"brunocvcunha@gmail.com\" /\u003e\n\n  \u003corg.brunocvcunha.taskerbox.impl.feed.FeedToasterAction /\u003e\n\n\u003c/org.brunocvcunha.taskerbox.impl.feed.FeedChannel\u003e\n\n```\n\nTo test if a specific URL returns an expected response, and send a message on Slack if it fails:\n\n```xml\n\u003corg.brunocvcunha.taskerbox.impl.http.HTTPUptimeChannel\n\tid=\"production\" url=\"https://production-url/api/v1/status\"\n\tcontains=\"false\" filter=\"expected-content-in-response\" every=\"300000\" numTries=\"2\"\u003e\n\n\t\u003corg.brunocvcunha.taskerbox.impl.slack.SlackAction\n\t\ttoken=\"xoxb-xxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx\" iconEmoji=\":see_no_evil:\" slackChannel=\"#production\"\n\t\tusername=\"production-status\" messageOverride=\"Production Server is down. Please check https://production-url/\"/\u003e\n\n\u003c/org.brunocvcunha.taskerbox.impl.http.HTTPUptimeChannel\u003e\n\n```\n\nUsage\n--------\n\nCreate a XML configuration file with the desired channels and actions.\n\nExample:\n```xml\n\u003ctaskerbox\u003e\n\t\t\n\t\u003corg.brunocvcunha.taskerbox.impl.http.HTTPUptimeChannel\n\t\tid=\"production\" url=\"https://production-url/api/v1/status\"\n\t\tcontains=\"false\" filter=\"expected-content-in-response\" every=\"300000\" numTries=\"2\"\u003e\n\t\n\t\t\u003corg.brunocvcunha.taskerbox.impl.slack.SlackAction\n\t\t\ttoken=\"xoxb-xxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx\" iconEmoji=\":see_no_evil:\" slackChannel=\"#production\"\n\t\t\tusername=\"production-status\" messageOverride=\"Production Server is down. Please check https://production-url/\"/\u003e\n\t\n\t\u003c/org.brunocvcunha.taskerbox.impl.http.HTTPUptimeChannel\u003e\n\n\n\u003c/taskerbox\u003e\n```\n\nCreate a Yaml file with the server configuration, that points the `fileToUse` to the file created above.\n\nExample:\n```\nserver:\n  applicationConnectors:\n  - type: http \n    port: 8000\n  adminConnectors:\n  - type: http\n    port: 8001\n\nfileToUse: /home/bruno/taskerbox.xml\n```\n\n\n\n\nDownload the [release JAR](https://github.com/brunocvcunha/taskerbox/releases), and start using `java -jar taskerbox.jar server /path/to/taskerbox.yml`.\n\nIt will start a HTTP server in the port specified to access: [http://localhost:8000/static/index.html](http://localhost:8000/static/index.html), with all the jobs configured in the XML file.\n\n![Sample Screenshot](https://github.com/brunocvcunha/taskerbox/blob/master/.meta/ss.png?raw=true)\n\n\n\nTaskerbox requires at minimum Java 7.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbvolpato%2Ftaskerbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbvolpato%2Ftaskerbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbvolpato%2Ftaskerbox/lists"}