forked from GitHub/dbot
		
	everything except wolfram working
This commit is contained in:
		
						commit
						03f2ac16b5
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,5 +1,4 @@ | ||||
| # Ignore the user config files | ||||
| config.json | ||||
| db.json | ||||
| 
 | ||||
| # ignore npm | ||||
|  | ||||
							
								
								
									
										2
									
								
								install
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								install
									
									
									
									
									
								
							| @ -14,7 +14,7 @@ then | ||||
|     exit 1 | ||||
| fi | ||||
| 
 | ||||
| npm install crypto-js process async wordnik node-uuid underscore request sandbox express moment-timezone moment jade databank databank-redis ent passport passport-local password-hash connect-flash  | ||||
| npm install node-units tvdb crypto-js 500px process async wordnik node-uuid underscore request sandbox express moment-timezone moment jade databank databank-redis ent passport passport-local password-hash connect-flash  | ||||
| 
 | ||||
| cd public/ | ||||
| wget http://twitter.github.com/bootstrap/assets/bootstrap.zip | ||||
|  | ||||
							
								
								
									
										28
									
								
								modules/SAMPLE/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								modules/SAMPLE/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| ## FOO | ||||
| 
 | ||||
| bar. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to foobar. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [foo](link) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| foo | ||||
| ``` | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| 
 | ||||
| #### ~foo [(bar] | ||||
| 
 | ||||
| Example: | ||||
| + ~foo bar | ||||
| 
 | ||||
| ### TODO | ||||
							
								
								
									
										4
									
								
								modules/SAMPLE/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								modules/SAMPLE/config
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| { | ||||
|     "foo": true, | ||||
|     "foo": "bar" | ||||
| } | ||||
							
								
								
									
										39
									
								
								modules/SAMPLE/foo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								modules/SAMPLE/foo
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | ||||
| /** | ||||
|  * Module Name: foo | ||||
|  * Description: bar. | ||||
|  * Requires: foo [bar] | ||||
|  */ | ||||
| 
 | ||||
| var _ = require('underscore')._, | ||||
| 	bar = require('foo');//dependencies | ||||
| 
 | ||||
| var foo = function(dbot) { //name of module | ||||
| 
 | ||||
| 		this.ApiRoot = 'API_ROOT_HERE'; | ||||
| 		 | ||||
| 		this.internalAPI = { | ||||
|         //code for internal api here | ||||
| 		}; | ||||
| 
 | ||||
| 		this.api = { | ||||
| 		//code for api here | ||||
| 		}; | ||||
| 
 | ||||
|     	this.commands = { | ||||
|         	//code for commands here | ||||
| 		}; | ||||
| 		 | ||||
| 		this.onLoad = function() { | ||||
|         //code for stuff to be done on load here | ||||
|         }; | ||||
|          | ||||
|         this.onDestroy = function() { | ||||
|         //stuff to be done on destroy here | ||||
|     	}; | ||||
|     } | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| exports.fetch = function(dbot) { | ||||
|     return new foo(dbot); //name of module | ||||
| }; | ||||
							
								
								
									
										8
									
								
								modules/SAMPLE/strings
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								modules/SAMPLE/strings
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| { | ||||
|     "foo": { | ||||
|         "en": "{output} bar" | ||||
|     }, | ||||
|     "foo2": { | ||||
|         "en": "Something went wrong :( Example:'~foo bar'" | ||||
|     } | ||||
| } | ||||
							
								
								
									
										3
									
								
								modules/SAMPLE/usage
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								modules/SAMPLE/usage
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| { | ||||
|     "~foo": "~foo [bar]" | ||||
| } | ||||
							
								
								
									
										34
									
								
								modules/fpx/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								modules/fpx/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | ||||
| ## 500px | ||||
| 
 | ||||
| Adds various 500px functionality. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to search for a random popular 500px photo. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [node-500px](https://github.com/ro-ka/node-500px) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| ignorable and consumerKey has to be configurated. It can be obtained at http://developers.500px.com | ||||
| ``` | ||||
| { | ||||
|     "ignorable": true, | ||||
|     "api_key": "CONSUMERKEY_HERE" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| 
 | ||||
|      ~r500px | ||||
| Responds with a random popular 500px photo. | ||||
| Example: | ||||
| + ~r500px | ||||
| 
 | ||||
| ### TODO | ||||
| 
 | ||||
| Photo by user etc. | ||||
							
								
								
									
										4
									
								
								modules/fpx/config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								modules/fpx/config.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| { | ||||
|     "ignorable": true, | ||||
|     "api_key": "CONSUMERKEY_HERE" | ||||
| } | ||||
							
								
								
									
										33
									
								
								modules/fpx/fpx.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								modules/fpx/fpx.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| /** | ||||
|  * Module Name: 500px | ||||
|  * Description: Adds various 500px functionality. | ||||
|  * Requires: node-500px [http://mjgil.github.io/five-px/]
 | ||||
|  */ | ||||
| 
 | ||||
| var _ = require('underscore')._, | ||||
|     API500px = require('500px').API500px; | ||||
| 
 | ||||
| var fpx = function(dbot) { | ||||
|     this.commands = { | ||||
|         '~r500px': function(event) { | ||||
|             var random = Math.floor(Math.random() * 30); | ||||
|             this.api500px.photos.getPopular({'sort': 'created_at', 'rpp': '30'},  function(error, results) { | ||||
|                 if (error) { | ||||
|                     event.reply(dbot.t('5px_error')); | ||||
|                     console.log(error); | ||||
|                 } else { | ||||
|                     var name = results.photos[random].name, | ||||
|                         url = results.photos[random].image_url; | ||||
|                     event.reply(dbot.t('5px_result',{'name':name,'url':url})); | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|     }; | ||||
|     this.onLoad = function() { | ||||
|         this.api500px = new API500px(this.config.api_key); | ||||
|     }.bind(this); | ||||
| }; | ||||
| 
 | ||||
| exports.fetch = function(dbot) { | ||||
|     return new fpx(dbot); | ||||
| }; | ||||
							
								
								
									
										8
									
								
								modules/fpx/strings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								modules/fpx/strings.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| { | ||||
|     "5px_result":{ | ||||
|         "en": "{name} - {url}" | ||||
|     }, | ||||
|     "5px_error": { | ||||
|         "en": "Something went wrong :( Example: '~r500px'" | ||||
|     } | ||||
| } | ||||
							
								
								
									
										3
									
								
								modules/fpx/usage.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								modules/fpx/usage.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| { | ||||
|     "~r500px": "~r500px" | ||||
| } | ||||
							
								
								
									
										32
									
								
								modules/imdb/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								modules/imdb/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | ||||
| ## IMDB | ||||
| 
 | ||||
| Adds various IMDB functionalities. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to search IMDB for a movie. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [request](https://github.com/mikeal/request) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| output prefix can be set. | ||||
| ``` | ||||
| { | ||||
|     "outputPrefix": "\u00033IMDB\u000f" | ||||
| } | ||||
| 
 | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| 
 | ||||
| #### ~imdb [movie] | ||||
| Searches IMDB for a movie. | ||||
| Example: | ||||
| + ~imdb Fear and Loathing in Las Vegas | ||||
| 
 | ||||
| ### TODO | ||||
							
								
								
									
										66
									
								
								modules/lastfm/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								modules/lastfm/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,66 @@ | ||||
| ## LastFM | ||||
| 
 | ||||
| Adds various LastFM functionalities. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to show stats of LastFM and such stuff. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [request](https://github.com/mikeal/request) | ||||
| + [async](https://github.com/caolan/async) | ||||
| + [moment](https://github.com/moment/moment) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| api_key and output prefix can be set. | ||||
| Example: | ||||
| ``` | ||||
| { | ||||
|     "dependencies": [ "profile" ], | ||||
|     "api_key": "blah", | ||||
|     "outputPrefix": "\u000315,5last.fm\u000f" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| 
 | ||||
| #### ~lastfm [user] | ||||
| Display all scrobbles of a user. | ||||
| Example: | ||||
| + ~lastfm reality | ||||
| 
 | ||||
| #### ~scrobbliest | ||||
| Displays the users with the most scrobbles. | ||||
| Example: | ||||
| + ~scrobbliest | ||||
| 
 | ||||
| #### ~suggestion | ||||
| Displays a suggestion based on the listened scrobbles. | ||||
| Example: | ||||
| + ~suggestion | ||||
| 
 | ||||
| #### ~listening | ||||
| Displays the currently/last played song of the posting user. | ||||
| Example: | ||||
| + ~listening | ||||
| 
 | ||||
| #### ~taste [user] | ||||
| Compares two users (the posting user and the defined user). | ||||
| Example: | ||||
| + ~taste reality | ||||
| 
 | ||||
| #### ~tastiest | ||||
| Displays the users that matches the most in music taste. | ||||
| Example: | ||||
| + ~tastiest | ||||
| 
 | ||||
| #### ~artists [user] | ||||
| Compares two users (the posting user and the defined user) and displays their matching artists. | ||||
| Example: | ||||
| + ~artists reality | ||||
| 
 | ||||
| ### TODO | ||||
							
								
								
									
										28
									
								
								modules/radio/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								modules/radio/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| ## TODO | ||||
| 
 | ||||
| bar. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to foobar. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [foo](link) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| foo | ||||
| ``` | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| 
 | ||||
| #### ~foo [(bar] | ||||
| 
 | ||||
| Example: | ||||
| + ~foo bar | ||||
| 
 | ||||
| ### TODO | ||||
| @ -46,7 +46,20 @@ var radio = function(dbot) { | ||||
|             }.bind(this)); | ||||
|         }.bind(this), | ||||
|     }; | ||||
|             | ||||
|         | ||||
|     this.commands={ | ||||
|         '~request': function(event){ | ||||
|             var dj = this.data['icy-description'], | ||||
|                 song = event.input[1]; | ||||
|             dbot.say(event.server, dj, dbot.t('radio_request',{ | ||||
|                 'user': event.user, | ||||
|                 'song': song | ||||
|             })); | ||||
|             event.reply('Song requested!'); | ||||
|         } | ||||
|     }; | ||||
|     this.commands['~request'].regex = [/^request ([\d\w\s-]*)/, 2]; | ||||
|      | ||||
|     this.onLoad = function() { | ||||
|         this.internalAPI.startRadio(); | ||||
|         dbot.api.timers.addTimer(20000, function() { | ||||
|  | ||||
| @ -4,5 +4,8 @@ | ||||
|     }, | ||||
|     "now_playing": { | ||||
|         "en": "Now Playing: {name} - {song} - {url}" | ||||
|     }, | ||||
|     "radio_request":{ | ||||
|         "en": "User {user} requests '{song}' to be played on the radio." | ||||
|     } | ||||
| } | ||||
|  | ||||
							
								
								
									
										33
									
								
								modules/soundcloud/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								modules/soundcloud/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| ## Souncloud | ||||
| 
 | ||||
| Adds various Soundcloud functionality. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to search Soundcloud for a song. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [request](https://github.com/mikeal/request) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| client_id and output prefix can be set. | ||||
| ``` | ||||
| { | ||||
|     "client_id": "CLIENT _ID_HERE, | ||||
|     "outputPrefix": "\u000307soundcloud\u000f", | ||||
|     "dependencies": [ "link" ] | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| 
 | ||||
| #### ~soundcloud [song] | ||||
| Searches Soundcloud for a song. | ||||
| Example: | ||||
| + ~soundcloud TNGHT | ||||
| 
 | ||||
| ### TODO | ||||
							
								
								
									
										83
									
								
								modules/sstats/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								modules/sstats/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,83 @@ | ||||
| ## sstats | ||||
| 
 | ||||
| Adds various stats functionality. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to print stats, such as how many words etc.. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [async](https://github.com/caolan/async) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| database type and curses can be set. | ||||
| ``` | ||||
| { | ||||
|     "dbType": "redis", | ||||
|     "dependencies": [ "users" ], | ||||
|     "curses": [ "s***", "f***" ] | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| 
 | ||||
| #### ~words [user] | ||||
| Displays how many words a user wrote. | ||||
| Example: | ||||
| + ~words reality | ||||
| 
 | ||||
| #### ~lines [user] | ||||
| Displays how many lines a user wrote. | ||||
| Example: | ||||
| + ~lines reality | ||||
| 
 | ||||
| #### ~loudest [channel] | ||||
| Displays the users with the most lines written. | ||||
| Example: | ||||
| + ~loudest #tripsit | ||||
| 
 | ||||
| #### ~uncouth [channel] | ||||
| Displays the users with the most curses written. | ||||
| Example: | ||||
| + ~uncouth #tripsit | ||||
| 
 | ||||
| #### ~shoutiest [user] | ||||
| Displays the users with the most capital words written. | ||||
| Example: | ||||
| + ~shoutiest #tripsit | ||||
| 
 | ||||
| #### ~wordiest [channel] | ||||
| Displays the users with the most words written. | ||||
| Example: | ||||
| + ~wordiest #tripsit | ||||
| 
 | ||||
| #### ~clines [user] | ||||
| Displays how many lines a user wrote in all channels. | ||||
| Example: | ||||
| + ~clines reality | ||||
| 
 | ||||
| #### ~last [user] | ||||
| Displays when the user was last seen. | ||||
| Example: | ||||
| + ~last reality | ||||
| 
 | ||||
| #### ~trackword [word] | ||||
| Adding a word to being tracked. | ||||
| Example: | ||||
| + ~trackword derp | ||||
| 
 | ||||
| #### ~word [word] | ||||
| Displays how often a word was written in all channels. | ||||
| Example: | ||||
| + ~word derp | ||||
| 
 | ||||
| #### ~wordusers [word] | ||||
| Displays how often and by whom a word was written. | ||||
| Example: | ||||
| + ~wordusers derp | ||||
| 
 | ||||
| ### TODO | ||||
| @ -2,4 +2,4 @@ | ||||
|     "dbType": "redis", | ||||
|     "dependencies": [ "users" ], | ||||
|     "curses": [ "shit", "piss", "fuck", "cunt", "cocksucker", "motherfucker", "tits" ] | ||||
| } | ||||
| } | ||||
							
								
								
									
										42
									
								
								modules/steam/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								modules/steam/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,42 @@ | ||||
| ## Steam | ||||
| 
 | ||||
| Adds various steam functionalities. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to seek and compare games inside the Steam library. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [request](https://github.com/mikeal/request) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| api_key and output prefix | ||||
| For example: | ||||
| ``` | ||||
| { | ||||
|     "api_key": "bleh", | ||||
|     "outputPrefix": "\u00033steam\u000f" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| 
 | ||||
| #### ~games [user] | ||||
| Seeks the games of a user. If left blank, the posting users games will be displayed. | ||||
| Example: | ||||
| + ~games reality | ||||
| + ~games | ||||
| 
 | ||||
| #### ~playing [user] | ||||
| Displays the currently/last played game of a user. If left blank, the posting users game will be displayed. | ||||
| Example: | ||||
| + ~playing reality | ||||
| + ~playing | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### TODO | ||||
| @ -1,4 +1,4 @@ | ||||
| { | ||||
|     "api_key": "bleh", | ||||
|     "outputPrefix": "\u00033steam\u000f" | ||||
| } | ||||
| } | ||||
							
								
								
									
										31
									
								
								modules/tvdb/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								modules/tvdb/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | ||||
| ## theTVDB | ||||
| 
 | ||||
| Addes various TVDB funtionalities. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to search for series on theTVDB.com. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [node-tvdb](https://github.com/enyo/node-tvdb) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| ignorable and apiKey can be set. A key can be requested at http://thetvdb.com/?tab=apiregister | ||||
| ``` | ||||
| { | ||||
|     "ignorable": true, | ||||
|     "api_key": "blah" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
|      ~tvdb [series] | ||||
| Searches for series on theTVDB | ||||
| Example: | ||||
| + ~tvdb How I met your Mother | ||||
| 
 | ||||
| ### TODO | ||||
							
								
								
									
										5
									
								
								modules/tvdb/config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								modules/tvdb/config.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| { | ||||
|     "ignorable": true, | ||||
|     "api_key": "blah", | ||||
|     "outputPrefix": "\u00033TVDB\u000f" | ||||
| } | ||||
							
								
								
									
										8
									
								
								modules/tvdb/strings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								modules/tvdb/strings.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| { | ||||
|     "tvdb_result": { | ||||
|         "en": "{name} - http://thetvdb.com/?id={id}" | ||||
|     }, | ||||
|     "tvdb_error": { | ||||
|         "en": "Something went wrong :( Example:'~tvdb How I met your Mother'" | ||||
|     } | ||||
| } | ||||
							
								
								
									
										39
									
								
								modules/tvdb/tvdb.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								modules/tvdb/tvdb.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | ||||
| /** | ||||
|  * Module Name: theTVDB | ||||
|  * Description: Addes various TVDB functionality. | ||||
|  * Requires: node-tvdb [https://github.com/enyo/node-tvdb]
 | ||||
|  */ | ||||
| 
 | ||||
| var _ = require('underscore')._, | ||||
|     TVDB = require('tvdb'); | ||||
| 
 | ||||
| var tvdb = function(dbot) { | ||||
|     this.commands = { | ||||
|         '~tvdb' : function(event) { | ||||
|             var query = event.input[1]; | ||||
|             this.thetvdb.findTvShow(query, function(err, tvShows) { | ||||
|                 if (err) { | ||||
|                     event.reply(dbot.t('tvdb_error')); | ||||
|                 } else { | ||||
|                     // Handle tvShows.
 | ||||
|                     var name = tvShows[0].name, | ||||
|                         id = tvShows[0].id; | ||||
| 
 | ||||
|                     event.reply(dbot.t('tvdb_result', { | ||||
|                         'name': name, | ||||
|                         'id': id | ||||
|                     })); | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|     }; | ||||
|     this.commands['~tvdb'].regex = [/^tvdb ([\d\w\s-]*)/, 2]; | ||||
|      | ||||
|     this.onLoad = function() { | ||||
|         this.thetvdb = new TVDB({ 'apiKey': this.config.api_key }); | ||||
|     }.bind(this); | ||||
| }; | ||||
| 
 | ||||
| exports.fetch = function(dbot) { | ||||
|     return new tvdb(dbot); | ||||
| }; | ||||
							
								
								
									
										3
									
								
								modules/tvdb/usage.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								modules/tvdb/usage.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| { | ||||
|     "~tvdb": "~tvdb [series]" | ||||
| } | ||||
							
								
								
									
										26
									
								
								modules/units/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								modules/units/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| ## Unit conversion | ||||
| 
 | ||||
| Converts units into other units. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to convert units into another | ||||
| unit given the international character of networks. Converts time, distance, | ||||
| mass, volume and digital values. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [node-units](https://github.com/brettlangdon/node-units) | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| #### ~convert [input value] [input unit] to [output unit] | ||||
| 
 | ||||
| Example: | ||||
| ~convert 5 minutes to s | ||||
| ~convert 20 quarts to gallons | ||||
| 
 | ||||
| ### TODO | ||||
| 
 | ||||
| + Currency Conversion | ||||
							
								
								
									
										3
									
								
								modules/units/config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								modules/units/config.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| { | ||||
|     "ignorable": true | ||||
| } | ||||
							
								
								
									
										8
									
								
								modules/units/strings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								modules/units/strings.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| { | ||||
|     "unit_result": { | ||||
|         "en": "{input}: {output}" | ||||
|     }, | ||||
|     "unit_error": { | ||||
|         "en": "Something went wrong :( Example:'~convert 5 minutes to s'" | ||||
|     } | ||||
| } | ||||
							
								
								
									
										32
									
								
								modules/units/units.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								modules/units/units.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | ||||
| /** | ||||
|  * Module Name: Unit Conversion | ||||
|  * Description: Converts units. | ||||
|  * Requires: node-units [https://github.com/brettlangdon/node-units]
 | ||||
|  * TODO: currency converting | ||||
|  */ | ||||
| 
 | ||||
| var _ = require('underscore')._, | ||||
|     unit = require('node-units'); | ||||
| 
 | ||||
| var units = function(dbot) { | ||||
|         this.commands = { | ||||
|             '~convert': function(event) { | ||||
|                 var query = event.input[1]; | ||||
|                 try { | ||||
|                     var result = unit.convert(query); | ||||
|                     event.reply(dbot.t('unit_result', { | ||||
|                         'input': query, | ||||
|                         'output': result | ||||
|                     })); | ||||
|                 } | ||||
|                  catch (e) { | ||||
|                     event.reply(dbot.t('unit_error')); | ||||
|                 } | ||||
|             } | ||||
|         }; | ||||
|         this.commands['~convert'].regex = [/^convert ([\d\w\s-]*)/, 2]; | ||||
| }; | ||||
| 
 | ||||
| exports.fetch = function(dbot) { | ||||
|     return new units(dbot); | ||||
| }; | ||||
							
								
								
									
										3
									
								
								modules/units/usage.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								modules/units/usage.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| { | ||||
|     "~convert": "~convert [input value] [input unit] to [output unit]" | ||||
| } | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
|     "ignorable": false, | ||||
|     "dependencies": [ "event" ], | ||||
|     "dependencies": [ "event" , "users"], | ||||
|     "dbKeys": [ "knownUsers" ], | ||||
|     "dbType": "redis" | ||||
| } | ||||
|  | ||||
							
								
								
									
										33
									
								
								modules/warning/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								modules/warning/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| ## Warning | ||||
| 
 | ||||
| Adds functionality to warn a user. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides commands which allows power users to warn another user. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [node-uuid](https://github.com/broofa/node-uuid) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| foo | ||||
| ``` | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| 
 | ||||
| #### ~warn [user] | ||||
| Warning a user. | ||||
| Example: | ||||
| + ~warn reality | ||||
| 
 | ||||
| #### ~warnings [user] | ||||
| Getting info of all warnings. | ||||
| Example: | ||||
| + ~warnings reality | ||||
| 
 | ||||
| ### TODO | ||||
							
								
								
									
										33
									
								
								modules/wolframalpha/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								modules/wolframalpha/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| ## Wolfram Alpha Calculator | ||||
| 
 | ||||
| Calculates whatever you want. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to calculate whatever they want. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [node-wolfram](https://github.com/strax/node-wolfram) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| This module is ignorable. | ||||
| 
 | ||||
| appID has to be added into config.json. It can be obtained at | ||||
| http://products.wolframalpha.com/developers/ for free. | ||||
| `{ | ||||
|     "ignorable": true, | ||||
|     "appID": "APP_ID_HERE" | ||||
| }` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| #### ~calculate [(whatever)] | ||||
| 
 | ||||
| Example: | ||||
| + ~calculate (2+2) | ||||
| + ~calculate (x^2+2x+4) | ||||
| 
 | ||||
| ### TODO | ||||
							
								
								
									
										4
									
								
								modules/wolframalpha/config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								modules/wolframalpha/config.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| { | ||||
|     "ignorable": true, | ||||
|     "appID": "blah" | ||||
| } | ||||
							
								
								
									
										8
									
								
								modules/wolframalpha/strings.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								modules/wolframalpha/strings.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| { | ||||
|     "result": { | ||||
|         "en": "{output}" | ||||
|     }, | ||||
|     "error": { | ||||
|         "en": "Something went wrong :( Example:'~calculate (2+2)'" | ||||
|     } | ||||
| } | ||||
							
								
								
									
										3
									
								
								modules/wolframalpha/usage.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								modules/wolframalpha/usage.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | ||||
| { | ||||
|     "~calculate": "~calculate [(whatever)]" | ||||
| } | ||||
							
								
								
									
										48
									
								
								modules/wolframalpha/wolframalpha.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								modules/wolframalpha/wolframalpha.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,48 @@ | ||||
| /** | ||||
|  * Module Name: wolframalpha | ||||
|  * Description: Calculates all kinds of stuff through Wolfram Alpha. | ||||
|  * Requires: node-wolfram [https://github.com/strax/node-wolfram]
 | ||||
|  */ | ||||
| 
 | ||||
| var _ = require('underscore')._, | ||||
| 	Client = require('node-wolfram'); | ||||
| 
 | ||||
| var wolframalpha = function(dbot) { | ||||
|     	this.commands = { | ||||
|         	'~calculate': function(event) { | ||||
|         		var wolfram = new Client(this.config.appID); | ||||
|                 var query = event.input[1]; | ||||
|                 wolfram.query(event.input[1], function(err, result) { | ||||
| 					if(err) | ||||
| 						event.reply(dbot.t('error')); | ||||
| 					else | ||||
| 					{ | ||||
| 						var out = ""; | ||||
| 						for(var a=0; a<result.queryresult.pod.length; a++) | ||||
| 						{ | ||||
| 							var pod = result.queryresult.pod[a]; | ||||
| 							out += pod.$.title; | ||||
| 							out +=": "; | ||||
| 								for(var b=0; b<pod.subpod.length; b++) | ||||
| 								{ | ||||
| 									var subpod = pod.subpod[b]; | ||||
| 									for(var c=0; c<subpod.plaintext.length; c++) | ||||
| 									{ | ||||
| 										var text = subpod.plaintext[c]; | ||||
| 										console.log('\t', text); | ||||
| 										out += text; | ||||
| 										out += " ; "; | ||||
| 									} | ||||
| 								} | ||||
| 						} | ||||
| 						event.reply(dbot.t('result',{'output':out})); | ||||
| 					} | ||||
| 				}); | ||||
| 			} | ||||
| 		}; | ||||
| 
 | ||||
| }; | ||||
| 
 | ||||
| exports.fetch = function(dbot) { | ||||
|     return new wolframalpha(dbot); | ||||
| }; | ||||
							
								
								
									
										41
									
								
								modules/words/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								modules/words/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| ## words | ||||
| 
 | ||||
| Adds various functionality for words. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides commands which allows users to have various functionality for words, | ||||
| such as defining, getting the etymology and jimble the letters. | ||||
| To achieve that, this module seeks the wordnik database. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [node-wordnik](https://github.com/cpetzold/node-wordnik) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| api_key : most likely the wordnik developer homepage | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| 
 | ||||
| #### ~define [word] | ||||
| 
 | ||||
| Seeks wordnik database and replys with a definition. | ||||
| Example: | ||||
| + ~define Spaghetti | ||||
| 
 | ||||
| #### ~etymology [word] | ||||
| 
 | ||||
| Seeks wordnik database and replys with its etymology. | ||||
| Example: | ||||
| + ~etymology Spaghetti | ||||
| 
 | ||||
| #### ~jimble [word] | ||||
| 
 | ||||
| Jimbles the letters of a word. | ||||
| Example: | ||||
| + ~jimble Spaghetti | ||||
| 
 | ||||
| ### TODO | ||||
| @ -1,3 +1,3 @@ | ||||
| { | ||||
|     "api_key": "http://developer.wordnik.com/" | ||||
| } | ||||
| } | ||||
| @ -8,3 +8,20 @@ This module occasionally comes back and says "You're a x" when somebody goes "y | ||||
| is x" or "y are x," with the intention of annoying people who are calling | ||||
| something crap. Warning: this module occasionally causes the bot to be nice to | ||||
| people. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has no dependencies. | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| This module is ignorable. | ||||
| ``` | ||||
| { | ||||
|     "ignorable": true | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| none. | ||||
							
								
								
									
										33
									
								
								modules/youtube/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								modules/youtube/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | ||||
| ## Youtube | ||||
| 
 | ||||
| Searches youtube.com for videos. | ||||
| 
 | ||||
| ### Description | ||||
| 
 | ||||
| This module provides a command which allows users to search for a video on youtube.com. | ||||
| It replies with a video thats title is the most similar to the input. | ||||
| 
 | ||||
| ### Dependencies | ||||
| 
 | ||||
| It has following dependencies: | ||||
| + [request](https://github.com/mikeal/request) | ||||
| 
 | ||||
| ### config.json | ||||
| 
 | ||||
| Output prefix can be set. | ||||
| For example: | ||||
| ``` | ||||
| { | ||||
|     "outputPrefix": "\u00031,0You\u000315,5Tube\u000f" | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| #### ~youtube [title] | ||||
| 
 | ||||
| Example: | ||||
| + ~youtube Hello World! | ||||
| 
 | ||||
| ### TODO | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 reality
						reality