2015-10-27 14:25:13 -04:00
var FFZ = window . FrankerFaceZ ,
utils = require ( './utils' ) ;
2015-01-16 17:45:37 -05:00
2015-01-19 15:27:10 -05:00
2015-02-10 01:34:23 -05:00
// -----------------
// Log Export
// -----------------
FFZ . ffz _commands . log = function ( room , args ) {
this . _pastebin ( this . _log _data . join ( "\n" ) , function ( url ) {
if ( ! url )
return this . room _message ( room , "There was an error uploading the FrankerFaceZ log." ) ;
this . room _message ( room , "Your FrankerFaceZ log has been pasted to: " + url ) ;
} ) ;
} ;
2015-10-27 14:25:13 -04:00
// -----------------
// Data Reload
// -----------------
FFZ . ffz _commands . reload = function ( room , args ) {
var f = this ,
promises = [ ] ;
// Badge Information
promises . push ( new Promise ( function ( done , fail ) {
f . _legacy _load _bots ( function ( success , count ) {
done ( count || 0 ) ;
} ) ;
} ) ) ;
promises . push ( new Promise ( function ( done , fail ) {
f . _legacy _load _donors ( function ( success , count ) {
done ( count || 0 ) ;
} ) ;
} ) ) ;
// Emote Sets
for ( var set _id in this . emote _sets ) {
var es = this . emote _sets [ set _id ] ;
if ( es . hasOwnProperty ( 'source_ext' ) )
continue ;
promises . push ( new Promise ( function ( done , fail ) {
f . load _set ( set _id , done ) ;
} ) ) ;
}
// Do it!
Promise . all ( promises ) . then ( function ( results ) {
var success = 0 ,
bots = results [ 0 ] ,
donors = results [ 1 ] ,
total = results . length - 2 ;
if ( results . length > 2 ) {
for ( var i = 2 ; i < results . length ; i ++ ) {
if ( results [ i ] )
success ++ ;
}
}
f . room _message ( room , "Loaded " + utils . number _commas ( bots ) + " new bot badge" + utils . pluralize ( bots ) + " and " + utils . number _commas ( donors ) + " new donor badge" + utils . pluralize ( donors ) + ". Successfully reloaded " + utils . number _commas ( success ) + " of " + utils . number _commas ( total ) + " emoticon set" + utils . pluralize ( total ) + "." ) ;
} )
}
2015-12-12 13:28:35 -05:00
// -----------------
// Moderation Cards
// -----------------
FFZ . chat _commands . card = function ( room , args ) {
if ( ! args || ! args . length || args . length > 1 )
return "Usage: /card <username>" ;
if ( ! this . _roomv )
return "An error occured. (We don't have the Room View.)" ;
// Get the position of the input box.
var el = this . _roomv . get ( 'element' ) ,
ta = el && el . querySelector ( 'textarea' ) ,
bounds = ta && ta . getBoundingClientRect ( ) ,
x = 0 , y = 0 , bottom , right ;
if ( ! bounds )
bounds = el && el . getBoundingClientRect ( ) || document . body . getBoundingClientRect ( ) ;
if ( bounds ) {
if ( bounds . left > 400 ) {
right = bounds . left - 40 ;
bottom = bounds . top + bounds . height ;
} else {
x = bounds . left - 20 ;
bottom = bounds . top - 20 ;
}
}
this . _roomv . get ( 'controller' ) . send ( 'showModOverlay' , {
top : y ,
left : x ,
bottom : bottom ,
right : right ,
sender : args [ 0 ]
} ) ;
}
2015-01-16 17:45:37 -05:00
// -----------------
2015-01-19 15:27:10 -05:00
// Mass Moderation
2015-01-16 17:45:37 -05:00
// -----------------
2015-02-10 01:34:23 -05:00
FFZ . ffz _commands . massunmod = function ( room , args ) {
2015-01-16 17:45:37 -05:00
args = args . join ( " " ) . trim ( ) ;
if ( ! args . length )
return "You must provide a list of users to unmod." ;
args = args . split ( /\W*,\W*/ ) ;
var user = this . get _user ( ) ;
if ( ! user || ! user . login == room . id )
return "You must be the broadcaster to use massunmod." ;
if ( args . length > 50 )
return "Each user you unmod counts as a single message. To avoid being globally banned, please limit yourself to 50 at a time and wait between uses." ;
var count = args . length ;
while ( args . length ) {
var name = args . shift ( ) ;
room . room . tmiRoom . sendMessage ( "/unmod " + name ) ;
}
return "Sent unmod command for " + count + " users." ;
}
2015-02-10 01:34:23 -05:00
FFZ . ffz _commands . massunmod . help = "Usage: /ffz massunmod <list, of, users>\nBroadcaster only. Unmod all the users in the provided list." ;
2015-01-16 17:45:37 -05:00
2015-02-10 01:34:23 -05:00
FFZ . ffz _commands . massmod = function ( room , args ) {
2015-01-16 17:45:37 -05:00
args = args . join ( " " ) . trim ( ) ;
if ( ! args . length )
return "You must provide a list of users to mod." ;
args = args . split ( /\W*,\W*/ ) ;
var user = this . get _user ( ) ;
if ( ! user || ! user . login == room . id )
return "You must be the broadcaster to use massmod." ;
if ( args . length > 50 )
return "Each user you mod counts as a single message. To avoid being globally banned, please limit yourself to 50 at a time and wait between uses." ;
var count = args . length ;
while ( args . length ) {
var name = args . shift ( ) ;
room . room . tmiRoom . sendMessage ( "/mod " + name ) ;
}
return "Sent mod command for " + count + " users." ;
}
2015-07-13 21:52:44 -04:00
FFZ . ffz _commands . massmod . help = "Usage: /ffz massmod <list, of, users>\nBroadcaster only. Mod all the users in the provided list." ;
/ * F F Z . f f z _ c o m m a n d s . m a s s u n b a n = f u n c t i o n ( r o o m , a r g s ) {
args = args . join ( " " ) . trim ( ) ;
2015-10-27 14:25:13 -04:00
2015-07-13 21:52:44 -04:00
} * /