{ "info": { "author": "Patrick Harris", "author_email": "patrick@plh.io", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: Unix", "Programming Language :: Python :: 3" ], "description": "![](https://github.com/patrickleweryharris/pintools/workflows/Python%20package/badge.svg)\n![](https://img.shields.io/pypi/v/pintools)\n\n# Pintools\nCommand line tools for working with [Pinboard](https://pinboard.in).\n\nFeatures:\n- Import starred repositories from Github\n- Copy saved reddit links\n- Organize tags based on originating site\n- Title fixer\n\n## Install\n\n```\npip install pintools\n```\n\n### Dev install\n\nRequires [pre-commit](https://pre-commit.com/)\n\n```\n$ git clone https://github.com/patrickleweryharris/pintools.git\n$ cd pintools\n$ make install\n```\n\n### Dependencies\n\nSee [requirements.txt](requirements.txt)\n\n## Usage\n\n### Pinboard Authentication\n\nPintools uses [lionheart/pinboard.py](https://github.com/lionheart/pinboard.py)\nto connect with Pinboard. Authentication is completed using your Pinboard API\ntoken, which can be found in [settings->password](https://pinboard.in/settings/password) on Pinboard.\n\nPintools will by default look for your Pinboard API token in `$PINBOARD_API_TOKEN`. Alternatively it\ncan be specified using the `--pinboard_token` argument if you do not want to use\nthe environment variable.\n\n### Sync Github Stars\n\nPintools can be used to copy Github stars to your Pinboard account. Starred\ngists are not currently copied.\n\nUsage:\n```\npintools github [-h] [--token TOKEN]\n```\n\n#### Github Authentication\n\nPintools uses [PyGithub](https://github.com/PyGithub/PyGithub) to connect to\nGithub. In order to authenticate with Github, you will need to create a [Personal\nAccess Token](https://github.com/settings/tokens) in your Github account, with the\n`read:user` scope.\n\nPintools will look for this Personal Access Token in `$PYGITHUB_ACCESS_TOKEN`.\nAlternatively, this token can be specified using the `--token` arguement\n\n### Sync Reddit Saved Links\nPintools can be used to copy Reddit saved items to your Pinboard account. Note\nthat new saved items can be saved via [IFTTT](https://ifttt.com), but if you want to\nback up the entirety of your saved links, you need to use a script like this\nbecause IFTTT will only work on new saved items.\n\nSaved comments are not currently copied.\n\nUsage:\n```\npintools reddit [-h] [--secret SECRET] [--client_id CLIENT_ID] USERNAME PASSWORD\n```\n\n#### Reddit Authentication\n\nPintools uses [PRAW](https://praw.readthedocs.io/en/latest/) to connect with\nReddit. You will need to crate a developer application (personal use script) on\nReddit in order to authenticate. Please follow the PRAW insructions on 'Password\nFlow'\n[here](https://praw.readthedocs.io/en/latest/getting_started/authentication.html#password-flow).\n\nOnce you have created a personal use script application on Reddit, save the\nClient-ID and Client-Secret. By default, pintools will look for these in\n`$REDDIT_CLIENT_ID` and `$REDDIT_CLIENT_SECRET`. Alternatively, these can be\nspecified using the `--client_id` and `--secret` arguments. Username and\npassword for Reddit must also be provided on the command line.\n\n### Organize Pinboard links by originating site\n\nPintools can be used to tag each bookmark against the originating site,\nfor easier organization. For example, any bookmark from `github.com` will\nbe tagged with `github`.\n\nUsage:\n```\npintools tags [-h] [--config CONFIG_FILE]\n```\nThis can be optionally customized using a config file. The config file can group several\ndomains under one URL.\n\nThe config file uses YAML syntax like so:\n```\ndomains: # list title must always be 'domains'\n utoronto: # Each key is the final tag you want on your bookmarks\n - utoronto # each item in the list is the base URL you want the tag associated with\n - cs.toronto # don't include .com or www.\n twitter:\n - t\n - twitter\n```\nThere is an example config file [here](domain_assoc.yml)\n\n### Fix Titles\nPintools can fix bookmark titles for you, which sometimes get messed up when\nsaving bookmarks automatically with IFTTT.\n\nUsage:\n```\npintools titles [-h] [--tag TAG]\n```\nIn order to prevent accidentally nuking all your bookmark titles, this feature\noperates on a single tag. For each bookmark with the tag specified, pintools\nwill grab the title of the URL, and update the bookmark's title in Pinboard.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/patrickleweryharris/pintools", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pintools", "package_url": "https://pypi.org/project/pintools/", "platform": "", "project_url": "https://pypi.org/project/pintools/", "project_urls": { "Homepage": "https://github.com/patrickleweryharris/pintools" }, "release_url": "https://pypi.org/project/pintools/1.0.3/", "requires_dist": [ "pinboard", "praw", "PyGithub" ], "requires_python": ">=3.5", "summary": "Tools importing links from various services to Pinboard", "version": "1.0.3", "yanked": false, "yanked_reason": null }, "last_serial": 6648965, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "1df4701e6f3e8dac0d556f3c6d420d59", "sha256": "db49150aa0761859259ba4bafd72ed67ca262f3c62bc37d0d6feb275ddb0cddd" }, "downloads": -1, "filename": "pintools-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1df4701e6f3e8dac0d556f3c6d420d59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 6295, "upload_time": "2019-09-09T20:30:51", "upload_time_iso_8601": "2019-09-09T20:30:51.162797Z", "url": "https://files.pythonhosted.org/packages/1e/fa/75767ad734c3dd928a8b5b1d037077ac2ff64c3896eed11f6c2bf9ee8eca/pintools-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0795cde9761d8e8219d1ae8b50b472a6", "sha256": "79df4ad7188b7623af2e9c468b3f8f87468fbe6a8ff7ec2ac6524586e832942c" }, "downloads": -1, "filename": "pintools-0.0.1.tar.gz", "has_sig": false, "md5_digest": "0795cde9761d8e8219d1ae8b50b472a6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 4729, "upload_time": "2019-09-09T20:30:53", "upload_time_iso_8601": "2019-09-09T20:30:53.492269Z", "url": "https://files.pythonhosted.org/packages/76/16/f244551cc19d68ec01ed47a3c32d73b27f08f9c6e6b5cafaad0112acfb57/pintools-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "87b0e59c183b72d1443f17f1060277ff", "sha256": "9037eb2c0aa862f2335ff1aa5a44ce5444bfc4530a4839d45526195aea9a627f" }, "downloads": -1, "filename": "pintools-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "87b0e59c183b72d1443f17f1060277ff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 7044, "upload_time": "2019-09-12T19:03:07", "upload_time_iso_8601": "2019-09-12T19:03:07.366862Z", "url": "https://files.pythonhosted.org/packages/25/34/b5e68293a68884135de9541199515fc79beed5977f6d1c702daf799b2a8a/pintools-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "22ae0853f02716f674cd7425264b5b06", "sha256": "4513da7c97a52364d8ce30ab6e8e17d16d0cb3c2e922813d2056e633698625ec" }, "downloads": -1, "filename": "pintools-0.0.2.tar.gz", "has_sig": false, "md5_digest": "22ae0853f02716f674cd7425264b5b06", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 5573, "upload_time": "2019-09-12T19:03:09", "upload_time_iso_8601": "2019-09-12T19:03:09.530784Z", "url": "https://files.pythonhosted.org/packages/12/09/8d82dda0f83b6400e65700d588b86c144f9302a7fd82401a3d48c270114b/pintools-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "25687e948567c2e05710d0cbb6fe30af", "sha256": "25f9aa092affaf5a269baed0918fe03dce429ae2b9dc9743d934253058fc0fa4" }, "downloads": -1, "filename": "pintools-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "25687e948567c2e05710d0cbb6fe30af", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 7934, "upload_time": "2019-10-28T20:30:20", "upload_time_iso_8601": "2019-10-28T20:30:20.964538Z", "url": "https://files.pythonhosted.org/packages/17/64/75005fc7ee1e5f08b796eb5d87bc48214aba82ff207be73e86af0cd55a84/pintools-0.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "33d6af414f46935b6b90c31ddf77d7c0", "sha256": "d214f583e74066eb3718e8de9c5947da966dfa0f348ac022f369e826a0ed86e1" }, "downloads": -1, "filename": "pintools-0.0.3.tar.gz", "has_sig": false, "md5_digest": "33d6af414f46935b6b90c31ddf77d7c0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6282, "upload_time": "2019-10-28T20:30:22", "upload_time_iso_8601": "2019-10-28T20:30:22.488773Z", "url": "https://files.pythonhosted.org/packages/cb/18/0cda586f2c35eac6af4f401119aac9add13e413bc97eabbac844e729d7f5/pintools-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "587535ca35a724c19a159b87533292fb", "sha256": "14de6b07e1fb50c61b654b039ae002d67d1a5f227485f4f670db2261690f8916" }, "downloads": -1, "filename": "pintools-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "587535ca35a724c19a159b87533292fb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9284, "upload_time": "2019-12-23T20:46:41", "upload_time_iso_8601": "2019-12-23T20:46:41.571103Z", "url": "https://files.pythonhosted.org/packages/42/0b/bbfc60c8e0371269b770cfbde165aa24240083230be27499d8e193d3538e/pintools-1.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "44f83d62840597f771e850551f2416c6", "sha256": "ebf0c60b7d3b5ef961015def6c642a9b8ae6950e569158043b27eb280001bfd1" }, "downloads": -1, "filename": "pintools-1.0.1.tar.gz", "has_sig": false, "md5_digest": "44f83d62840597f771e850551f2416c6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9616, "upload_time": "2019-12-23T20:46:42", "upload_time_iso_8601": "2019-12-23T20:46:42.874522Z", "url": "https://files.pythonhosted.org/packages/18/14/6e5e06acf4db4ba6a58e5864b66419c54de97613707392f3eb46e494dd2d/pintools-1.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "4a762f0ccf9a6a134ea078a3daab3638", "sha256": "2f7c44abf70e2fb76a6314798e229cce4869038ac2fabdc5c4c85caedd101117" }, "downloads": -1, "filename": "pintools-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4a762f0ccf9a6a134ea078a3daab3638", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9198, "upload_time": "2019-12-23T21:01:45", "upload_time_iso_8601": "2019-12-23T21:01:45.526071Z", "url": "https://files.pythonhosted.org/packages/38/e0/398119d6bdb1c7ad9f1b47188aa54c8ec61a186f7bea8eb318570c30a568/pintools-1.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "99e44c67a3f52fa17ccc46c6bab023c7", "sha256": "6b074ad084f1b1c41df94d3d399ec700db0764d98fda3558da62ca4736201472" }, "downloads": -1, "filename": "pintools-1.0.2.tar.gz", "has_sig": false, "md5_digest": "99e44c67a3f52fa17ccc46c6bab023c7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9344, "upload_time": "2019-12-23T21:01:46", "upload_time_iso_8601": "2019-12-23T21:01:46.741185Z", "url": "https://files.pythonhosted.org/packages/ac/4d/47ba02e22218a0cb72524d7dc8c8e30dcb5d48de23e52804b26dfe84e811/pintools-1.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "1421345b9849f456c28845951ff6342a", "sha256": "fc423604206de232c0a1028cde07d8225ddeaf1eddddb5fb1ada0caec3837fc1" }, "downloads": -1, "filename": "pintools-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1421345b9849f456c28845951ff6342a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9228, "upload_time": "2020-02-17T21:14:25", "upload_time_iso_8601": "2020-02-17T21:14:25.557372Z", "url": "https://files.pythonhosted.org/packages/b1/35/b3445b1b9d308f1af73f01ef44bc838d98f74bb8331b135603c22d906254/pintools-1.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "39abb8cf547f5d8ac5fc182bca68bfe9", "sha256": "e0ea36e150521c5169021af5ed785f81f7e246debefc669834a0b59b9d975789" }, "downloads": -1, "filename": "pintools-1.0.3.tar.gz", "has_sig": false, "md5_digest": "39abb8cf547f5d8ac5fc182bca68bfe9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9453, "upload_time": "2020-02-17T21:14:27", "upload_time_iso_8601": "2020-02-17T21:14:27.544055Z", "url": "https://files.pythonhosted.org/packages/b9/31/9e63f6a12f164f407631e0ba6386a0a750339873dd76a948f08c6d98263c/pintools-1.0.3.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1421345b9849f456c28845951ff6342a", "sha256": "fc423604206de232c0a1028cde07d8225ddeaf1eddddb5fb1ada0caec3837fc1" }, "downloads": -1, "filename": "pintools-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1421345b9849f456c28845951ff6342a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 9228, "upload_time": "2020-02-17T21:14:25", "upload_time_iso_8601": "2020-02-17T21:14:25.557372Z", "url": "https://files.pythonhosted.org/packages/b1/35/b3445b1b9d308f1af73f01ef44bc838d98f74bb8331b135603c22d906254/pintools-1.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "39abb8cf547f5d8ac5fc182bca68bfe9", "sha256": "e0ea36e150521c5169021af5ed785f81f7e246debefc669834a0b59b9d975789" }, "downloads": -1, "filename": "pintools-1.0.3.tar.gz", "has_sig": false, "md5_digest": "39abb8cf547f5d8ac5fc182bca68bfe9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9453, "upload_time": "2020-02-17T21:14:27", "upload_time_iso_8601": "2020-02-17T21:14:27.544055Z", "url": "https://files.pythonhosted.org/packages/b9/31/9e63f6a12f164f407631e0ba6386a0a750339873dd76a948f08c6d98263c/pintools-1.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }