Skip to content

Lee4test/hujiang_dictionary

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deploy to Cloudflare

  • 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 こんにちは

web

see telegram bot

screenshot

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

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

vim wrangler.toml
# build and deploy
cargo install worker-build
npx wrangler deploy

wrangler.toml config 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

custom openai api modal in common/config/*.json, which will auto merge all files

{
    "openrouter": {
        "name": "openrouter",
        "base_url": "https://openrouter.ai/api/v1",
        "api_key": "sk-or-vx-************************",
        "reasoning": {
            "enabled": true
        },
        "models": [
            "openai/gpt-oss-20b:free",
            "deepseek/deepseek-chat-v3.1:free"
        ]
    },
    "gemini": {
        "name": "gemini",
        "base_url": "https://generativelanguage.googleapis.com/v1beta/openai",
        "api_key": "****************",
        "models": [
            "gemini-2.5-pro",
            "gemini-2.5-flash",
            "gemini-2.5-flash-lite",
            "gemini-2.0-flash",
            "gemini-2.0-flash-lite"
        ]
    }
}

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"
npx wrangler deploy

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 100.0%