└── OpenTwitterSafariExtension.appex ├── Info.plist ├── OpenTwitterSafariExtension ├── _locales └── en │ └── messages.json ├── background.js ├── content.js ├── images ├── icon-128.png ├── icon-256.png ├── icon-48.png ├── icon-512.png ├── icon-64.png ├── icon-96.png ├── toolbar-icon-16.png ├── toolbar-icon-19.png ├── toolbar-icon-32.png ├── toolbar-icon-38.png ├── toolbar-icon-48.png └── toolbar-icon-72.png ├── manifest.json ├── popup.css ├── popup.html └── popup.js /OpenTwitterSafariExtension.appex/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/Info.plist -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/OpenTwitterSafariExtension: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/OpenTwitterSafariExtension -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/_locales/en/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "extension_name": { 3 | "message": "OpenTwitter", 4 | "description": "The display name for the extension." 5 | }, 6 | "extension_description": { 7 | "message": "Displays an Open in Twitter alert for sideloaded TW", 8 | "description": "Description of what the extension does." 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/background.js: -------------------------------------------------------------------------------- 1 | browser.runtime.onMessage.addListener((request, sender, sendResponse) => { 2 | console.log("Received request: ", request); 3 | 4 | if (request.greeting === "hello") 5 | sendResponse({ farewell: "goodbye" }); 6 | }); 7 | -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/content.js: -------------------------------------------------------------------------------- 1 | browser.runtime.sendMessage({ greeting: "hello" }).then((response) => { 2 | console.log("Received response: ", response); 3 | }); 4 | 5 | browser.runtime.onMessage.addListener((request, sender, sendResponse) => { 6 | console.log("Received request: ", request); 7 | }); 8 | 9 | function afterNavigate() { 10 | var locationArr = window.location.pathname.split("/").reverse() 11 | if (locationArr[0] && !locationArr[1]) { 12 | var tw; 13 | if (locationArr[0] === "home") { 14 | tw = `twitter://timeline` 15 | } else { 16 | tw = `twitter://user?screen_name=${locationArr[0]}` 17 | } 18 | window.location.href = tw 19 | console.log(tw) 20 | } else if (locationArr[0] && locationArr[1] === "status") { // tweet 21 | var tw = `twitter://status?id=${locationArr[0]}` 22 | window.location.href = tw 23 | console.log(tw) 24 | } 25 | } 26 | 27 | (document.body || document.documentElement).addEventListener('transitionend', 28 | function(/*TransitionEvent*/ event) { 29 | if (event.propertyName === 'width' && event.target.id === 'progress') { 30 | afterNavigate(); 31 | } 32 | }, true); 33 | // After page load 34 | afterNavigate(); 35 | -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/icon-128.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/icon-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/icon-256.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/icon-48.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/icon-512.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/icon-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/icon-64.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/icon-96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/icon-96.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/toolbar-icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/toolbar-icon-16.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/toolbar-icon-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/toolbar-icon-19.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/toolbar-icon-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/toolbar-icon-32.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/toolbar-icon-38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/toolbar-icon-38.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/toolbar-icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/toolbar-icon-48.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/images/toolbar-icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BandarHL/OpenTwitterSafariExtension/acfe68f457474c7e1faef1ef9a5fbdf19b38ceb8/OpenTwitterSafariExtension.appex/images/toolbar-icon-72.png -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "default_locale": "en", 4 | 5 | "name": "__MSG_extension_name__", 6 | "description": "__MSG_extension_description__", 7 | "version": "1.0", 8 | 9 | "icons": { 10 | "48": "images/icon-48.png", 11 | "96": "images/icon-96.png", 12 | "128": "images/icon-128.png", 13 | "256": "images/icon-256.png", 14 | "512": "images/icon-512.png" 15 | }, 16 | 17 | "background": { 18 | "scripts": [ "background.js" ], 19 | "persistent": false 20 | }, 21 | 22 | "content_scripts": [{ 23 | "js": [ "content.js" ], 24 | "matches": [ 25 | "*://*.twitter.com/*" 26 | ] 27 | }], 28 | 29 | "browser_action": { 30 | "default_popup": "popup.html", 31 | "default_icon": { 32 | "16": "images/toolbar-icon-16.png", 33 | "19": "images/toolbar-icon-19.png", 34 | "32": "images/toolbar-icon-32.png", 35 | "38": "images/toolbar-icon-38.png", 36 | "48": "images/toolbar-icon-48.png", 37 | "72": "images/toolbar-icon-72.png" 38 | } 39 | }, 40 | 41 | "permissions": [ ] 42 | } 43 | -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/popup.css: -------------------------------------------------------------------------------- 1 | :root { 2 | color-scheme: light dark; 3 | } 4 | 5 | body { 6 | width: 100px; 7 | padding: 10px; 8 | 9 | font-family: system-ui; 10 | text-align: center; 11 | } 12 | 13 | @media (prefers-color-scheme: dark) { 14 | /* Dark Mode styles go here. */ 15 | } 16 | -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/popup.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Hello World! 10 | 11 | 12 | -------------------------------------------------------------------------------- /OpenTwitterSafariExtension.appex/popup.js: -------------------------------------------------------------------------------- 1 | console.log("Hello World!", browser); 2 | --------------------------------------------------------------------------------