{"id":20160406,"url":"https://github.com/laravieira/willy","last_synced_at":"2025-07-07T18:34:52.993Z","repository":{"id":40579064,"uuid":"199716994","full_name":"laravieira/Willy","owner":"laravieira","description":"Willy is your best, beautiful, little and cute friend. He will help to do everything possible.","archived":false,"fork":false,"pushed_at":"2024-07-28T21:26:03.000Z","size":1781,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-13T13:50:45.650Z","etag":null,"topics":["discord","discord-bot","discord-java","gpt-3","telegram-bot","watson-assistant","whatsapp-chat"],"latest_commit_sha":null,"homepage":"https://willybot.carrd.co/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/laravieira.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-30T19:45:37.000Z","updated_at":"2024-07-28T21:26:08.000Z","dependencies_parsed_at":"2024-07-28T22:58:22.402Z","dependency_job_id":null,"html_url":"https://github.com/laravieira/Willy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laravieira%2FWilly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laravieira%2FWilly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laravieira%2FWilly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laravieira%2FWilly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/laravieira","download_url":"https://codeload.github.com/laravieira/Willy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241600481,"owners_count":19988713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discord","discord-bot","discord-java","gpt-3","telegram-bot","watson-assistant","whatsapp-chat"],"created_at":"2024-11-14T00:14:10.275Z","updated_at":"2025-03-03T02:40:38.412Z","avatar_url":"https://github.com/laravieira.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Willy\nWilly is your best, beautiful, little and cute friend.\n\n![Willy's showcase image](assets/showcase.png)\n\n## Is Willy on...\n* [x] [Discord](https://discordapp.com/users/604134489484165121)\n* [x] [Whatsapp](https://wa.me/19292381810?text=Heey!%20What'%20up) `+19292381810`\n* [x] [Telegram](https://t.me/WillyDiscordBot)\n\n###### You can share Willy through [https://willybot.carrd.co/](https://willybot.carrd.co/).\n\n## Where does Willy live?\nWilly is currently hosted on an AWS EC2 instance.\n\n## How does Willy think?\n### Willy is a interface that passes the messages to:\n1. [Watson Assistent](https://assistant-us-south.watsonplatform.net/), who analyze the message and return an action.\n2. [Open AI - GPT-4](https://openai.com/), who builds the Willy's responses when no action is requested.\n\n### Willy has support to some action like:\n* Short a link using Bitly API.\n* Give the direct link of a given YouTube video.\n\n### Willy runs as a service and is built with:\n* Java SDK 17, with preview features enabled.\n* Maven project manager\n* Run on both Windows and Linux\n\n## Can I try it?\nFirst need to build him:\n```shell\nmaven test\nmaven package\n```\nTo run use:\n```shell\njava --enable-preview -jar /target/willy-0.17.0-jar-with-dependencies.jar\n```\n\n### Configuring\nWilly can have all its configs on a *config.yml* or using environment variables:\n###### Config.yml\n```yaml\nname:                   # type: TYPE_STRING, default: \"Willy\"\naliases: []             # type: TYPE_LIST,   default: [\"willy\"]\ncontext_lifetime:       # type: TYPE_TIME,   default: \"5m\"\nignore_if_start_with:   # type: TYPE_LIST,   default: [\"!\", \"?\", \"@\", \"/\", \"\\\\\", \"//\", \"#\"]\n\n// Watson Assistant settings\nwatson:\n  session-live:         # type: TYPE_TIME,    default: \"5m\"\n  keep-alive:           # type: TYPE_BOOLEAN, default: false\n  api-date:             # type: TYPE_STRING,  default: \"2021-11-27\"\n  server-url:           # type: TYPE_STRING,  default: \"https://api.us-south.assistant.watson.cloud.ibm.com\"\n  assistant-id:         # type: TYPE_STRING,  default: null\n  credentials-password: # type: TYPE_STRING,  default: null\n\n// Discord settings\ndiscord:\n  enable:             # type: TYPE_BOOLEAN, default: true\n  client-id:          # type: TYPE_STRING,  default: null\n  token:              # type: TYPE_STRING,  default: null\n  verbose-channel:    # type: TYPE_STRING,  default: null\n  keep-willy-nick:    # type: TYPE_BOOLEAN, default: true\n  keep-master-nick:   # type: TYPE_STRING,  default: null\n  clear-public-chats: # type: TYPE_BOOLEAN, default: true\n  clear-after-wait:   # type: TYPE_TIME,    default: \"10m\"\n  admin:\n    guild:            # type: TYPE_LONG,    default: null\n    command:          # type: TYPE_LONG,    default: null\n    log:              # type: TYPE_LONG,    default: null\n\n// OpenAI settings\nopenai:\n  enable: # type: TYPE_BOOLEAN, default: true\n  token:  # type: TYPE_STRING,  default: null\n\n// Whatsapp Settings\nwhatsapp:\n  enable:      # type: TYPE_BOOLEAN, default: true\n  shared-chat: # type: TYPE_BOOLEAN, default: false\n\n// Telegram Settings\ntelegram:\n  enable: # type: TYPE_BOOLEAN, default: true\n  token:  # type: TYPE_STRING,  default: null\n\n// Audio Player Settings\naudio-player:\n  enable:                     # type: TYPE_BOOLEAN, default: true\n  change-activity:            # type: TYPE_BOOLEAN, default: true\n  command-default-channel-id: # type: TYPE_STRING,  default: null\n  blends-for-play:            # type: TYPE_LIST,    default: [\"play\", \"toca\", \"adiciona\", \"reproduz\", \"reproduza\", \"toque\", \"coloca\"]\n\n// Bitly Settings\nbitly:\n  enable: # type: TYPE_BOOLEAN, default: true\n  token:  # type: TYPE_STRING,  default: null\n\n// YouTube Downloader Settings\nyoutube-downloader:\n  enable:    # type: TYPE_BOOLEAN, default: true\n  willy-vpn: # type: TYPE_BOOLEAN, default: false\n  use-bitly: # type: TYPE_BOOLEAN, default: true\n\n// Willy Shadow Settings\nshadow:\n  enable: # type: TYPE_BOOLEAN, default: false\n  token:  # type: TYPE_STRING,  default: null\n```\n###### Environment variables\nThe environment variables are respectively equivalent to the *config.yml* configs, and, if set, they are prioritized.\n```shell\nWILLY_NAME\nWILLY_ALIASES\nWILLY_CONTEXT_LIFETIME\nWILLY_IGNORE_IF_START_WITH\n\n// Watson Assistant settings\nWILLY_WA_SESSION_LIVE\nWILLY_WA_KEEP_ALIVE\nWILLY_WA_API_DATE\nWILLY_WA_SERVER_URL\nWILLY_WA_ASSISTANT_ID\nWILLY_WA_PASSWORD\n\n// Discord settings\nWILLY_DISCORD_ENABLE\nWILLY_DISCORD_CLIENT_ID\nWILLY_DISCORD_TOKEN\nWILLY_DISCORD_VERBOSE\nWILLY_DISCORD_KEEP_NICK_WILLY\nWILLY_DISCORD_KEEP_NICK_MASTER\nWILLY_DISCORD_CLEAR_PUBLIC_CHATS\nWILLY_DISCORD_CLEAR_PUBLIC_CHATS_AFTER\nWILLY_DISCORD_ADMIN_GUILD\nWILLY_DISCORD_ADMIN_COMMAND\nWILLY_DISCORD_ADMIN_LOG\n\n// OpenAI settings\nWILLY_OPENAI_ENABLE\nWILLY_OPENAI_TOKEN\n\n// Whatsapp Settings\nWILLY_WHATSAPP_ENABLE\nWILLY_WHATSAPP_SHARED\n\n// Telegram Settings\nWILLY_TELEGRAM_ENABLE\nWILLY_TELEGRAM_TOKEN\n\n// Audio Player Settings\nWILLY_AP_ENABLE\nWILLY_AP_CHANGE_ACTIVITY\nWILLY_AP_DEFAULT_CHANNEL\nWILLY_AP_BLENDS\n\n// Bitly Settings\nWILLY_BITLY_ENABLE\nWILLY_BITLY_TOKEN\n\n// YouTube Downloader Settings\nWILLY_YTD_ENABLE\nWILLY_YTD_LOCAL\nWILLY_YTD_USE_BITLY\n\n// Willy Shadow Settings\nWILLY_SHADOW_ENABLE\nWILLY_SHADOW_TOKEN\n```\nIf a function/chat is enabled, all its `null` configurations need to be set.\n\n## Getting/Giving help\n[Willy's Discord support server](https://discord.gg/q4yGa9G7hh)\n\n## Licensing\nApache 2.0.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaravieira%2Fwilly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaravieira%2Fwilly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaravieira%2Fwilly/lists"}