{"id":16876422,"url":"https://github.com/staktrace/twitsecret","last_synced_at":"2025-03-19T04:43:20.231Z","repository":{"id":139347572,"uuid":"1088996","full_name":"staktrace/twitsecret","owner":"staktrace","description":null,"archived":false,"fork":false,"pushed_at":"2010-12-05T04:36:10.000Z","size":144,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T03:44:27.818Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/staktrace.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}},"created_at":"2010-11-17T16:51:53.000Z","updated_at":"2016-06-29T23:17:30.000Z","dependencies_parsed_at":"2023-03-11T14:10:33.785Z","dependency_job_id":null,"html_url":"https://github.com/staktrace/twitsecret","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/staktrace%2Ftwitsecret","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staktrace%2Ftwitsecret/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staktrace%2Ftwitsecret/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/staktrace%2Ftwitsecret/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/staktrace","download_url":"https://codeload.github.com/staktrace/twitsecret/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244358337,"owners_count":20440355,"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-13T15:39:25.251Z","updated_at":"2025-03-19T04:43:20.200Z","avatar_url":"https://github.com/staktrace.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"TwitSecret\n\nUniversity of Waterloo CS 858 Final project, Fall 2010\nKartikaya Gupta and Pengfei Zhang\n\nThis project provides a Firefox plugin that allows users to encrypt their\ntweets such that they are only readable by the specified recipients. The plugin\ninserts a \"TweetSecretly\" button next to the regular \"Tweet\" button on the\nTwitter home page to allow the user to select the intended recipients. It\nalso replaces the tweet stream with one where tweets are decrypted, and\nundecryptable tweets are filtered out.\n\nIn terms of architecture, there is a C component (src/*.c) which uses\nlibgcrypt to provide the required crypto primitives. The binary that is\nproduced from that code is installed into ffext/backend and shipped as\npart of the plugin. It is invoked via Firefox's nsIProcess API and reads and\nwrites to files in ~/.twitsecret/ since I didn't have the time to figure out\nFirefox's API for streams to nsIProcess.\n\nThe script in libs/ downloads and builds the gnupg-ecc library, which is\nsupposed to contain a version of libgcrypt with ECC encryption/decryption\nsupport. I could never get that working, so you can mostly ignore it. The\nscript may still be useful if you don't have libgcrypt to build the binary\nand don't want to install it on your system globally.\n\nThe Firefox XUL UI integration is minimal. The bulk of the hard work is done\nin ffext/chrome/content/twitsecret.js, which has almost all of the script code\nused to make the plugin work.\n\nNote that as it stands there are a number of things that need to be done\nbefore the plugin is usable by anybody other than me. The two main things\nare compiling the binary for your platform and installing it into the\nappropriate subfolder in ffext/backend. The second is obtaining API keys\nfrom Twitter so that the plugin can actually use the API. You will need\nto register a Twitter application at dev.twitter.com and put the consumer\nkey and the secret key into ffext/chrome/content/secrets.js like this:\n\n___twitsecret.keys = {\n    consumerKey: 'MY_CONSUMER_KEY',\n    secretKey: 'MY_SECRET_KEY'\n}\n\nAfter that you can bundle the ffext folder into a xpi file, or just point\na text file called \"projects.staktrace.ffext@staktrace.com\" to the ffext\nfolder and install that to your Firefox extensions folder to get it working.\n\nGood luck!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaktrace%2Ftwitsecret","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstaktrace%2Ftwitsecret","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstaktrace%2Ftwitsecret/lists"}