{"id":17359199,"url":"https://github.com/deeleman/screen-refresher","last_synced_at":"2025-03-27T15:26:43.219Z","repository":{"id":25460728,"uuid":"28891017","full_name":"deeleman/screen-refresher","owner":"deeleman","description":"A small utility built on top of Angular to configure a reel of different sites and have them displayed successfully on the same browser window in a loop.","archived":false,"fork":false,"pushed_at":"2015-01-07T01:10:25.000Z","size":136,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T19:22:02.240Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deeleman.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":"2015-01-07T00:49:39.000Z","updated_at":"2015-01-07T01:10:25.000Z","dependencies_parsed_at":"2022-08-24T00:30:47.161Z","dependency_job_id":null,"html_url":"https://github.com/deeleman/screen-refresher","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/deeleman%2Fscreen-refresher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deeleman%2Fscreen-refresher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deeleman%2Fscreen-refresher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deeleman%2Fscreen-refresher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deeleman","download_url":"https://codeload.github.com/deeleman/screen-refresher/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245870378,"owners_count":20686017,"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-15T19:08:32.189Z","updated_at":"2025-03-27T15:26:43.189Z","avatar_url":"https://github.com/deeleman.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"#Automatic Screen Refresher\n\nSometimes we might need to monitor different dashboards or charts in an recurrent fashion and display each one of those screens in a room display monitor or TV. In this scenario, we might feel tempted to open several browser tabs or either go switching manually to each different dashboard every now and then. This is a drag, but here it comes Javascript to the rescue!\n\n**Automatic Screen Refresher** is a small utility built on top of Angular that allows any user to easily configure a set of URLs that will rotate on the screen after a time interval also configured by the user (default is 10000 milliseconds = 10 seconds).\n\nThis is a very simple script that I built to help my fellow DevOp buddies from [Casumo](http://www.casumo.com) keeping track of different system dashboards in the control room TV. \n\n## Installation\nClone this repository onto the machine that will host the broadcast app and then open the settings file available at ```config/settings.json```. **This is the only file that will require tweaking**. For your convenience, a template file named ```template.json``` with the same kickstart example has been added to this folder in case you require future reference.\n\nThe JSON configuration is pretty straightforward. Only two settings are available:\n\n* **timeout** (optional - remove it in order to leverage thedefault refresh interval): The amount of milliseconds before refreshing the screen and displaying the next one.\n* **urls** (required): An array containing the different URLs we want to display iteratively in our broadcast system.\n\n### Example\n\n````\n{\n    \"timeout\": 8000,\n    \"urls\": [\n        \"http://www.timesofmalta.com\",\n        \"http://www.casumo.com\",\n        \"http://m.casumo.com\",\n        \"http://www.casumoaffiliates.com\"\n    ]\n}\n````\n\nPlease make sure the file is in valid JSON format before saving it. The use of a [JSON validator](http://jsonlint.com/) is advised. No further configuration is required beyond this point.\n\n### Warning\nCertain URLs will cause an exception, invalidating the whole application sometimes. Those third party sites which are configured with the ``X-Frame-Options`` HTTP header set to either ``DENY`` or ``SAMEORIGIN`` (eg. Google and other big guys in the industry) cannot be consumed form inside an iframe and therefore will turn into an exception.\n\n## Execution\n\nOnce you have successfully configured all the URLs you want to consume and display successively in the host TV or display monitor set, save everything and execute the app under a HTTP server. **Tip:** Executing the following command at the app folder in a box provided with Python will spawn a simple web server.\n\n``$ python -m SimpleHTTPServer 8000``\n\nYou can edit the URLs or refresh timeout configured at the file and have the changes immediately available by refreshing the browser. \n\nWhen executing the URL switch, the system do not perform a new GET of content, so no more traffic is generated.\n\n----------\n# License - \"BSD License\" #\n\nCopyright (c) 2015, Pablo Deeleman\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n  list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n  this list of conditions and the following disclaimer in the documentation\n  and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeeleman%2Fscreen-refresher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeeleman%2Fscreen-refresher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeeleman%2Fscreen-refresher/lists"}