Skip to content
Paranoid text spacing as a service
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs add a simple static site Apr 10, 2018
fixtures add functions Apr 10, 2018
functions
infrastructure manage AWS infrastructures with Terraform Apr 15, 2018
vendor/github.com
.gitignore
Gopkg.lock
Gopkg.toml use dep for Go dependency management Apr 10, 2018
LICENSE
Makefile improve Makefile Apr 10, 2018
README.md
mkdocs.yml add a simple static site Apr 10, 2018
project.json add functions Apr 10, 2018

README.md

pangu.space

Paranoid text spacing for good readability, to automatically insert whitespace between CJK (Chinese, Japanese, Korean) and half-width characters (alphabetical letters, numerical digits and symbols).

Usage

Current APIs:

  • https://api.pangu.space/v1/spacing-text?t=YOUR-TEXT

in Command-line interface:

$ curl https://api.pangu.space/v1/spacing-text -G --data-urlencode "t=當你凝視著bug,bug也凝視著你" -H "x-api-key: TiEeVInyGza4ta0kougRH4MBBfdGe2Q91TjrbQLm" -w "\n"
當你凝視著 bug,bug 也凝視著你

in Python:

import requests

r = requests.get('https://api.pangu.space/v1/spacing-text?t=當你凝視著bug,bug也凝視著你', headers={'x-api-key': 'TiEeVInyGza4ta0kougRH4MBBfdGe2Q91TjrbQLm'})
print(r.content.decode('utf-8'))
# 當你凝視著 bug,bug 也凝視著你

You must request the API with a HTTP header x-api-key: TiEeVInyGza4ta0kougRH4MBBfdGe2Q91TjrbQLm. Yeah, you are free to use the API key for accessing the service. Although it has a quota of 100000 requests per month.

Development

pangu.space is built on AWS Lambda and Amazon API Gateway. I use Apex to manage and deploy Lambda functions.

# deploy all functions
$ apex deploy

# view logs
$ apex logs -f

# invoke a function directly
$ apex invoke spacing_text --logs
{
    "statusCode": 400,
    "headers": null,
    "body":"{\"message\": \"No text was provided in HTTP query string\"}"
}

# invoke a function with an API Gateway event
$ cat fixtures/spacing_text_event.json
{
    "queryStringParameters": {"t": "與PM戰鬥的人,應當小心自己不要成為PM"}
}
$ apex invoke spacing_text --logs < fixtures/spacing_text_event.json
{
    "statusCode": 200,
    "headers": {"content-type": "text/plain; charset=utf-8"},
    "body": "與 PM 戰鬥的人,應當小心自己不要成為 PM"
}

Related Posts

You can’t perform that action at this time.