sopel-npm


Namesopel-npm JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummarySopel plugin to handle NPM links/searches
upload_time2024-09-14 22:46:40
maintainerNone
docs_urlNone
authorNone
requires_python<4,>=3.8
licenseEFL-2.0
keywords sopel plugin bot irc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # sopel-npm

Sopel plugin to handle NPM links/searches

## Installing

Releases are hosted on PyPI, so after installing Sopel, all you need is `pip`:

```shell
$ pip install sopel-npm
```

## Using

`sopel-npm` offers two main features: link handling, and a search command.

### Link handling

If someone posts a link to a package on npmjs.com, `sopel-npm` should emit an
overview of that package's latest version:

```
<dgw> https://www.npmjs.com/package/plyr
<Sopel> [npm] plyr@3.7.8 | Published by sam_potts | MIT license | Unpacked
        size: 5.1 MiB in 124 files | A simple, accessible and customizable
        HTML5, YouTube and Vimeo media player
```

Links directly to a specific package version will show information for that
release instead:

```
<dgw> https://www.npmjs.com/package/plyr/v/2.0.18
<Sopel> [npm] plyr@2.0.18 | Published by sampotts | MIT license | A simple,
        accessible and customizable HTML5, YouTube and Vimeo media player
```

### `.npm` search command

Use `.npm keywords here` and `sopel-npm` will show details for the best match
as returned by the NPM registry's search engine:

```
<dgw> .npm best vue plugin
<Sopel> [npm] eslint-plugin-pinia@0.4.1 | Published by lisilinhart | MIT
        license | Unpacked size: 47.4 KiB in 8 files | ESLint plugin for Pinia
        best practices | https://www.npmjs.com/package/eslint-plugin-pinia
```

This feature will always show details for the latest version of the matching
package, if any.

### Robustness

NPM metadata has evolved over time, and the registry doesn't normalize metadata
for old releases. `sopel-npm` does its best to cope with missing data fields and
return _something_ useful, even if it's not complete.

[Bug reports][issue-tracker] or [pull requests][pull-requests] are welcome if
you run into a situation that this plugin can't handle gracefully!

[issue-tracker]: https://github.com/dgw/sopel-npm/issues
[pull-requests]: https://github.com/dgw/sopel-npm/pulls

## Changelog

### 0.1.0

First release of `sopel-npm` with:

* `npmjs.com` package link handling, with and without a version number
* `.npm` command for text search of packages in the registry

Known issues:

* Packages' publication times are not displayed, because the NPM registry's
  package-version endpoint inexplicably does not provide a release timestamp.
