line-works-sdk


Nameline-works-sdk JSON
Version 3.4 PyPI version JSON
download
home_pagehttps://github.com/nanato12/line-works-sdk
SummaryLINE Works SDK for Python
upload_time2025-02-08 16:31:20
maintainernanato12
docs_urlNone
authornanato12
requires_python>=3.10
licenseMIT License
keywords line line-works works
VCS
bugtrack_url
requirements pydantic pydantic_core requests websockets urllib3 python_dateutil typing-extensions
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # line-works-sdk

LINE WORKS SDK for Python

Talk API is defined in **OpenAPI 3.1.0** ([here](https://nanato12.github.io/line-works-sdk/)).

This library uses code automatically generated by `openapi-generator-cli`.

## Requirements

Python 3.11+

## Installation

```sh
$ pip install line-works-sdk
```

dev version

<https://pypi.org/project/line-works-sdk/#history>

```sh
$ pip install line-works-sdk==x.x.devyyyymmddHHMM
```

## Usage

```python
from line_works.client import LineWorks
from line_works.mqtt.enums.packet_type import PacketType
from line_works.mqtt.models.packet import MQTTPacket
from line_works.mqtt.models.payload.message import MessagePayload
from line_works.tracer import LineWorksTracer


def receive_publish_packet(w: LineWorks, p: MQTTPacket) -> None:
    payload = p.payload

    if not isinstance(payload, MessagePayload):
        return

    if not payload.channel_no:
        return

    print(f"{payload!r}")

    if payload.loc_args1 == "test":
        w.send_text_message(payload.channel_no, "ok")

    elif payload.loc_args1 == "/msg":
        w.send_text_message(payload.channel_no, f"{payload!r}")

    elif payload.loc_args1 == "/flex":
        with open("src/sample_flex.json") as f:
            j: dict = json.load(f)
        w.send_flex_message(
            payload.channel_no,
            flex_content=FlexContent(alt_text="test", contents=j),
        )

    if payload.notification_type == NotificationType.NOTIFICATION_STICKER:
        w.send_text_message(payload.channel_no, "スタンプ")
        w.send_text_message(payload.channel_no, f"{payload.sticker=}")

        w.send_sticker_message(payload.channel_no, payload.sticker)


WORKS_ID = "YOUR WORKS ID"
PASSWORD = "YOUR WORKS PASSWORD"

works = LineWorks(works_id=WORKS_ID, password=PASSWORD)

my_info = works.get_my_info()
print(f"{my_info=}")

tracer = LineWorksTracer(works=works)
tracer.add_trace_func(PacketType.PUBLISH, receive_publish_packet)
tracer.trace()
```

![sample_usage](https://github.com/user-attachments/assets/904eadeb-47be-4b48-b79f-b9aca761546b)

![sample_usage_2](https://github.com/user-attachments/assets/0f3097c9-345c-4a74-b08a-9338efa8dc40)

![sample_usage_3](https://github.com/user-attachments/assets/c95b11f4-339c-424d-bd05-c538a52438d1)

## Contributors

- [nezumi0627](https://github.com/nezumi0627)

## GitHub Actions

Linter & Formatter

- ruff
- mypy

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/nanato12/line-works-sdk",
    "name": "line-works-sdk",
    "maintainer": "nanato12",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "admin@okj.info",
    "keywords": "line line-works works",
    "author": "nanato12",
    "author_email": "admin@okj.info",
    "download_url": "https://files.pythonhosted.org/packages/45/ab/74cdfb49c1b27ca71169d843e82f176226e651a584cc2b66abf95c088619/line_works_sdk-3.4.tar.gz",
    "platform": null,
    "description": "# line-works-sdk\n\nLINE WORKS SDK for Python\n\nTalk API is defined in **OpenAPI 3.1.0** ([here](https://nanato12.github.io/line-works-sdk/)).\n\nThis library uses code automatically generated by `openapi-generator-cli`.\n\n## Requirements\n\nPython 3.11+\n\n## Installation\n\n```sh\n$ pip install line-works-sdk\n```\n\ndev version\n\n<https://pypi.org/project/line-works-sdk/#history>\n\n```sh\n$ pip install line-works-sdk==x.x.devyyyymmddHHMM\n```\n\n## Usage\n\n```python\nfrom line_works.client import LineWorks\nfrom line_works.mqtt.enums.packet_type import PacketType\nfrom line_works.mqtt.models.packet import MQTTPacket\nfrom line_works.mqtt.models.payload.message import MessagePayload\nfrom line_works.tracer import LineWorksTracer\n\n\ndef receive_publish_packet(w: LineWorks, p: MQTTPacket) -> None:\n    payload = p.payload\n\n    if not isinstance(payload, MessagePayload):\n        return\n\n    if not payload.channel_no:\n        return\n\n    print(f\"{payload!r}\")\n\n    if payload.loc_args1 == \"test\":\n        w.send_text_message(payload.channel_no, \"ok\")\n\n    elif payload.loc_args1 == \"/msg\":\n        w.send_text_message(payload.channel_no, f\"{payload!r}\")\n\n    elif payload.loc_args1 == \"/flex\":\n        with open(\"src/sample_flex.json\") as f:\n            j: dict = json.load(f)\n        w.send_flex_message(\n            payload.channel_no,\n            flex_content=FlexContent(alt_text=\"test\", contents=j),\n        )\n\n    if payload.notification_type == NotificationType.NOTIFICATION_STICKER:\n        w.send_text_message(payload.channel_no, \"\u30b9\u30bf\u30f3\u30d7\")\n        w.send_text_message(payload.channel_no, f\"{payload.sticker=}\")\n\n        w.send_sticker_message(payload.channel_no, payload.sticker)\n\n\nWORKS_ID = \"YOUR WORKS ID\"\nPASSWORD = \"YOUR WORKS PASSWORD\"\n\nworks = LineWorks(works_id=WORKS_ID, password=PASSWORD)\n\nmy_info = works.get_my_info()\nprint(f\"{my_info=}\")\n\ntracer = LineWorksTracer(works=works)\ntracer.add_trace_func(PacketType.PUBLISH, receive_publish_packet)\ntracer.trace()\n```\n\n![sample_usage](https://github.com/user-attachments/assets/904eadeb-47be-4b48-b79f-b9aca761546b)\n\n![sample_usage_2](https://github.com/user-attachments/assets/0f3097c9-345c-4a74-b08a-9338efa8dc40)\n\n![sample_usage_3](https://github.com/user-attachments/assets/c95b11f4-339c-424d-bd05-c538a52438d1)\n\n## Contributors\n\n- [nezumi0627](https://github.com/nezumi0627)\n\n## GitHub Actions\n\nLinter & Formatter\n\n- ruff\n- mypy\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "LINE Works SDK for Python",
    "version": "3.4",
    "project_urls": {
        "Homepage": "https://github.com/nanato12/line-works-sdk"
    },
    "split_keywords": [
        "line",
        "line-works",
        "works"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "031901c44ec44e9079f446b4f6693becaa55a5dc157d131942ee530929f35679",
                "md5": "25b1eb03c94a16ad0bedf0e05b587955",
                "sha256": "54d62781d09d774d0ac6a559dfe482fafaf0c313741e2c7e187884e4f2579657"
            },
            "downloads": -1,
            "filename": "line_works_sdk-3.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "25b1eb03c94a16ad0bedf0e05b587955",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 63000,
            "upload_time": "2025-02-08T16:31:17",
            "upload_time_iso_8601": "2025-02-08T16:31:17.499967Z",
            "url": "https://files.pythonhosted.org/packages/03/19/01c44ec44e9079f446b4f6693becaa55a5dc157d131942ee530929f35679/line_works_sdk-3.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "45ab74cdfb49c1b27ca71169d843e82f176226e651a584cc2b66abf95c088619",
                "md5": "7bcb72886519834838fbf9e2f74cdf54",
                "sha256": "7963849e0906463fb7d89a9054a9e9bc227b0412c54515d285e70c2cfd8e19a1"
            },
            "downloads": -1,
            "filename": "line_works_sdk-3.4.tar.gz",
            "has_sig": false,
            "md5_digest": "7bcb72886519834838fbf9e2f74cdf54",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 34784,
            "upload_time": "2025-02-08T16:31:20",
            "upload_time_iso_8601": "2025-02-08T16:31:20.168146Z",
            "url": "https://files.pythonhosted.org/packages/45/ab/74cdfb49c1b27ca71169d843e82f176226e651a584cc2b66abf95c088619/line_works_sdk-3.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-08 16:31:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "nanato12",
    "github_project": "line-works-sdk",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "2.9.2"
                ]
            ]
        },
        {
            "name": "pydantic_core",
            "specs": [
                [
                    ">=",
                    "2.23.4"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "websockets",
            "specs": [
                [
                    ">=",
                    "14.2"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "<",
                    "3.0.0"
                ],
                [
                    ">=",
                    "1.25.3"
                ]
            ]
        },
        {
            "name": "python_dateutil",
            "specs": [
                [
                    ">=",
                    "2.8.2"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    ">=",
                    "4.7.1"
                ]
            ]
        }
    ],
    "lcname": "line-works-sdk"
}
        
Elapsed time: 0.67894s