{"id":15675278,"url":"https://github.com/phstc/serverless-world-cup-slack-bot","last_synced_at":"2025-05-07T00:24:01.171Z","repository":{"id":42340987,"uuid":"139073457","full_name":"phstc/serverless-world-cup-slack-bot","owner":"phstc","description":"Post 2018 FIFA World Cup Russia™ matches events to Slack","archived":false,"fork":false,"pushed_at":"2022-12-09T15:01:31.000Z","size":1257,"stargazers_count":13,"open_issues_count":22,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-27T01:30:13.138Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phstc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-28T22:16:30.000Z","updated_at":"2022-12-20T17:20:41.000Z","dependencies_parsed_at":"2023-01-25T22:15:39.757Z","dependency_job_id":null,"html_url":"https://github.com/phstc/serverless-world-cup-slack-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phstc%2Fserverless-world-cup-slack-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phstc%2Fserverless-world-cup-slack-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phstc%2Fserverless-world-cup-slack-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phstc%2Fserverless-world-cup-slack-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phstc","download_url":"https://codeload.github.com/phstc/serverless-world-cup-slack-bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232654900,"owners_count":18556473,"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":[],"created_at":"2024-10-03T15:58:11.501Z","updated_at":"2025-01-06T00:10:33.855Z","avatar_url":"https://github.com/phstc.png","language":"JavaScript","funding_links":[],"categories":["Projects"],"sub_categories":[],"readme":"### WorldCup Bot\n\nMeet WorldCup Bot, a dirty simple bot for posting 2018 FIFA World Cup Russia™ matches events to Slack.\n\nWorldCup Bot will post:\n\n* Today's matches\n* Matches about to start\n* Goals\n* Yellow and red cards\n\n![](preview.png)\n\n### Getting started\n\nConfigure your AWS keys, [this article](https://serverless.com/framework/docs/providers/aws/guide/credentials/) shows various ways of configuring the keys. A quick simple one is just to export `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`. Personally, I prefer [aws-vault](https://github.com/99designs/aws-vault) for managing my keys.\n\nGet a [Slack Token](https://api.slack.com/custom-integrations/legacy-tokens).\n\nCreate an `.env` file as follows:\n\n```\nSLACK_TOKEN=YOUR-SLACK-TOKEN\nSLACK_CHANNEL=#worldcup\nSLACK_BOT_NAME=WorldCup Bot\n```\n\nInstall dependencies:\n\n```sh\n# See https://yarnpkg.com/lang/en/docs/install/\nyarn install\n```\n\nDeploy:\n\n```sh\nyarn deploy\n```\n\nThat's it, the WorldCup Bot will check and notify matches events every 1 minute. For changing the frequency or disabling the auto notification, check the [CloudWatch Event configuration](https://github.com/phstc/serverless-world-cup-slack-bot/blob/8ea969b5df65be1ce84d44a4544643ba4230d4b2/serverless.yml#L28-L29).\n\n#### Invoking from command-line\n\nFor invoking the deployed version:\n\n```sh\nyarn sls invoke -f matches\n```\n\nFor invoking the local version:\n\n```sh\nyarn sls invoke local -f matches\n```\n\n### AWS Resources\n\nWorldCup Bot runs on [AWS](https://aws.amazon.com/) and it uses:\n\n* [CloudFormation](https://aws.amazon.com/cloudformation/) provisioned with [Serverless](https://serverless.com)\n* [Lambda](https://aws.amazon.com/lambda/) for processing matches data from [WORLD CUP 2018](https://worldcup.sfg.io/) and posting to Slack\n* [CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) for triggering the Lambda [every 1 minute](https://github.com/phstc/serverless-world-cup-slack-bot/blob/8ea969b5df65be1ce84d44a4544643ba4230d4b2/serverless.yml#L28)\n* [DynamoDB](https://aws.amazon.com/dynamodb/) for keeping track of the sent messages to avoid duplicates\n\n### Uninstall\n\nOnce you are done with your bot, you can just remove the CloudFormation stack `yarn sls remove`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphstc%2Fserverless-world-cup-slack-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphstc%2Fserverless-world-cup-slack-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphstc%2Fserverless-world-cup-slack-bot/lists"}