{"id":26204685,"url":"https://github.com/castlelemongrab/parlance","last_synced_at":"2025-04-15T07:20:35.650Z","repository":{"id":40283723,"uuid":"275194467","full_name":"castlelemongrab/parlance","owner":"castlelemongrab","description":"A minimum-dependency ECMAScript client library and CLI tool for Parler – a \"free speech\" social network that accepts real money to buy \"influence\" points to boost organic non-advertising content","archived":false,"fork":false,"pushed_at":"2024-06-16T12:56:50.000Z","size":229,"stargazers_count":70,"open_issues_count":2,"forks_count":8,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-28T17:47:26.388Z","etag":null,"topics":["data-science","datascience","datascraping","disinformation","es7","hatespeech","javascript","law-enforcement","misinformation","node","nodejs","osint","parlance","parler","social-media","social-networks","speech","twitter"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/castlelemongrab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2020-06-26T15:58:16.000Z","updated_at":"2025-01-05T12:16:06.000Z","dependencies_parsed_at":"2022-08-09T16:07:02.705Z","dependency_job_id":null,"html_url":"https://github.com/castlelemongrab/parlance","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/castlelemongrab%2Fparlance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/castlelemongrab%2Fparlance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/castlelemongrab%2Fparlance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/castlelemongrab%2Fparlance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/castlelemongrab","download_url":"https://codeload.github.com/castlelemongrab/parlance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249023974,"owners_count":21200002,"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":["data-science","datascience","datascraping","disinformation","es7","hatespeech","javascript","law-enforcement","misinformation","node","nodejs","osint","parlance","parler","social-media","social-networks","speech","twitter"],"created_at":"2025-03-12T04:25:14.311Z","updated_at":"2025-04-15T07:20:35.627Z","avatar_url":"https://github.com/castlelemongrab.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nParlance\n========\n\nParlance was a client library for Parler – a \"free speech\" social network that\naccepts real money to buy \"influence\" points to boost organic non-advertising\ncontent. The authors refrained from commenting on this business model.\n\nDeprecation\n-----------\n\nAs predicted, the design of Parler's API proved insecure and inadequate given\nthe platform's scalability and performance goals. Parler recently proved this by\ndiscarding and deprecating their API server in full, opting to return to HTML 5 markup\ndelivered directly from a PHP-based backend.\n\nAs a result, the software herein is no longer functional. This outcome was expected.\nAdditional user-friendly options for researching the Parler and Gab platforms\nare currently under consideration.\n\nThe Parlance team apologizes for the inconvenience. The Parlance team additionally\nthanks Parler for taking a comically insecure API offline permenantly.\n\nInstallation and Configuration\n------------------------------\n\nYou'll need at least Node.js v8.17.0 (Carbon LTS) to run Parlance – although\nwe recommend using the latest available stable version (currently v15.3.0).\n\nFirst, run `npm install -g @castlelemongrab/parlance` to fetch the software\nand all required dependencies. After installation completes, run `parlance`\nto see usage information.\n\nThen, log in to Parler using an ordinary web browser. Use your browser's\ndevelopment tools and/or cookie storage interface to find Parler's `MST`\n(Master Session Token) and `JST` (a short-lived session token). Use the\n`init` subcommand to create an authorization file using the MST and JST values\nfrom your browser. If your browser supplies you with URI-encoded versions of\nthese values, you should decode them prior to use to avoid duplicate HTTPS\nrequests and/or warning messages from the tool.  Any automation of the above\nlogin process is unlikely to be accepted.\n\nResults for all subcommands are printed to standard output as a JSON-encoded\narray of objects.\n\nUsage\n-----\n\n```\nparlance \u003ccommand\u003e\n\nCommands:\n  parlance init        Create an authorization file\n  parlance feed        Fetch your own feed of posts\n  parlance profile     Fetch a user profile\n  parlance post        Fetch a single post by identifier\n  parlance posts       Fetch all posts for a user\n  parlance following   Fetch all users followed by a user\n  parlance followers   Fetch all followers of a user\n  parlance comments    Fetch all comments for a user, post, or comment\n  parlance tags        Fetch all posts mentioning a hashtag\n  parlance votes       Fetch all votes made by a user\n  parlance write       Post a new message to your account\n  parlance delete      Delete an existing message from your account\n  parlance follow      Follow a user\n  parlance unfollow    Unfollow an already-followed user\n  parlance mute        Mute a user\n  parlance news        Fetch your own affiliate news feed\n  parlance moderation  Fetch your list of comments for moderation\n\nOptions:\n  --help                 Show help                                     [boolean]\n  --version              Show version number                           [boolean]\n  --show-hidden          Show hidden options                           [boolean]\n  --format-options       Provide format/type-specific options           [string]\n  -c, --credentials      MST/JST tokens   [string] [default: \"config/auth.json\"]\n  -o, --credentials-out  Output file for client credentials             [string]\n  -S, --start-key        Specify a time-series start/resume key         [string]\n  -E, --end-key          Specify a time-series end/halt key             [string]\n  -l, --ignore-last      Rely solely upon time comparisons             [boolean]\n  -n, --no-delay         Disable the failsafe rate-limiter             [boolean]\n  -p, --page-size        Request a specific page size                   [number]\n  -d, --debug            Print all debug information to stderr         [boolean]\n  -v, --verbose          Print verbose information to stderr           [boolean]\n  -q, --quiet            Print less information to stderr              [boolean]\n  -s, --silent           Print absolutely no information to stderr     [boolean]\n  -e, --expand           Expand specific UUID types     [array] [default: \"all\"]\n  -f, --format           Select output format/type    [string] [default: \"json\"]\n```\n```\nparlance init\n\nCreate an authorization file\n\nOptions:\n  -o, --credentials-out  Output file for client credentials             [string]\n  --mst                  The MST master session token        [string] [required]\n  --jst                  The shorter-lived JST session token [string] [required]\n```\n```\nparlance posts\n\nFetch all posts for a user\n\nOptions:\n  -u, --username         The name of the user                           [string]\n```\n```\nparlance comments\n\nFetch all comments for a user, post, or comment\n\nOptions:\n  -u, --username         The name of the user                           [string]\n  -i, --identifier       The unique identifier of the post              [string]\n  -r, --replies          The unique identifier of the comment           [string]\n```\n```\nparlance tag\n\nFetch all posts mentioning a hashtag\n\nOptions:\n  -t, --tag              The hashtag, without the hash sign  [string] [required]\n```\n```\nparlance write\n\nPost a new message to your account\n\nOptions:\n  -t, --text             The textual content to post         [string] [required]\n```\n```\nparlance delete\n\nDelete an existing message from your account\n\nOptions:\n  -i, --identifier       The unique identifier of the post   [string] [required]\n\n```\n\nOutput Formats\n--------------\n\nCurrently, Parlance supports both a JSON array-of-objects output target, as\nwell as a JSONL target (one JSON object per line). These targets will be\nexpanded in the future. To use JSONL now, specify the `-f jsonl` option when you\nrun Parlance. By default, a JSON array suitable for use with tools like `jq`\nwill be emitted.\n\nLegal\n-----\n\nThis repository seeks to document the design of Parler as accurately and\nconcisely as possible. Parler is of interest to researchers, political\ncampaigns, civic engagement groups, law enforcement, anti-discrimination groups,\nand the public at large. The free speech conveyed in this repository is of\ntimely and widespread public interest.\n\nIf you choose to use this speech as part of an activity, please ensure your\nactivity is ethical and legal within your jurisdiction. The author of this work\nof speech cannot, will not, and has no responsibility to control the behavior of\nothers – in any jurisdiction, on any of Jupiter's mighty moons, or anywhere\nwithin the known universe – past, present, or future.\n\nDue to the specific nature and quality of Parler's engineering design, the\nspeech contained within this repository is the sole product of unrelated\nindustry experience and third-party documentation. No act of disassembly,\ndecompilation, reverse engineering, trade secret violation – nor any other\nprohibited act – was necessary to create the work contained herein.\n\n\u003e \"Communication does not lose constitutional protection as 'speech' simply because it is expressed in the language of computer code. Mathematical formulae and musical scores are written in 'code,' i.e. symbolic notations not comprehensible to the uninitiated, and yet both are covered by the First Amendment. If someone chose to write a novel entirely in computer object code by using strings of 1’s and 0’s for each letter of each word, the resulting work would be no different for constitutional purposes than if it had been written in English.\" – DMCA, Universal City Studios v. Corley, FN191: 273 F.3d 429, 60 USPQ2d 1953 (2nd Cir. 2001)\n\n\u003e Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the Government for a redress of grievances.\n\n\nCredits\n-------\n```\n-----BEGIN PGP SIGNED MESSAGE-----\nHash: SHA512\n\nParlance\nAn MIT-licensed client library and open-source intelligence tool for Parler\n\nCopyright 2020, The Parlance Team\nCopyright 2020, Baby Britain, Ltd.\n\nGPG contact: 04BDC713FF16FE315E58CC5028B4EB3E98787367\n-----BEGIN PGP SIGNATURE-----\n\niQIzBAEBCgAdFiEEBL3HE/8W/jFeWMxQKLTrPph4c2cFAl796YgACgkQKLTrPph4\nc2eW5A/+Pbw17ilhoNWgAZYzMAvgJngS/VO0QtHlmAdKDRtyt14x3VeHw59XE5PW\niOAzM0yUG28vwflBp9ZCml+6eFw1jsLXuXOS/+X/zfuWZtHCVKal/FTYiKY/foHY\nVUsjdwCUlbOZKdrUHAgloRRoc6aQlIIzJzmn+FHT0OOos3n28fNjqToGsVXWeg5y\nCqJuSAIP+BLbao38vH5X/xg0rBJMUVYWaoX2TswGK7dJoY94Np6nJbiRIrU3iit4\nXnji7yvt5yaWbaYJNptoycrKcm9rJ9QsP9hcOES32TMYAvke6j8GkrhiyDX5tspe\neLR2kK3AUXHJ8EnpuBCknqyRn6GO/abUnoaL9iTNWfP2nknPgShtxbtChGydQCfs\n/HJx1h3FDwONBIDlrZaUWJ6CQlxF7dnFf3R4nsa43UNqry+5Np/GLWTlg7Srbjw8\nFMx0PBv4dHYq+2CCJQT9YSseP1J5y57aC0w2t1XUtsdiWUG4K4NsZV03pN4KyK0k\nyIK5bAc9GJGK/gXM7kr9x+oZJUfeYawt3pPuloQqcRn8HZxVn+GF90C0q6lfaQ+0\nQwRaVkvCOBMZFDtcUhXhO973bIhxlbKr2jfD/2peIpMYSG+dgh2KC/5W8xlPFGgD\nsy0M0gwlV6AZLw0SiuAgQ6/vEAXMn2oyjZukP56+5gx75wXz/4U=\n=hDiH\n-----END PGP SIGNATURE-----\n```\n\n\nLicense\n-------\n\nMIT\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcastlelemongrab%2Fparlance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcastlelemongrab%2Fparlance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcastlelemongrab%2Fparlance/lists"}