{"id":29019446,"url":"https://github.com/xct007/suryarb","last_synced_at":"2025-08-24T17:40:59.456Z","repository":{"id":222780409,"uuid":"758361521","full_name":"xct007/SuryaRB","owner":"xct007","description":"We moved.","archived":false,"fork":false,"pushed_at":"2025-05-08T08:15:22.000Z","size":595,"stargazers_count":23,"open_issues_count":5,"forks_count":19,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-12T01:35:45.302Z","etag":null,"topics":["baileys","bot","bot-wa","surya-md","whatsapp-bot"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xct007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2024-02-16T06:35:39.000Z","updated_at":"2025-05-25T02:46:44.000Z","dependencies_parsed_at":"2024-02-16T07:32:02.410Z","dependency_job_id":"3a4e4ee4-9a53-493e-afc1-a7291654dfbd","html_url":"https://github.com/xct007/SuryaRB","commit_stats":null,"previous_names":["xct007/suryarb"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/xct007/SuryaRB","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xct007%2FSuryaRB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xct007%2FSuryaRB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xct007%2FSuryaRB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xct007%2FSuryaRB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xct007","download_url":"https://codeload.github.com/xct007/SuryaRB/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xct007%2FSuryaRB/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271915774,"owners_count":24843190,"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","status":"online","status_checked_at":"2025-08-24T02:00:11.135Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["baileys","bot","bot-wa","surya-md","whatsapp-bot"],"created_at":"2025-06-26T00:30:25.936Z","updated_at":"2025-08-24T17:40:59.398Z","avatar_url":"https://github.com/xct007.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Moved here](https://github.com/frierendv/surya)\n\n\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003e\n\t    \u003ci\u003eSURYA\u003c/i\u003e \u003c/br\u003e EXCLUSIVE\n    \u003c/h1\u003e\n    \u003ch3\u003e\n        ___________________________\u003c/br\u003e\n        PERFECTION REDEFINED\n    \u003c/h3\u003e\n    \u003cimg src=\"https://i.pinimg.com/originals/df/f2/f5/dff2f59d1a0ad6e2b6556e3c43c1cf79.jpg\" alt=\"Surya Exclusive MD\"/\u003e\n\u003c/div\u003e\n\n**PT Perusahaan Rokok Tjap Gudang Garam Tbk** ([Republican spelling](https://en.wikipedia.org/wiki/Republican_Spelling_System) [Indonesian](https://en.wikipedia.org/wiki/Indonesian_language) for \"Salt Warehouse brand Cigarette Company plc\"), [trading as](https://en.wikipedia.org/wiki/Trade_name) **PT Gudang Garam Tbk**, is an Indonesian tobacco company, best known for its [_kretek_](https://en.wikipedia.org/wiki/Kretek) (clove cigarette) products. It is Indonesia's second-largest tobacco manufacturer, with a market share of about 20%. The company was founded on 26 June 1958 by Tjoa Ing Hwie, who changed his name to [Surya Wonowidjojo](https://en.wikipedia.org/wiki/Surya_Wonowidjojo) (1923–1985). In 1984, control of the company was passed to Wonowidjojo's son, Cai Daoheng/Tjoa To Hing ([Rachman Halim](https://en.wikipedia.org/wiki/Rachman_Halim)), who subsequently became the richest man in Indonesia. Halim headed the company until his death at the age of 60 in 2008.\n\n# Table of Contents\n\n- [Table of Contents](#table-of-contents)\n\t- [Requirements](#requirements)\n\t- [Installation](#installation)\n\t- [Creating features/plugins](#creating-featuresplugins)\n\t- [Contributing](#contributing)\n\t- [License](#license)\n\t- [Contributors](#contributors)\n\n## Requirements\n\n- [Node.js](https://nodejs.org/en/download/) v20 or higher\n- [Git](https://git-scm.com/downloads)\n- [NPM](https://www.npmjs.com/get-npm) or [Yarn](https://yarnpkg.com/getting-started/install)\n- [FFmpeg](https://ffmpeg.org/download.html) **(required for Sticker and Audio features)**\n\n## Installation\n\n1. **Clone the repository**\n   ```sh\n   git clone https://github.com/xct007/SuryaRB.git\n   ```\n2. **Install the dependencies**\n   ```sh\n   npm install\n   ```\n3. **Create or rename the .env.example file to .env**\n   ```sh\n   ITSROSE_APIKEY=PASTE_YOUR_APIKEY_HERE\n   ```\n   Get your API key from [API Dashboard](https://dash.itsrose.life)\n4. **Edit the config.js file**\n\n   ```javascript\n   export const Config = {\n   \t// The bot's phone number\n   \t// required if use pairing code\n   \tphone_number: \"628385818401\",\n\n   \t// Owner's phone number\n   \towners: [\"628385818401\"],\n\n   \t// use pairing or not\n   \tuse_pairing_code: true,\n\n   \t// Wait time for requesting pairing (in milliseconds)\n   \tpairing_wait: 1000 * 6,\n\n   \t// prefix for commands\n   \tprefix: [\"!\", \".\"],\n\n   \t// use .env file for API key\n   \titsrose_apikey: process.env.ITSROSE_APIKEY,\n\n   \t// timezone\n   \ttimezone: \"Asia/Jakarta\",\n\n   \t// Database settings\n   \tdatabase: {\n   \t\t// use mongo or not\n   \t\tuse_mongo: true,\n   \t\tmongo_url: \"mongodb://localhost:27017/database\",\n\n   \t\t// Path to the database file\n   \t\tpath: \"./database.json\",\n\n   \t\t// Save interval (in milliseconds)\n   \t\tsave_interval: 10_000,\n\n   \t\t// show database save logs\n   \t\tdebug: false,\n   \t},\n   };\n   ```\n\n5. **Run the application:**\n\n   `node index.js` / `npm start` / `yarn start`\n\n   or using [pm2](https://pm2.keymetrics.io/docs/usage/quick-start/):\n\n   ```sh\n   pm2 start index.js --name \"SuryaRB\"\n   pm2 logs SuryaRB\n   ```\n\n## Creating features/plugins\n\nCreate new file in `Message/Features` folder with the following template\n\n```javascript\nexport default {\n\t// Command to trigger the execution\n\t// Can be an array of strings to have multiple triggers\n\tcommand: [\"command\", \"command2\"],\n\t// Description of the command, displayed in the menu\n\tdescription: \"The description of the command\",\n\t// Category as header in the menu\n\tcategory: \"My Category\",\n\n\t// If true, only the owner listed in config.js can call the command\n\towner: false,\n\t// Only admin in the group can call the command\n\tadmin: false,\n\t// If hidden, the command will not be shown in the menu\n\thidden: false,\n\t// If true, user limit will be checked before executing the command\n\t// If the limit is reached, the command will not be executed\n\tlimit: false,\n\n\t// If true the command only can be call in group chat\n\tgroup: false,\n\t// If true the command only can be call in private chat\n\tprivate: false,\n\n\t/**\n\t * Handler function to execute the command\n\t * @param {import(\"../../Utils/Messages\").ExtendedWAMessage} m - The message object.\n\t * @param {import(\"../Handler\").miscOptions} options - The options.\n\t */\n\texecute: async function (\n\t\tm,\n\t\t{\n\t\t\targs,\n\t\t\tsock,\n\t\t\tconn,\n\t\t\tapi,\n\t\t\tgroupMetadata,\n\t\t\tisOwner,\n\t\t\tisAdmin,\n\t\t\tcommand,\n\t\t\ttext,\n\t\t\tusedPrefix,\n\t\t\tdb,\n\t\t}\n\t) {\n\t\t// Single reply\n\t\tm.reply(\"Hello World\");\n\n\t\t// Single reply with fancy text\n\t\t// 2nd parameter is the style of the text listed in Config/Fonts.js\n\t\tm.reply(\"Hello World\", \"funky\");\n\n\t\t// Reply then update message\n\t\tm.replyUpdate(\"previous message\", async (update) =\u003e {\n\t\t\t// do something\n\t\t\t//...\n\t\t\t// update the message\n\t\t\tupdate(\"new message\");\n\t\t});\n\t\t// or\n\t\tconst update = await m.replyUpdate(\"Hi\");\n\t\t// do something\n\t\tupdate(\"Hi again\");\n\n\t\t// react to the message\n\t\tm.react(\"👍\");\n\n\t\t// delete the message (if the bot has the permission to do so)\n\t\tm.delete();\n\n\t\t// Download media (image, video, audio)\n\t\tconst media = m?.download?.().catch(() =\u003e null);\n\t\tif (media) {\n\t\t\t// Do something with the media buffer\n\t\t}\n\n\t\t// Make a request to the ITSROSE API (Axios instance)\n\t\t// api.get() and api.post() are the same as axios.get() and axios.post()\n\t\t// 1st parameter is the path to the endpoint (without the base URL)\n\t\t// 2nd parameter is the request body or query parameters (optional)\n\t\t// See Utils/ApiRequest.js for more information\n\t\tconst response = await api.get(\"/path/to/endpoint\", { param: \"value\" });\n\t\tif (response.data.status) {\n\t\t\t// Do something with the response\n\t\t\tconst data = response.data;\n\t\t\tm.reply(data);\n\t\t}\n\t},\n\n\t// Message to display when the command execution fails\n\t// %cmd alias for the command, %error alias for the error\n\tfailed: \"Failed to execute the %cmd command\\n\\n%error\",\n\n\t// Message to display while waiting for the command to finish (useless for now)\n\t// aliase:\n\t// %name = user pushName\n\t// %tag = tag the user\n\t// %group = group subject/name\n\twait: null, // null | string | string[] | any\n\t// wait: [\"Please wait %tag\", \"Hold on %tag, fetching response\"], // random if array\n\n\t// Message to display when the command execution is done (useless for now)\n\t// aliase:\n\t// %name = user pushName\n\t// %tag = tag the user\n\t// %group = group subject/name\n\t// %exec = speed the execution time \"12.345 ms\"\n\tdone: null, // null | string | string[] | any\n\t// done: \"Success %exec\" // random if array\n};\n```\n\n## Contributing\n\nYou can contribute to the development of this project by submitting a pull request. If you find any bugs, please report them by creating an issue.\n\n1. Fork the repository\n2. Create a new branch (`git checkout -b feature/feature-name`)\n3. Make your changes\n4. Commit your changes (`git commit -am 'Add some feature'`)\n5. Push to the branch (`git push origin feature/feature-name`)\n6. Create a new Pull Request\n7. Get your PR reviewed and merged\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n## Contributors\n\n[![](https://contrib.rocks/image?repo=xct007/SuryaRB)](https://github.com/xct007/SuryaRB/graphs/contributors)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxct007%2Fsuryarb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxct007%2Fsuryarb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxct007%2Fsuryarb/lists"}