{"id":15756851,"url":"https://github.com/mre/daylite-touch-sync-notification","last_synced_at":"2025-03-31T08:25:42.803Z","repository":{"id":14047752,"uuid":"16750469","full_name":"mre/Daylite-Touch-Sync-Notification","owner":"mre","description":"Monitor Daylite Touch syncs on your Mac. Show a notification after each sync.","archived":false,"fork":false,"pushed_at":"2015-02-09T10:11:46.000Z","size":292,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-06T12:48:20.098Z","etag":null,"topics":["cloud","daylite","daylite-server","logfile","notification","pusher","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mre.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}},"created_at":"2014-02-12T00:15:06.000Z","updated_at":"2015-02-09T10:11:46.000Z","dependencies_parsed_at":"2022-08-07T07:16:11.571Z","dependency_job_id":null,"html_url":"https://github.com/mre/Daylite-Touch-Sync-Notification","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/mre%2FDaylite-Touch-Sync-Notification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mre%2FDaylite-Touch-Sync-Notification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mre%2FDaylite-Touch-Sync-Notification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mre%2FDaylite-Touch-Sync-Notification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mre","download_url":"https://codeload.github.com/mre/Daylite-Touch-Sync-Notification/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246438292,"owners_count":20777401,"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":["cloud","daylite","daylite-server","logfile","notification","pusher","python"],"created_at":"2024-10-04T09:02:37.937Z","updated_at":"2025-03-31T08:25:42.784Z","avatar_url":"https://github.com/mre.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Daylite Touch Notify\n====================\n\n![How it works](howitworks.jpg)\n\nWhat is it?\n-----------\n\nMonitor Daylite Touch syncs on your Mac.\nThis is useful for admins, who want to be sure that the Daylite Server is working correctly.\n\nThe tool consists of two parts, a server and a client script.\n\n### Server\n\nThis part runs on the machine with your Daylite Server installed.\nThe software uses [watchdog](https://pypi.python.org/pypi/watchdog) to detect changes in the Daylite Touch logfile.\nWhenever a user syncs with Daylite, this file gets modified and a message is broadcasted to all clients (using [pusher](http://www.pusher.com)).\n\n### Client\n\nOn the client machine, another script receives the pusher message and displays an OSX notification popup for each synchronization.\nYou can write new clients with ease. Any platform and language is supported. Just subscribe to the pusher channel and you will receive updates automatically. I'll happily accept pull requests.\n\n\n\nHowto\n-----\n\n1. Register at [pusher.com](http://www.pusher.com)\n2. Insert your pusher key into `dtouchclient.py`.\n3. Insert your pusher app-id, key and secret into `dtouchserver.py`.\n4. Start `dtouchserver.py` on your server.\n5. Start `dtouchclient.py` on your client.\n\n\n\nRunning the script in the background\n------------------------------------\n\nIf you want to have the script running as a daemon process, which starts automatically, you can use `launchctl` and a plist file on Mac OS X. Here is how.\n\n### On the server\n\n    ./setup_server.sh\n\n### On the client\n\n    ./setup_client.sh\n\nThis will place the scripts in `/usr/bin` and immediately run the program.\n\nIf you ever want to remove the script, you can use the unload command of `launchctl`, e.g.:\n\n    launchctl unload ~/Library/LaunchAgents/de.matthias-endler.dtouchclient.plist\n\n(Instructions adapted from [mnem on StackOverflow](http://stackoverflow.com/a/9523030/270334))\n\n\nTroubleshooting\n---------------\n\nIf you can't get it to work, look into the `dtouchserver` logfile first.\n\n    tail ~/Library/Logs/dtouchserver.log\n\nYou should see messages like `20XX-XX-XX XX:XX:XX,XXX Sync from user (OUT:9/IN:9)`.\nIf not, something's wrong with the server. Try to run the script directly with\n`python dtouchserver.py`.\n\nIf everything looks fine until here, check your credentials (API key,...) again.\nAfter that, run the client locally with `python dtouchclient.py`. If you can get\nmessages but nothing happens when you run the setup script, you can add a logger\nto your plist file (follow the instructions in `de.matthias-endler.dtouchclient.plist`)\n\nIf the logfile tells you about import errors, replace\n\n    #!/usr/bin/env python\n\ninside `dtouchclient.py` with the output of `which python` and run\n`./setup_client` again.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmre%2Fdaylite-touch-sync-notification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmre%2Fdaylite-touch-sync-notification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmre%2Fdaylite-touch-sync-notification/lists"}