{"id":16150837,"url":"https://github.com/denysvitali/nodegram-bot","last_synced_at":"2025-06-25T02:06:36.836Z","repository":{"id":34171648,"uuid":"38018679","full_name":"denysvitali/nodegram-bot","owner":"denysvitali","description":"A Telegram-bot written in Node.JS","archived":false,"fork":false,"pushed_at":"2016-10-25T09:25:41.000Z","size":130,"stargazers_count":28,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-20T23:08:50.972Z","etag":null,"topics":["bot","js","node","telegram"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/denysvitali.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}},"created_at":"2015-06-25T00:33:30.000Z","updated_at":"2017-07-12T09:07:18.000Z","dependencies_parsed_at":"2022-09-02T15:52:30.429Z","dependency_job_id":null,"html_url":"https://github.com/denysvitali/nodegram-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/denysvitali/nodegram-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denysvitali%2Fnodegram-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denysvitali%2Fnodegram-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denysvitali%2Fnodegram-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denysvitali%2Fnodegram-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denysvitali","download_url":"https://codeload.github.com/denysvitali/nodegram-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denysvitali%2Fnodegram-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261789226,"owners_count":23209774,"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":["bot","js","node","telegram"],"created_at":"2024-10-10T00:52:48.288Z","updated_at":"2025-06-25T02:06:36.814Z","avatar_url":"https://github.com/denysvitali.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"http://i.imgur.com/Tz2m0v9.png\" width=150 /\u003e\n# nodegram-bot\nA Telegram-bot written in Node.JS\n\n![The trend plugin](http://i.imgur.com/Lz5oYTV.png)\n\n## First things first\nTo make your bot working you have to gather somehow a valid SSL certificate, because as stated in the docs of Telegram\n\u003e Whenever there is an update for the bot, we will send an HTTPS POST request to the specified url, containing a JSON-serialized Update.\n\nThis is the most tricky part. Once you've set-up your domain with the SSL certificate (maybe gathered ~~from [StartSSL](https://www.startssl.com/)~~ from [Let's Encrypt](https://letsencrypt.org/)) you could proceed to the configuration of apache.\n\n### Virtual Hosts, oh, virtual hosts\nIn my setup I used two Apache2 servers,\nI know, don't blame me, it was due to a management choice.\nIn this section we'll keep it simple and illustrate how to configure the Proxy Server (apache2)\n\n```\n\u003cVirtualHost *:443\u003e\n#SSL setup\nSSLEngine on\nSSLProtocol all -SSLv2 -SSLv3\nSSLCertificateFile \"/etc/apache2/ssl/denvit.work.crt\"\nSSLCertificateKeyFile \"/etc/apache2/ssl/denvit.work.pem\"\nSSLCertificateChainFile \"/etc/apache2/ssl/startssl.pem\"\nSSLCertificateChainFile \"/etc/apache2/ssl/sub.class1.server.ca.startssl.pem\"\n\n#Host info\nServerName denvit.work\nServerAlias vps.denvit.work\n\nProxyPreserveHost On\nProxyPass / http://127.0.0.1:30303/\nProxyPassReverse / http://127.0.0.1:30303/\n\u003c/VirtualHost\u003e\n```\n\nThings you probably need to change:\n\n-\tSSLCertificateFile, this is the path of your SSL certificate file\n-\tSSLCertificateKeyFile, this is the key of your SSL pair\n-\tServerName, this is your hostname. The one specified into the settings.js file\n-\tServerAlias, this is an alias for your virtualhost (in my case it's also reachable via https://vps.denvit.work/)\n\nSet up everything as this and just change it as you need.\nThe port should be 30303 if you didn't changed it into settings.js\n\n## Running\n1. install nodejs (`curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash - \u0026\u0026 sudo apt-get install -y nodejs`)\n2. install the dependencies with `npm install`\n3. run with `node index.js`\n\n## Plugins\n\n### Plugin manager\n![The plugin manager](http://i.imgur.com/XNkbj6p.png)\n\nThis is the father of every plugin,\nits job is to enable and disable the plugins on the fly when a **superuser** wants to.\nThe list of enabled plugins is kept, so you don't have to manually reenable everything at startup (check data/plugins_enabled.json for more info)\n\n#### Usage\n`/plugin list`\n\nList every plugin available (and their status)\n\n`/plugin enable \u003cplugin name\u003e`\n\nEnables a plugin\n\n`/plugins disable \u003cplugin name\u003e`\n\nDisable a plugin\n\n`/getmyid`\n\nShows your ID, this is very useful if you want to add yourself to the superusers and you look for your id\n\n\n### Help\n![The help plugin](http://i.imgur.com/2ahFz1A.png)\n\nThis plugin takes care of supplying all the usage information about the plugins to the user when requested\n\n#### Usage\n`/help`\n\nShows the general help, based on the enabled plugins\n\n`/help \u003cplugin friendly name\u003e`\n\nShows the plugin informations (Name, Friendly Name, Description and Usage)\n\n\n### Genmeme\nCreates a meme based on a your google images search keywords and the text(s) you provide\n![Genmeme plugin](http://i.imgur.com/Cd9jLLD.png)\n\n#### Usage\n`/genmeme image keywords-top text-bottom text`\n\n### Trends\nShow a graph of trend based on Google Trends\n![Trends plugin](http://i.imgur.com/Lz5oYTV.png)\n\n#### Usage\n`/trend trend1,trend2[,trend3,...]`\n\n### Clear\n\u003cimg src=\"http://i.imgur.com/spw9x7a.jpg\" height=100 /\u003e\n\nDid you ever thought of cleaning your chat?\nNow you can, with Mr.Clean!\n\n#### Result\n(obviously the output is more longer)\n![Clear](http://i.imgur.com/YKA10z2.png)\n\n#### Usage\n`/clear`\n\n### Version\nShows the version of the nodegram-bot\n\n#### Result\n![Version](http://i.imgur.com/GMtKSXu.png)\n\n#### Usage\n`/version`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenysvitali%2Fnodegram-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenysvitali%2Fnodegram-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenysvitali%2Fnodegram-bot/lists"}