Name | sopel-npm JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | Sopel plugin to handle NPM links/searches |
upload_time | 2024-09-14 22:46:40 |
maintainer | None |
docs_url | None |
author | None |
requires_python | <4,>=3.8 |
license | EFL-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"
}