{"id":18271611,"url":"https://github.com/tinybird/Wendy","last_synced_at":"2025-04-05T02:30:36.388Z","repository":{"id":66394863,"uuid":"850580","full_name":"tinybird/Wendy","owner":"tinybird","description":"Simple Appstore sales report bot","archived":false,"fork":false,"pushed_at":"2016-12-18T06:39:55.000Z","size":110,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-05T11:54:05.088Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tinybird.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2010-08-20T06:26:21.000Z","updated_at":"2021-08-28T10:51:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"7c4753fd-0f8b-40aa-849f-031c15e20f62","html_url":"https://github.com/tinybird/Wendy","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/tinybird%2FWendy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinybird%2FWendy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinybird%2FWendy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tinybird%2FWendy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tinybird","download_url":"https://codeload.github.com/tinybird/Wendy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247279222,"owners_count":20912848,"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-11-05T11:39:24.460Z","updated_at":"2025-04-05T02:30:36.319Z","avatar_url":"https://github.com/tinybird.png","language":"Python","readme":"Wendy the sales bot\n===================\n\nNOTE: This is not currently usable off the shelf. It currently requires an external tool to download the reports, which is not included here.\n\n\nIntroduction\n------------\n\nThis is a simple bot originally based on the iTunesConnectArchiver script from rouge amoeba, found at:\n\nhttp://www.rogueamoeba.com/utm/2009/05/04/itunesconnectarchiver/\n\nIt has since departed quite a bit from that, and doesn't use the HTML scraping code at all.\n\n\nSetting up site wide settings\n-----------------------------\n\n$ mkdir -p ~/.wendy\n$ cat \u003e ~/.wendy/site_config.rb \u003c\u003c EOF\nActionMailer::Base.smtp_settings = {\n  :enable_starttls_auto =\u003e true,\n  :address =\u003e              \"smtp.gmail.com\",\n  :port =\u003e                 587,\n  :domain =\u003e               \"yourdomain.com\",\n  :authentication =\u003e       :plain,\n  :user_name =\u003e            \"youremail@yourdomain.com\",\n  :password =\u003e             \"yourpassword\"\n}\n\n# Mandatory sender email address.\nSettings.sender = 'wendy@yourdomain.com'\n\n# Optional, amount of seconds to sleep between polling attemps. Default is 2 hours.\n# Settings.sleep_duration = 2*60*60\n\n# List of addresses to send reports to.\n# Settings.report_email_addresses = [ 'me@domain.com' ]\n\n# Optional list of addresses to notify if the bot dies.\n# Settings.admin_email_addresses = [ 'me@domain.com' ]\n\n# Mandatory iTunes connect account information.\nSettings.itc_username = 'me'\nSettings.itc_password = 'myPassword'\nSettings.itc_vendorid = 'myVendorID'\nEOF\n\n\nMapping Product ID to names\n---------------------------\n\nTo get nicer reports, the Product ID of each app can optionally be mapped to a more friendly name. This is done by placing a JSON dict in ~/.wendy/pidMap.json. Example:\n\n{\n '100' : 'My app',\n '101' : 'My other app'\n}\n\n\nReport groups\n-------------\n\nIn case you want to divide groups of apps and send reports to different addresses:\n\nSettings.report_groups = [\n  {\n    'name' =\u003e 'My App',\n    'pids' =\u003e [ 'pid1', 'pid2', 'pid3' ],\n    'emailAddresses' =\u003e [ 'myemail1', 'myemail2' ]\n  }\n]\n\nStarting the daemon\n-------------------\n\n$ ./wendy.rb\n\n\nMaintenance\n-----------\n\nIn case something goes wrong with the database due to changed iTunes Connect report format, you can open the database file using sqlite3 and remove days. An example:\n\n sqlite3 sales.sqlite\n delete from sales where sales.date == \"2011-01-06\";\n .quit\n","funding_links":[],"categories":["etc"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftinybird%2FWendy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftinybird%2FWendy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftinybird%2FWendy/lists"}