hujiang_dictionary

hujiang_dictionary

日本語辞書 by Rust, support Telegram bot, AWS Lambda and Cloudflare Workers.

Stars: 70

Visit
 screenshot

Hujiang Dictionary is a tool that provides translation services between Japanese, Chinese, and English. It supports various translation modes such as Japanese to Chinese, Chinese to Japanese, English to Japanese, and more. The tool utilizes cloud services like Telegram, Lambda, and Cloudflare Workers for different deployment options. Users can interact with the tool via a command-line interface (CLI) to perform translations and access online resources like weblio and Google Translate. Additionally, the tool offers a Telegram bot for users to access translation services conveniently. The tool also supports setting up and managing databases for storing translation data.

README:

  • cloudflare api token need d1 and workers ai permission.
  • Either d1 database id or d1 database name must be provided.

build and run

cargo build --release
./target/release/hj jc こんにちは

cli

  • jc <word> - Japanese to Chinese
  • cj <word> - Chinese to Japanese
  • en <word> - English to Japanese
  • weblio <word> - weblio
  • ktbk <word> - コトバック
  • google <target> <words> - Google Translate, eg: google en こんにちは

Example:

./target/release/hj jc こんにちは
./target/release/hj cj 你好
./target/release/hj en hello
./target/release/hj en 你好
./target/release/hj weblio こんにちは
./target/release/hj ktbk 子供
./target/release/hj google ja Hello world!

screenshot

web

see telegram bot

screenshot

telegram bot

Support run telegram at local, lambda and cloudflare workers.

screenshot

service

cargo build --release

export TELOXIDE_TOKEN=12312313:sadsadasda
export MAINTAINER_ID=312321312
export ALLOW_USERS=312321312,232133424,123131243
export CLOUDFLARE_ACCOUNT_ID=dksaodjasopdjpadjapd
export CLOUDFLARE_API_TOKEN=dkapdpaksdpaspdnsknszcl
export CLOUDFLARE_D1_DATABASE_ID=231331-adae-3123-vdfsf-1313adssaeqewq
export CLOUDFLARE_D1_DATABASE_NAME=hujiang_dictionary

./target/release/tg

lambda

set blow env in lambda

  • TELOXIDE_TOKEN=12312313:sadsadasda
    telegram bot token
  • MAINTAINER_ID=312321312
    telegram user id
  • ALLOW_USERS=312321312,232133424,123131243
    allow telegram user id
  • CLOUDFLARE_ACCOUNT_ID=dksaodjasopdjpadjapd
    cloudflare account id
  • CLOUDFLARE_API_TOKEN=dkapdpaksdpaspdnsknszcl
    cloudflare api token
  • CLOUDFLARE_D1_DATABASE_ID=231331-adae-3123-vdfsf-1313adssaeqewq
    cloudflare d1 database id
  • CLOUDFLARE_D1_DATABASE_NAME=hujiang_dictionary
    cloudflare d1 database name

build and deploy lambda

cargo lambda build --release --bin lambda
cargo lambda deploy --binary-name lambda hj-telegram-bot

init d1 table and register webhook

curl https://<lambda-url>/d1/create_table
curl https://<lambda-url>/tgbot/register

cloudflare workers

set wrangler config in .env

vim .env

# build and deploy
cargo install worker-build
sh deploy.sh

.env example

D1_DATABASE_NAME=dict # d1 database name
D1_DATABASE_ID="57ccd046-bd5c-42a3-90a3-21da43bc119d" # d1 database id
TELEGRAM_TOKEN="****:*****" # telegram bot token
ALLOW_USERS="12345678,-23456789,34567890" # allow telegram user id, split by comma
MAINTAINER_ID="12345678" # send random word to the chat id when cron job run
WORKER_NAME="hj-dict" # cloudflare workers name
SCHEDULE="*/20 0-15 * * *" # cron schedule

init d1 table and register webhook

curl https://<workers-url>/d1/create_table
curl https://<workers-url>/tgbot/register

If use workers CI/CD, you can add following script in Build Command and Deploy Command

Build Command

git clone -b react https://github.com/Asutorufa/hujiang_dictionary.git react
cd react && npm install && npm run build && cd ..
cp -r react/out web/out
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup.sh
sh rustup.sh -y
export PATH="$HOME/.cargo/bin:$PATH"
cargo install worker-build

Deploy Command

export PATH="$HOME/.cargo/bin:$PATH"
sh deploy.sh

Others

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for hujiang_dictionary

Similar Open Source Tools

For similar tasks

For similar jobs