{"id":25002076,"url":"https://github.com/cbecerrae/talana-scraper-bot","last_synced_at":"2026-05-05T19:34:06.890Z","repository":{"id":275662000,"uuid":"924202875","full_name":"cbecerrae/talana-scraper-bot","owner":"cbecerrae","description":"Selenium-based bot in Python for Talana attendance marking, containerized with Docker, using AWS SDK for cloud integration.","archived":false,"fork":false,"pushed_at":"2025-07-01T13:47:28.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-24T23:51:42.721Z","etag":null,"topics":["aws-sdk","docker","github-actions","python","selenium"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"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/cbecerrae.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":"2025-01-29T15:45:41.000Z","updated_at":"2025-07-01T13:47:31.000Z","dependencies_parsed_at":"2025-03-29T20:37:26.158Z","dependency_job_id":null,"html_url":"https://github.com/cbecerrae/talana-scraper-bot","commit_stats":null,"previous_names":["cbecerrae/talana-scraper-bot"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cbecerrae/talana-scraper-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbecerrae%2Ftalana-scraper-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbecerrae%2Ftalana-scraper-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbecerrae%2Ftalana-scraper-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbecerrae%2Ftalana-scraper-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cbecerrae","download_url":"https://codeload.github.com/cbecerrae/talana-scraper-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbecerrae%2Ftalana-scraper-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32665101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["aws-sdk","docker","github-actions","python","selenium"],"created_at":"2025-02-04T21:23:31.903Z","updated_at":"2026-05-05T19:34:06.867Z","avatar_url":"https://github.com/cbecerrae.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Talana Attendance Bot with Python and Selenium\n\nThis repository contains a Python-based scraper bot that uses Selenium to automate the process of marking attendance on [Talana](https://peru.talana.com/es/remuneraciones/), a platform for managing employee attendance. The bot automates check-ins and check-outs by interacting with the Talana web interface, simulating user actions for attendance logging.\n\nAdditionally, the bot integrates with AWS S3 for storing screenshots captured when errors occur during the attendance marking process. These screenshots serve as a valuable tool for troubleshooting and identifying issues. The bot also uses AWS SNS to send real-time alerts whenever an error happens, including the path to the S3 screenshot for further investigation and resolution.\n\n## Usage\n\n### 1. Clone the Repository\n\nTo get started, clone the repository:\n\n```bash\ngit clone https://github.com/cbecerrae/talana-scraper-bot.git\n```\n\n### 2. Build the Docker Image\n\nOnce cloned, navigate to the repository folder and build the Docker image:\n\n```bash\ndocker build . -t talana-scraper-bot\n```\n\n\u003e It is **strongly recommended** to run the scraper bot in a Docker container rather than directly with Python to ensure proper environment setup and avoid dependency issues.\n\n### 3. Set Environment Variables\n\nBefore running the bot, you need to create an `.env` file and fill in the required values:\n\n```env\nAWS_ACCESS_KEY_ID=\nAWS_SECRET_ACCESS_KEY=\nS3_BUCKET_NAME=\nSNS_TOPIC_ARN=\nAWS_REGION=\n```\n\nYou will need the AWS credentials of an IAM user, an S3 bucket, and an SNS topic. The IAM user should have `s3:PutObject` permission for the S3 bucket and `sns:Publish` permission for the SNS topic. Don't forget to specify the AWS region where the S3 bucket and SNS topic were created.\n\n### 4. Run the Bot\n\nTo run the bot, use the following command with the appropriate flags for the `--type`, `--email`, and `--password`:\n\n```bash\ndocker run --rm --env-file .env talana-scraper-bot --type \u003c'In' or 'Out'\u003e --email \u003cuser email\u003e --password \u003cuser password\u003e\n```\n\n#### Input Parameters\n\n- `--type`: Specifies the attendance type (`'In'` for check-in, `'Out'` for check-out).\n- `--email`: Specifies the user email for login authentication.\n- `--password`: Specifies the user password for login authentication.\n\n## GitHub Packages\n\nAlternatively, you can download the latest container image directly from [**GitHub Packages**](https://github.com/cbecerrae/talana-scraper-bot/pkgs/container/talana-scraper-bot) and run the bot without needing to build it manually. Use the following commands to pull the latest Docker image:\n\n```bash\ndocker login ghcr.io\n\ndocker pull ghcr.io/cbecerrae/talana-scraper-bot:latest\n```\n\nThen, proceed with running the bot starting from **Step 3** by setting the necessary environment variables. This method can save time and ensure you are using the most up-to-date version of the bot.\n\n## GitHub Actions\n\n[![Build and Push Docker Image](https://github.com/cbecerrae/talana-scraper-bot/actions/workflows/docker-build-and-push.yml/badge.svg)](https://github.com/cbecerrae/talana-scraper-bot/actions/workflows/docker-build-and-push.yml)\n\nIn the [`.github/workflows/docker-build-and-push.yml`](.github/workflows/docker-build-and-push.yml) file, you'll find the \"Build and Push Docker Image\" workflow, which implements CI/CD for changes pushed to the `main` branch, excluding updates to markdown files (`.md`) or GitHub Actions files within `.github/`. This workflow can also be triggered manually and has a concurrency limit of 1, with in-progress jobs being canceled if a new job is triggered. \n\nThe CI/CD pipeline consists of a `build` job that builds the Docker image and stores it as an artifact. This artifact is then passed to the `push-ghcr` and `push-ecr` jobs. These jobs depend on the successful completion of the `build` job. Once the build job finishes, the push jobs download the artifact, tag it as ***latest***, log in to both the GitHub Container Registry and Amazon Elastic Container Registry (ECR), and push the image to these registries.\n\nYou can disable this workflow, but if you have forked this repository and want to use it, configure the following repository secrets in GitHub Secrets:\n- **AWS_ACCESS_KEY_ID**: AWS access key.\n- **AWS_SECRET_ACCESS_KEY**: AWS secret access key.\n- **ECR_REPOSITORY_URI**: Amazon ECR repository URI.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbecerrae%2Ftalana-scraper-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcbecerrae%2Ftalana-scraper-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbecerrae%2Ftalana-scraper-bot/lists"}