292 lines
7.9 KiB
JavaScript
292 lines
7.9 KiB
JavaScript
|
/*
|
||
|
* @package AJAX_Chat
|
||
|
* @author Sebastian Tschan
|
||
|
* @copyright (c) Sebastian Tschan
|
||
|
* @license GNU Affero General Public License
|
||
|
* @link https://blueimp.net/ajax/
|
||
|
*/
|
||
|
|
||
|
// Ajax Chat config parameters:
|
||
|
var ajaxChatConfig = {
|
||
|
|
||
|
// The channelID of the channel to enter on login (the loginChannelName is used if set to null):
|
||
|
loginChannelID: null,
|
||
|
// The channelName of the channel to enter on login (the default channel is used if set to null):
|
||
|
loginChannelName: null,
|
||
|
|
||
|
// The time in ms between update calls to retrieve new chat messages:
|
||
|
timerRate: 2000,
|
||
|
|
||
|
// The URL to retrieve the XML chat messages (must at least contain one parameter):
|
||
|
ajaxURL: './?ajax=true',
|
||
|
// The base URL of the chat directory, used to retrieve media files (images, sound files, etc.):
|
||
|
baseURL: './',
|
||
|
|
||
|
// A regular expression for allowed source URL's for media content (e.g. images displayed inline);
|
||
|
regExpMediaUrl: '^((http)|(https)):\\/\\/',
|
||
|
|
||
|
// If set to false the chat update is delayed until the event defined in ajaxChat.setStartChatHandler():
|
||
|
startChatOnLoad: true,
|
||
|
|
||
|
// Defines the IDs of DOM nodes accessed by the chat:
|
||
|
domIDs: {
|
||
|
// The ID of the chat messages list:
|
||
|
chatList: 'chatList',
|
||
|
// The ID of the online users list:
|
||
|
onlineList: 'onlineList',
|
||
|
// The ID of the message text input field:
|
||
|
inputField: 'inputField',
|
||
|
// The ID of the message text length counter:
|
||
|
messageLengthCounter: 'messageLengthCounter',
|
||
|
// The ID of the channel selection:
|
||
|
channelSelection: 'channelSelection',
|
||
|
// The ID of the style selection:
|
||
|
styleSelection: 'styleSelection',
|
||
|
// The ID of the emoticons container:
|
||
|
emoticonsContainer: 'emoticonsContainer',
|
||
|
// The ID of the color codes container:
|
||
|
colorCodesContainer: 'colorCodesContainer',
|
||
|
// The ID of the flash interface container:
|
||
|
flashInterfaceContainer: 'flashInterfaceContainer'
|
||
|
},
|
||
|
|
||
|
// Defines the settings which can be modified by users:
|
||
|
settings: {
|
||
|
// Defines if BBCode tags are replaced with the associated HTML code tags:
|
||
|
bbCode: true,
|
||
|
// Defines if image BBCode is replaced with the associated image HTML code:
|
||
|
bbCodeImages: true,
|
||
|
// Defines if color BBCode is replaced with the associated color HTML code:
|
||
|
bbCodeColors: true,
|
||
|
// Defines if hyperlinks are made clickable:
|
||
|
hyperLinks: true,
|
||
|
// Defines if line breaks are enabled:
|
||
|
lineBreaks: true,
|
||
|
// Defines if emoticon codes are replaced with their associated images:
|
||
|
emoticons: true,
|
||
|
|
||
|
// Defines if the focus is automatically set to the input field on chat load or channel switch:
|
||
|
autoFocus: true,
|
||
|
// Defines if the chat list scrolls automatically to display the latest messages:
|
||
|
autoScroll: true,
|
||
|
// The maximum count of messages displayed in the chat list (will be ignored if set to 0):
|
||
|
maxMessages: 0,
|
||
|
|
||
|
// Defines if long words are wrapped to avoid vertical scrolling:
|
||
|
wordWrap: false,
|
||
|
// Defines the maximum length before a word gets wrapped:
|
||
|
maxWordLength: 32,
|
||
|
|
||
|
// Defines the format of the date and time displayed for each chat message:
|
||
|
dateFormat: '(%H:%i:%s)',
|
||
|
|
||
|
// Defines if font colors persist without the need to assign them to each message:
|
||
|
persistFontColor: true,
|
||
|
// The default font color, uses the page default font color if set to null:
|
||
|
fontColor: null,
|
||
|
|
||
|
// Defines if sounds are played:
|
||
|
audio: true,
|
||
|
// Defines the sound volume (0.0 = mute, 1.0 = max):
|
||
|
audioVolume: 1.0,
|
||
|
|
||
|
// Defines the sound that is played when normal messages are reveived:
|
||
|
soundReceive: 'sound_1',
|
||
|
// Defines the sound that is played on sending normal messages:
|
||
|
soundSend: 'sound_2',
|
||
|
// Defines the sound that is played on channel enter or login:
|
||
|
soundEnter: 'sound_3',
|
||
|
// Defines the sound that is played on channel leave or logout:
|
||
|
soundLeave: 'sound_4',
|
||
|
// Defines the sound that is played on chatBot messages:
|
||
|
soundChatBot: 'sound_5',
|
||
|
// Defines the sound that is played on error messages:
|
||
|
soundError: 'sound_6',
|
||
|
// Defines the sound that is played on kicked messages:
|
||
|
soundKick: 'sound_7',
|
||
|
// Defines the sound that is played when private messages are received:
|
||
|
soundPrivate: 'sound_1',
|
||
|
|
||
|
// Defines if the document title blinks on new messages:
|
||
|
blink: true,
|
||
|
// Defines the blink interval in ms:
|
||
|
blinkInterval: 500,
|
||
|
// Defines the number of blink intervals:
|
||
|
blinkIntervalNumber: 10
|
||
|
},
|
||
|
|
||
|
// Defines a list of settings which are not to be stored in a session cookie:
|
||
|
nonPersistentSettings: new Array(
|
||
|
'wordWrap'
|
||
|
),
|
||
|
|
||
|
// Defines the list of allowed BBCodes:
|
||
|
bbCodeTags: new Array(
|
||
|
'b',
|
||
|
'i',
|
||
|
'u',
|
||
|
'quote',
|
||
|
'code',
|
||
|
'color',
|
||
|
'url',
|
||
|
'img'
|
||
|
),
|
||
|
|
||
|
// Defines the list of allowed color codes:
|
||
|
colorCodes: new Array(
|
||
|
'Silver',
|
||
|
'Citrine',
|
||
|
'Orange',
|
||
|
'Pumpkin',
|
||
|
'Red',
|
||
|
'Crimson',
|
||
|
'Ruby',
|
||
|
'Amaranth',
|
||
|
'Thulite',
|
||
|
'Pink',
|
||
|
'Amethyst',
|
||
|
'Purpureus',
|
||
|
'Antisia',
|
||
|
'Cerulean',
|
||
|
'Cobalt',
|
||
|
'Aqua',
|
||
|
'Mint',
|
||
|
'Keppel',
|
||
|
'Teal',
|
||
|
'Green',
|
||
|
'Chartreuse',
|
||
|
'Nitrate',
|
||
|
'Lilive',
|
||
|
'Daive'
|
||
|
),
|
||
|
|
||
|
// Defines the list of allowed emoticon codes:
|
||
|
emoticonCodes: new Array(
|
||
|
':happy:',
|
||
|
':lmao:',
|
||
|
':angry:',
|
||
|
':angrier:',
|
||
|
':evil:',
|
||
|
':glare:',
|
||
|
':eat:',
|
||
|
':lol:',
|
||
|
':dizzy:',
|
||
|
':yay:',
|
||
|
':wtf:',
|
||
|
':sigh:',
|
||
|
':omg:',
|
||
|
':ouch:',
|
||
|
':tired:',
|
||
|
':kiss:',
|
||
|
':love:',
|
||
|
':sweat:',
|
||
|
':suspicious:',
|
||
|
':crying:',
|
||
|
':blank:',
|
||
|
':puke:',
|
||
|
':ruse:',
|
||
|
':meow:',
|
||
|
':jew:',
|
||
|
':winxp:',
|
||
|
':childish:',
|
||
|
':idea:'
|
||
|
),
|
||
|
|
||
|
// Defines the list of emoticon files associated with the emoticon codes:
|
||
|
emoticonFiles: new Array(
|
||
|
'happy.png',
|
||
|
'lmao.png',
|
||
|
'angry.png',
|
||
|
'angrier.png',
|
||
|
'evil.png',
|
||
|
'glare.png',
|
||
|
'eat.gif',
|
||
|
'lol.png',
|
||
|
'dizzy.gif',
|
||
|
'vhappy.png',
|
||
|
'wtf.png',
|
||
|
'sigh.png',
|
||
|
'omg.png',
|
||
|
'ouch.png',
|
||
|
'tired.gif',
|
||
|
'kiss.gif',
|
||
|
'love.png',
|
||
|
'sweat.gif',
|
||
|
'suspicious.gif',
|
||
|
'crying.png',
|
||
|
'blank.png',
|
||
|
'puke.gif',
|
||
|
'ruse.png',
|
||
|
'meow.png',
|
||
|
'jew.png',
|
||
|
'winxp.png',
|
||
|
'childish.png',
|
||
|
'idea.png'
|
||
|
),
|
||
|
|
||
|
// Defines the available sounds loaded on chat start:
|
||
|
soundFiles: {
|
||
|
sound_1: 'ajax_incoming.mp3',
|
||
|
sound_2: 'ajax_outgoing.mp3',
|
||
|
sound_3: 'ajax_login.mp3',
|
||
|
sound_4: 'ajax_logout.mp3',
|
||
|
sound_5: 'ajax_chatbot.mp3',
|
||
|
sound_6: 'ajax_error.mp3',
|
||
|
sound_7: 'dokuro_pipiru.mp3',
|
||
|
sound_8: 'ajax_shit.mp3',
|
||
|
dicks: 'dicks.mp3',
|
||
|
xp_1: 'xp_incoming.mp3',
|
||
|
xp_2: 'xp_outgoing.mp3',
|
||
|
xp_3: 'xp_login.mp3',
|
||
|
xp_4: 'xp_logout.mp3',
|
||
|
xp_5: 'xp_chatbot.mp3',
|
||
|
xp_6: 'xp_error.mp3'
|
||
|
},
|
||
|
|
||
|
|
||
|
// The following configuration options are usually overwritten by server-side values:
|
||
|
|
||
|
// Session identification, used for style and setting cookies:
|
||
|
sessionName: 'ajax_chat',
|
||
|
|
||
|
// The time in days until the style and setting cookies expire:
|
||
|
cookieExpiration: 365,
|
||
|
// The path of the cookies, '/' allows to read the cookies from all directories:
|
||
|
cookiePath: '/',
|
||
|
// The domain of the cookies, defaults to the hostname of the server if set to null:
|
||
|
cookieDomain: null,
|
||
|
// If enabled, cookies must be sent over secure (SSL/TLS encrypted) connections:
|
||
|
cookieSecure: null,
|
||
|
|
||
|
// The name of the chat bot:
|
||
|
chatBotName: 'Koishi',
|
||
|
// The userID of the chat bot:
|
||
|
chatBotID: 2147483647,
|
||
|
|
||
|
// Allow/Disallow registered users to delete their own messages:
|
||
|
allowUserMessageDelete: false,
|
||
|
|
||
|
// Minutes until a user is declared inactive (last status update) - the minimum is 2 minutes:
|
||
|
inactiveTimeout: 2,
|
||
|
|
||
|
// UserID plus this value are private channels (this is also the max userID and max channelID):
|
||
|
privateChannelDiff: 500000000,
|
||
|
// UserID plus this value are used for private messages:
|
||
|
privateMessageDiff: 1000000000,
|
||
|
|
||
|
// Defines if login/logout and channel enter/leave are displayed:
|
||
|
showChannelMessages: true,
|
||
|
|
||
|
// Max messageText length:
|
||
|
messageTextMaxLength: 2000,
|
||
|
|
||
|
// Defines if the socket server is enabled:
|
||
|
socketServerEnabled: false,
|
||
|
// Defines the hostname of the socket server used to connect from client side:
|
||
|
socketServerHost: 'localhost',
|
||
|
// Defines the port of the socket server:
|
||
|
socketServerPort: 1935,
|
||
|
// This ID can be used to distinguish between different chat installations using the same socket server:
|
||
|
socketServerChatID: 0
|
||
|
|
||
|
}
|