* While all of the error-handling code paths _should_ work, in theory, some
  haven't been verified in real-life testing yet.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sopel-npm",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.8",
    "maintainer_email": null,
    "keywords": "sopel, plugin, bot, irc",
    "author": null,
    "author_email": "dgw <dgw@technobabbl.es>",
    "download_url": "https://files.pythonhosted.org/packages/ea/18/89cf23df1c7f283b45610e012c0a93cfc0eabdacc4c30c878bbc737415d8/sopel_npm-0.1.0.tar.gz",
    "platform": "Linux x86, x86-64",
    "description": "# sopel-npm\n\nSopel plugin to handle NPM links/searches\n\n## Installing\n\nReleases are hosted on PyPI, so after installing Sopel, all you need is `pip`:\n\n```shell\n$ pip install sopel-npm\n```\n\n## Using\n\n`sopel-npm` offers two main features: link handling, and a search command.\n\n### Link handling\n\nIf someone posts a link to a package on npmjs.com, `sopel-npm` should emit an\noverview of that package's latest version:\n\n```\n<dgw> https://www.npmjs.com/package/plyr\n<Sopel> [npm] plyr@3.7.8 | Published by sam_potts | MIT license | Unpacked\n        size: 5.1 MiB in 124 files | A simple, accessible and customizable\n        HTML5, YouTube and Vimeo media player\n```\n\nLinks directly to a specific package version will show information for that\nrelease instead:\n\n```\n<dgw> https://www.npmjs.com/package/plyr/v/2.0.18\n<Sopel> [npm] plyr@2.0.18 | Published by sampotts | MIT license | A simple,\n        accessible and customizable HTML5, YouTube and Vimeo media player\n```\n\n### `.npm` search command\n\nUse `.npm keywords here` and `sopel-npm` will show details for the best match\nas returned by the NPM registry's search engine:\n\n```\n<dgw> .npm best vue plugin\n<Sopel> [npm] eslint-plugin-pinia@0.4.1 | Published by lisilinhart | MIT\n        license | Unpacked size: 47.4 KiB in 8 files | ESLint plugin for Pinia\n        best practices | https://www.npmjs.com/package/eslint-plugin-pinia\n```\n\nThis feature will always show details for the latest version of the matching\npackage, if any.\n\n### Robustness\n\nNPM metadata has evolved over time, and the registry doesn't normalize metadata\nfor old releases. `sopel-npm` does its best to cope with missing data fields and\nreturn _something_ useful, even if it's not complete.\n\n[Bug reports][issue-tracker] or [pull requests][pull-requests] are welcome if\nyou run into a situation that this plugin can't handle gracefully!\n\n[issue-tracker]: https://github.com/dgw/sopel-npm/issues\n[pull-requests]: https://github.com/dgw/sopel-npm/pulls\n\n## Changelog\n\n### 0.1.0\n\nFirst release of `sopel-npm` with:\n\n* `npmjs.com` package link handling, with and without a version number\n* `.npm` command for text search of packages in the registry\n\nKnown issues:\n\n* Packages' publication times are not displayed, because the NPM registry's\n  package-version endpoint inexplicably does not provide a release timestamp.\n* While all of the error-handling code paths _should_ work, in theory, some\n  haven't been verified in real-life testing yet.\n",
    "bugtrack_url": null,
    "license": "EFL-2.0",
    "summary": "Sopel plugin to handle NPM links/searches",
    "version": "0.1.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/dgw/sopel-npm/issues",
        "Homepage": "https://github.com/dgw/sopel-npm"
    },
    "split_keywords": [
        "sopel",
        " plugin",
        " bot",
        " irc"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "47727faf6c41a1a43d1a0abcea392c5bae901492f988357db84c931fecbfb2d9",
                "md5": "2efe3c0bc23b8c39113d0182d691d63d",
                "sha256": "94fc31e1675ca527128529516d122c505a77b6a2f820dbf3260715016374185e"
            },
            "downloads": -1,
            "filename": "sopel_npm-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2efe3c0bc23b8c39113d0182d691d63d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.8",
            "size": 7692,
            "upload_time": "2024-09-14T22:46:39",
            "upload_time_iso_8601": "2024-09-14T22:46:39.023954Z",
            "url": "https://files.pythonhosted.org/packages/47/72/7faf6c41a1a43d1a0abcea392c5bae901492f988357db84c931fecbfb2d9/sopel_npm-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ea1889cf23df1c7f283b45610e012c0a93cfc0eabdacc4c30c878bbc737415d8",
                "md5": "80e8b64cfad6492622c9dcc68a8e047d",
                "sha256": "976a1f0ccddcbc1e4a594887f3463a6d80412d12761b71a94173b78e9d4b1a17"
            },
            "downloads": -1,
            "filename": "sopel_npm-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "80e8b64cfad6492622c9dcc68a8e047d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.8",
            "size": 6959,
            "upload_time": "2024-09-14T22:46:40",
            "upload_time_iso_8601": "2024-09-14T22:46:40.496264Z",
            "url": "https://files.pythonhosted.org/packages/ea/18/89cf23df1c7f283b45610e012c0a93cfc0eabdacc4c30c878bbc737415d8/sopel_npm-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-14 22:46:40",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dgw",
    "github_project": "sopel-npm",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "sopel-npm"
}
        
Elapsed time: 4.52551s