{"id":13459056,"url":"https://github.com/shenruisi/Stay","last_synced_at":"2025-03-24T16:31:19.089Z","repository":{"id":37338907,"uuid":"420680322","full_name":"shenruisi/Stay","owner":"shenruisi","description":"Stay is a local userscript manager and an extension sample for Safari on iOS/iPadOS.","archived":false,"fork":false,"pushed_at":"2024-06-23T18:45:09.000Z","size":32922,"stargazers_count":1151,"open_issues_count":48,"forks_count":70,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-03-18T10:54:51.531Z","etag":null,"topics":["adblock","block-nags","extension","greasemonkey","greasyfork","ios","ios-app","objective-c","prevent-app-jump","safari","safari-extension","tampermonkey","userscript"],"latest_commit_sha":null,"homepage":"https://github.com/shenruisi/Stay/wiki","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shenruisi.png","metadata":{"files":{"readme":"README-EN.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"custom":["https://www.buymeacoffee.com/shenyin"],"open_collective":"stay"}},"created_at":"2021-10-24T12:37:51.000Z","updated_at":"2025-03-16T16:04:41.000Z","dependencies_parsed_at":"2024-11-08T00:29:13.896Z","dependency_job_id":"2d78ee05-6363-46b6-bbda-48933c65d708","html_url":"https://github.com/shenruisi/Stay","commit_stats":{"total_commits":374,"total_committers":4,"mean_commits":93.5,"dds":0.6096256684491979,"last_synced_commit":"9b78d761d307234d4ed5ea72ac423804ea0c4301"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenruisi%2FStay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenruisi%2FStay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenruisi%2FStay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shenruisi%2FStay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shenruisi","download_url":"https://codeload.github.com/shenruisi/Stay/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244990166,"owners_count":20543615,"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":["adblock","block-nags","extension","greasemonkey","greasyfork","ios","ios-app","objective-c","prevent-app-jump","safari","safari-extension","tampermonkey","userscript"],"created_at":"2024-07-31T09:01:01.952Z","updated_at":"2025-03-24T16:31:19.062Z","avatar_url":"https://github.com/shenruisi.png","language":"JavaScript","readme":"\u003cimg width=\"128px\" src=\"./Material/icon.png\" alt=\"Logo\" align=\"left\"/\u003e\n\n# [Stay](https://apps.apple.com/cn/app/stay-%E7%BD%91%E9%A1%B5%E7%BA%AF%E6%B5%8F%E8%A7%88/id1591620171)\n\n[![Views](https://views.whatilearened.today/views/github/shenruisi/Stay.svg)]()\n[![iOS System](https://img.shields.io/badge/iOS-15%2B-brightgreen)]()\n[![TestFlight](https://img.shields.io/badge/TestFlight-2.1.0-4391E1)](https://testflight.apple.com/join/v5llhUv5)\n[![HelloGithub](https://img.shields.io/badge/HelloGithub-vol.70-white)](https://hellogithub.com/periodical/volume/70/)\n[![Dev](https://img.shields.io/badge/Develop%20Branch-2.1.x-blueviolet)]()\n[![Newsletter](https://img.shields.io/badge/Newsletter-Subscribe-important)](https://www.getrevue.co/profile/shenruisi)\n\n\u003cp align=\"right\"\u003e\u003ca href=\"README-EN.md\"\u003e中文\u003c/a\u003e | EN\u003c/p\u003e\n\nStay is an open source iOS Safari extension (Compatible userscript).\n\nLearn more about tasks and development progress, please checkout [Project of Stay 2](https://github.com/shenruisi/Stay/projects/1).\n\n## Usage\n- Prepare\n  - Go to Settings \u003e Safari \u003e Extensions\n  - Trun on Stay\n  - Allow Stay for All Websites\n- Import js script from (Write script | Link | GreasyFork | Local file)\n- Activate script at `Library` tab\n\n## Find a script\nWelcome to create a [Embed Script Request](https://github.com/shenruisi/Stay/issues/new?assignees=shenruisi\u0026labels=embed+script+request\u0026template=Embed-Script-Request.yml\u0026title=%5BEmbed+Script+Request%5D%3A+) to promote a great script.\n\n- [Stay offical userscript](https://github.com/shenruisi/Stay-Offical-Userscript)\n- [Third party tg channel - Act Channel D](https://t.me/ACTCD)\n\n## Metadata\nMetadata supported by Stay.\n- [@name](https://www.tampermonkey.net/documentation.php#_name)([Localized](https://wiki.greasespot.net/Metadata_Block#@name))\n- [@namespace](https://www.tampermonkey.net/documentation.php#_namespace)\n- [@version](https://www.tampermonkey.net/documentation.php#_version)\n- [@author](https://www.tampermonkey.net/documentation.php#_author)\n- [@description](https://www.tampermonkey.net/documentation.php#_description)([Localized](https://wiki.greasespot.net/Metadata_Block#@description))\n- [@homepage](https://www.tampermonkey.net/documentation.php#_homepage)\n- [@icon](https://www.tampermonkey.net/documentation.php#_icon)(@icon only)\n- [@updateURL](https://www.tampermonkey.net/documentation.php#_updateURL)\n- [@downloadURL](https://www.tampermonkey.net/documentation.php#_downloadURL)\n- [@supportURL](https://www.tampermonkey.net/documentation.php#_supportURL)\n- [@include](https://www.tampermonkey.net/documentation.php#_include)\n- [@match](https://www.tampermonkey.net/documentation.php#_match)\n- [@exclude](https://www.tampermonkey.net/documentation.php#_exclude)\n- [@require](https://www.tampermonkey.net/documentation.php#_require)\n- [@resource](https://www.tampermonkey.net/documentation.php#_resource)(Download resource at script creating/updating)\n- [@run-at](https://www.tampermonkey.net/documentation.php#_run_at)(context-menu not supported)\n- [@grant](https://www.tampermonkey.net/documentation.php#_grant)\n- [@noframes](https://www.tampermonkey.net/documentation.php#_noframes)\n- @notes - Notes of modification history\n\n## API\nAPI supported by Stay.\n- [unsafeWindow](https://www.tampermonkey.net/documentation.php#unsafeWindow)\n- [GM_addStyle](https://www.tampermonkey.net/documentation.php#GM_addStyle)\n- [GM_setValue](https://www.tampermonkey.net/documentation.php#GM_setValue) / [GM.setValue](https://wiki.greasespot.net/GM.setValue)\n- [GM_getValue](https://www.tampermonkey.net/documentation.php#GM_getValue) / [GM.getValue](https://wiki.greasespot.net/GM.getValue)\n- [GM_deleteValue](https://www.tampermonkey.net/documentation.php#GM_deleteValue) / [GM.deleteValue](https://wiki.greasespot.net/GM.deleteValue)\n- [GM_listValues](https://www.tampermonkey.net/documentation.php#GM_listValues) / [GM.listValues](https://wiki.greasespot.net/GM.listValues)\n- [GM_log](https://www.tampermonkey.net/documentation.php#GM_log)(Show up at popup view)\n- [GM_registerMenuCommand](https://www.tampermonkey.net/documentation.php#GM_registerMenuCommand) / [GM.registerMenuCommand](https://wiki.greasespot.net/GM.registerMenuCommand)\n- [GM_unregisterMenuCommand / GM.unregisterMenuCommand](https://www.tampermonkey.net/documentation.php#GM_unregisterMenuCommand)\n- [GM_getResourceURL](https://www.tampermonkey.net/documentation.php#GM_getResourceURL) / [GM.getResourceUrl](https://wiki.greasespot.net/GM.getResourceUrl)\n- [GM_getResourceText / GM.getResourceText](https://www.tampermonkey.net/documentation.php#GM_getResourceText)\n- [GM_xmlhttpRequest](https://www.tampermonkey.net/documentation.php#GM_xmlhttpRequest) / [GM.xmlHttpRequest](https://wiki.greasespot.net/GM.xmlHttpRequest)\n- [GM_openInTab](https://www.tampermonkey.net/documentation.php#GM_openInTab) / [GM.openInTab](https://wiki.greasespot.net/GM.openInTab)\n- [GM_info](https://www.tampermonkey.net/documentation.php#GM_info) / [GM.info](https://wiki.greasespot.net/GM.info)(scriptHandler is stay)\n- GM_notification / GM.notification(Grant allowed but unimplement)\n- window.onurlchange(Grant allowed but unimplement)\n\n\n## Contact us\nTwitter:[@shenruisi](https://twitter.com/shenruisi)\n\nPlease follow the public account `效率先生`, and reply `微信群` to join the wechat group.\n\n\u003cimg src=\"./Material/qrcode.jpg\" width=\"256\"/\u003e\n\n## LICENSE\n[MPL](./LICENSE)\n\n\n## Safari extension development references\n- [Meet Safari Web Extensions on iOS](https://developer.apple.com/videos/play/wwdc2021/10104)\n- [CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors)\n- [DOMContentLoaded event](https://developer.mozilla.org/en-US/docs/Web/API/Window/DOMContentLoaded_event)\n- [Content scripts](https://developer.chrome.com/docs/extensions/mv3/content_scripts/)\n- [Safari web extensions](https://developer.apple.com/documentation/safariservices/safari_web_extensions)\n- [crxviewer](https://robwu.nl/crxviewer/)\n- [Browser support for JavaScript APIs](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs)\n\n\n","funding_links":["https://www.buymeacoffee.com/shenyin","https://opencollective.com/stay"],"categories":["JavaScript","Extension"],"sub_categories":["Safari Extension"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshenruisi%2FStay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshenruisi%2FStay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshenruisi%2FStay/lists"}