
Product
Introducing Scala and Kotlin Support in Socket
Socket now supports Scala and Kotlin, bringing AI-powered threat detection to JVM projects with easy manifest generation and fast, accurate scans.
$ pip install niel
> ...
$ niel
> Usage: niel [OPTIONS] COMMAND [ARGS]...
>
> niel
>
> Options:
> --version Show the version and exit.
> --help Show this message and exit.
>
> Commands:
> auth Start an authenticated session
> create Create a new rich menu
> default Show default rich menu identifier
> drop Drop rich menu identified by `menu-id`
> image Upload an image found by given `image-path` for the...
> set-default Set default rich menu identified by `menu-id`
Authenticate session (janky)
$ niel auth `<line-channel-access-token>`
> # Rewrites `.zshrc` or `.bashrc` with NIEL_AUTH_SESSION appended
$ source ~/.zshrc
> # OR
$ source ~/.bashrc
The next shell environment you open, will now have $NIEL_AUTH_SESSION defined as your inserted line-channel-access-token.
Next step, create a RichMenu with defined YAML-file
$ niel create example.yml
> richmenu-fd5610793084b22a00a8eeb3812d5dd8
The YAML-file needs to follow requirements defined by RichMenu object definitions set by LINE Messaging API documentation for RichMenu object [4] found in the appendix. The basics of a RichMenu object definition is as such:
RichMenu {
areas: [{
action: {
altUri.desktop?: string // optional; utilized when action is "uri".
clipboardText?: string // required when action is "clipboard". (character limit: 1,000)
data?: string // required when action is "datetimepicker", "postback", or "richmenuswitch". (character limit: 300)
displayText?: string // optional; utilized when action is "postback".
initial?: string // optional; utilized when action is "datetimepicker".
inputOption?: string // optional; utilized when action is "postback".
label?: string // required when action is "camera", "cameraRoll", or "location".
max?: string // optional; utilized when action is "datetimepicker".
min?: string // optional; utilized when action is "datetimepicker".
mode?: "date" | "datetime" | "time" // required when action is "datetimepicker".
richMenuAliasId?: string // required when action is "richmenuswitch". Must be valid RichMenu identifier.
text?: string // required when action is "message". (character limit: 300)
type: "camera"
| "cameraRoll"
| "clipboard"
| "datetimepicker"
| "location"
| "message"
| "postback"
| "richmenuswitch"
| "uri"
uri?: string // required when action is "uri".
}
bounds: {
height: number
width: number
x: number
y: number
}
}]
size: {
height: number
width: number
}
}
See more details on Action objects [1], Area objects [2], Bounds objects [3] and RichMenu objects [4] schemas and criteria under the appendix section.
$ niel image default.png richmenu-fd5610793084b22a00a8eeb3812d5dd8
> True
$ niel set-default richmenu-fd5610793084b22a00a8eeb3812d5dd8
> True
$ niel drop richmenu-fd5610793084b22a00a8eeb3812d5dd8
> True
$ niel drop richmenu-fd5610793084b22a00a8eeb3812d5dd8
> False
Feel free to make an issue if any vulnerabilities are found in the project. Also, this command-line interface relies on the following dependencies so if any of them have been found to be vulnerable, please create an issue and clarify as such.
Unless LINE Messaging API changes, no planned changes on the project. But if you want to try your hand at the project, here is the recommended set-up for your local development environmnet.
$ pip install poetry
> ...
$ poetry shell
> ...
$ poetry install --with dev # Install with development dependencies
> ...
This project has two development dependencies as such:
Recommended usage of said development dependencies.
$ mypy .
> ... # A mypy cache folder will be created on root directory under the name `.mypy_cache`
$ ruff format .
> ... # Python files will be formatted according to the rules defined in `pyproject.toml` with cache under `.ruff`
This project is licensed under the terms of the MIT license.
FAQs
Command line interface for handling LINE Rich menus via Messaging API
We found that niel demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports Scala and Kotlin, bringing AI-powered threat detection to JVM projects with easy manifest generation and fast, accurate scans.
Application Security
/Security News
Socket CEO Feross Aboukhadijeh and a16z partner Joel de la Garza discuss vibe coding, AI-driven software development, and how the rise of LLMs, despite their risks, still points toward a more secure and innovative future.
Research
/Security News
Threat actors hijacked Toptal’s GitHub org, publishing npm packages with malicious payloads that steal tokens and attempt to wipe victim systems.