Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- property mibbit_testing_room : "#Vulpes"
- property script_rooms : {{"#env-mod", "#idmf"}, {false, false}}
- property mibbitconn : 1
- property VulpesSupport : "/Users/Zygadenus/Library/Application Support/Colloquy/PlugIns/VulpesSupport.txt"
- --{date last opped as number, priv as number, address as string, username as string, adder as string}
- property idmf_quotes : {¬
- "default", ¬
- "ab: i became 3% more robot by just reading this"}
- property op_address_list : {}
- property oal_changed : false
- using terms from application "Colloquy"
- on process incoming chat message message_in from user_in in panel_in
- mibbit_respond_function((name of panel_in as string), (address of user_in as string), (name of user_in as string), (HTML of message_in as string))
- return false
- end process incoming chat message
- on member joined user_a in room_a --of connection conn
- --send_debug((name of room_a as string) & " on conn: " & (id of room_a as string))
- --if connection of room_a = mibbitconn then
- -- display dialog "true"
- if (name of room_a as string) is in (item 1 of script_rooms) then
- op_user(mibbitconn, (address of user_a as string), (name of user_a as string), (real name of user_a as string), (name of room_a as string))
- end if
- return false
- end member joined
- end using terms from
- on mibbit_respond_function(room1, usradr, user1, chat1)
- if ((room1 is "#Vulpes") and (user1 is "Vulpes") and (make_substring(chat1, 1, 2) is "!V")) then
- set vcommand to make_substring(chat1, 3, (count of chat1))
- if vcommand is "" then
- return false
- else if ((count of vcommand) > 1) and (item 1 of vcommand is " ") then
- set vcommand to make_substring(vcommand, 2, count of vcommand)
- end if
- vcontrol(vcommand)
- return true
- end if
- set roomno to roomnumber(room1)
- if roomno ≠ 0 then
- if (chat1 is "!help") then
- send_message(1, room1, "help: !V help")
- else if (make_substring(chat1, 1, 2) is "!V") then
- --you have now entered Vulpes command list
- set vcommand to make_substring(chat1, 3, (count of chat1))
- if vcommand is "" then
- return false
- else if ((count of vcommand) > 1) and (item 1 of vcommand is " ") then
- set vcommand to make_substring(vcommand, 2, count of vcommand)
- end if
- vfunctions(mibbitconn, room1, user1, vcommand)
- else if (chat1 is "!urlbot") then
- if (item roomno of (item 2 of script_rooms)) then
- set (item roomno of (item 2 of script_rooms)) to false
- else
- set (item roomno of (item 2 of script_rooms)) to true
- end if
- send_message(mibbitconn, room1, "urlbot: " & ((item roomno of (item 2 of script_rooms)) as string))
- else if (item roomno of (item 2 of script_rooms)) then
- if chat1 contains "<a href=\"http://" then
- send_message(1, room1, i_spy_link(room1, chat1))
- end if
- else if (make_substring(chat1, 1, 6) is "!idea ") then
- try
- set v_number to (make_substring(chat1, 7, (count of chat1)) as integer)
- if v_number ≤ 12 then
- if v_number > 0 then
- get_genres(v_number, room1)
- end if
- else
- send_message(mibbitconn, room1, "troll")
- end if
- end try
- else if (chat1 is "idunnolol") then
- send_message(mibbitconn, room1, "¯\\(°_o)/¯")
- else if (chat1 is "!wtf") then
- set r to random number from 1 to (count of idmf_quotes)
- send_message(mibbitconn, room1, (item r of idmf_quotes))
- else if (make_substring(chat1, 1, 3) is "!ps") then
- send_message(mibbitconn, room1, paulstretch(make_substring(remove_spans(chat1), 4, (count of chat1))))
- --else if (false) then
- -- stuff
- else
- --nothing
- end if
- else
- --nothing
- end if
- end mibbit_respond_function
- on vcontrol(cmd)
- --this function uses op_address_list as a global variable
- if (cmd is "l") then
- try
- set op_address_list to list_read()
- send_debug("list has been loaded")
- on error
- send_debug("unable to load")
- end try
- else if ((item 1 of cmd) is "i") then
- list_info(op_address_list, make_substring(cmd, 3, (count of cmd)) as number, mibbit_testing_room)
- else if ((item 1 of cmd) is "s") then
- list_write(op_address_list, mibbit_testing_room)
- else if ((item 1 of cmd) is "o") then
- try
- open for access VulpesSupport
- send_debug("opened")
- on error
- send_debug("err")
- end try
- else if ((item 1 of cmd) is "d") then
- try
- close access VulpesSupport
- send_debug("dropped")
- on error
- send_debug("err")
- end try
- else if ((item 1 of cmd) is "t") then
- send_debug(((count of op_address_list) as string))
- else if ((item 1 of cmd) is "p") then
- repeat with i from 1 to (count of op_address_list)
- delay 2
- list_info(op_address_list, i, mibbit_testing_room)
- end repeat
- else
- --nothing
- end if
- end vcontrol
- on vfunctions(conn, rm, usr, cmd)
- if (cmd is "help") then
- send_message(conn, rm, "commands preceded with a !V:")
- send_message(conn, rm, "~ help, oust, num, load, save, add <addr>, total, lookup <addr>, drop priv, sleep")
- send_message(conn, rm, "~ misc. commands: !urlbot, !ps <paulstretch>, !idea <number>, idunnolol")
- else if (cmd is "oust") then
- send_command(conn, "part " & rm)
- else if (cmd is "sleep") then
- send_message(conn, rm, "disabled (& for good reason)")
- --do shell script "pmset sleepnow"
- else if (cmd is "num") then
- send_message(conn, rm, ("74D2 ") & ip_checker())
- else if (cmd is "load") then
- try
- set op_address_list to list_read()
- send_message(conn, rm, "list has been loaded")
- on error
- send_message(conn, rm, "unable to load")
- end try
- else if (cmd is "save") then
- list_write(op_address_list, rm)
- --send_message(conn, rm, "list has been saved")
- else if ((make_substring(cmd, 1, 4)) is "add ") and ((count of cmd) > 4) then
- set op_address_list to list_add(op_address_list, make_substring(cmd, 5, (count of cmd)), 1, "NUL", usr, rm)
- --send_message(conn, rm, "addr added")
- else if (cmd is "total") then
- send_message(conn, rm, ((count of op_address_list) as string))
- else if (make_substring(cmd, 1, 7) is "lookup ") then
- set lkp_nfo to list_lookup(make_substring(cmd, 8, (count of cmd)))
- send_message(conn, rm, (item 1 of lkp_nfo as string) & " " & (item 2 of lkp_nfo as string))
- else if (make_substring(cmd, 1, 5) is "info ") then
- list_info(op_address_list, (make_substring(cmd, 6, (count of cmd)) as integer), rm)
- else if (cmd is "drop priv") then
- try
- close access VulpesSupport
- send_message(conn, rm, "privileges dropped")
- on error
- send_message(conn, rm, "privileges not open")
- end try
- else
- --nothing
- end if
- end vfunctions
- on roomnumber(roomname)
- repeat with i from 1 to (count of item 1 of script_rooms)
- if item i of (item 1 of script_rooms) is roomname then
- return i
- end if
- end repeat
- return 0
- end roomnumber
- on i_spy_link(room_in, chat_in)
- set link_begin to offset of "<a href=\"http://" in chat_in
- if link_begin = 0 then
- return "no url"
- else
- set link_begin to link_begin + 9
- end if
- set i1 to 0
- repeat with i1 from 0 to ((count of chat_in) - link_begin)
- --send_message(1, mibbit_testing_room, ((i1 as string) & ": " & (item (link_begin + i1) of chat_in)))
- if (item (link_begin + i1) of chat_in) is "\"" then
- exit repeat
- else
- --nothing
- end if
- end repeat
- set url_frisk to make_substring(chat_in, link_begin, link_begin + i1 - 1)
- --display dialog url_frisk
- send_message(1, mibbit_testing_room, ("I spy a link in " & room_in & ": " & make_substring(url_frisk, 1, 7) & " " & make_substring(url_frisk, 8, 10) & " " & make_substring(url_frisk, 11, (count of url_frisk))))
- (*
- if paste is not:
- .html
- .com
- .org
- .edu
- or if it is:
- .jpg
- .gif
- .png
- .filename not site address
- then no source exists, not sure how to absolute this ...
- *)
- tell application "Safari"
- run
- --activate
- make new document at end of documents
- set URL of document 1 to url_frisk
- delay 4
- try
- set url_source to source of document 1
- on error
- --could not get source
- return false
- end try
- close document 1
- end tell
- set title_begin to offset of "<title>" in url_source
- set title_end to offset of "</title>" in url_source
- set url_title to make_substring(url_source, title_begin + 7, title_end - 1)
- return ("link title: " & url_title)
- end i_spy_link
- on send_file(rqconn, rqname, rqroom, rqfile)
- send_message(rqconn, rqroom, "cannot get file \"" & rqfile & "\" because Vulpes is too unintelligent to figure out how CTCP works")
- end send_file
- on send_command(connection_num, command_to_send)
- tell application "Colloquy"
- tell connection connection_num
- send raw command command_to_send
- end tell
- end tell
- end send_command
- on ip_checker()
- set ip_url to "http://checkip.dyndns.com/"
- tell application "Safari"
- run
- --activate
- make new document at end of documents
- set URL of document 1 to ip_url
- delay 4
- set text_of_doc to text of document 1
- close document 1
- end tell
- return ip_hex to make_ip_hex(get_ip_string(text_of_doc))
- end ip_checker
- on make_ip_hex(ip_string_in)
- set error_out to 0
- set ip_hex to 0
- set hex_digit to 0
- repeat with i0 from 1 to (count of ip_string_in)
- if (item i0 of ip_string_in) is (".") then
- if hex_digit > 255 then
- set error_out to error_out + 1
- end if
- set ip_hex to ip_hex * 256 + hex_digit
- set hex_digit to 0
- else
- repeat with i1 from 0 to 9
- if (item i0 of ip_string_in) is (i1 as string) then
- set hex_digit to hex_digit * 10 + i1
- exit repeat
- end if
- if i1 = 9 then
- --flag error
- set error_out to error_out + 1
- end if
- end repeat
- end if
- end repeat
- set ip_hex to ip_hex * 256 + hex_digit
- return (ip_hex as string) & (" E") & (error_out as string)
- end make_ip_hex
- on get_ip_string(ip_string_in)
- set ip_out to make_substring(ip_string_in, 21, (count of ip_string_in))
- return ip_out
- end get_ip_string
- on op_user(conn, user_addr, user_name, user_real, user_room)
- --this function uses op_address_list as a global variable & oal_changed
- (*
- optype:
- 0-nothing
- 1-voice
- 2-halfop
- 3-op
- *)
- set op_type to list_lookup(user_addr)
- user_info((user_name), (user_addr), user_real, (user_room), (((item 1 of op_type) as string) & " " & ((item 2 of op_type) as string)))
- if (item 1 of op_type) = 0 then
- return false
- end if
- set (item 1 of (item (item 1 of op_type) of op_address_list)) to cdtn()
- set oal_changed to true
- list_info(op_address_list, (item 1 of op_type), mibbit_testing_room)
- if ((item 2 of op_type) = -1) then
- send_message(conn, user_room, (user_name & " has lost their voice privileges for the time being"))
- return false
- else if ((item 2 of op_type) = 4) then
- --send_message(mibbitconn, mibbit_testing_room, "welcome back, " & user_name & ", to " & user_room)
- return true
- else
- --continue
- end if
- set command_type to command_set((item 2 of op_type))
- if command_type = "0" then
- return false
- end if
- tell application "Colloquy"
- tell connection conn
- send raw command ("mode " & (user_room) & " " & command_type & " " & (user_name))
- end tell
- end tell
- return true
- end op_user
- on command_set(op_type)
- if op_type = 1 then
- return "+v"
- else if op_type = 2 then
- return "+h"
- else if op_type = 3 then
- return "+o"
- else
- return "0"
- end if
- end command_set
- on send_message(conn, room1, message1)
- tell application "Colloquy"
- tell chat room (room1) of connection conn
- send message message1
- end tell
- end tell
- return false
- end send_message
- on send_action(conn, room1, message1)
- tell application "Colloquy"
- tell chat room (room1) of connection conn
- send message message1 with action tense
- end tell
- end tell
- end send_action
- on send_debug(bug)
- send_message(1, mibbit_testing_room, bug)
- end send_debug
- on user_info(user_name, user_add, user_real, room_name, notes)
- send_debug((room_name) & " - " & (user_name) & " : " & user_real & " : " & (user_add) & ", " & (notes))
- return false
- end user_info
- on remove_spans(string_in)
- set spans_removed to ""
- set addto to 1
- repeat with i1 from 1 to (count of string_in)
- if addto is 0 then
- if (item i1 of string_in) is ">" then
- set addto to 1
- else
- --nothing
- end if
- else
- if (item i1 of string_in) is "<" then
- set addto to 0
- else
- set spans_removed to spans_removed & (item i1 of string_in)
- end if
- end if
- end repeat
- return spans_removed
- end remove_spans
- on shuffle(preshuffle, shufflewindow)
- set r0 to random number from 1 to shufflewindow
- set r1 to random number from 1 to shufflewindow
- set slide to (count of preshuffle) - shufflewindow + 1
- --repeat with i from 1 to slide
- --end repeat
- end shuffle
- on remove_html_code(html_)
- --http://www.ascii.cl/htmlcodes.htm
- set txtout to ""
- set html_list to {¬
- {"quot;", "\""}, ¬
- {"apos;", "'"}, ¬
- {"lt;", "<"}, ¬
- {"gt;", ">"}, ¬
- {"amp;", "&"}}
- set check to ""
- set i to 1
- repeat while i ≤ (count of html_)
- if (item i of html_ is "&") then
- --display dialog "found something at " & (i as string)
- repeat while ((item i of html_ is not ";") and (i < (count of html_)))
- set i to i + 1
- set check to (check & (item i of html_))
- end repeat
- --display dialog "check is " & check
- repeat with j from 1 to (count of html_list)
- if (item 1 of (item j of html_list)) is check then
- --display dialog "found it at " & (j as string) & " which is " & (item 2 of (item j of html_list))
- set txtout to txtout & (item 2 of (item j of html_list))
- exit repeat
- end if
- end repeat
- set check to ""
- else
- set txtout to txtout & (item i of html_)
- end if
- set i to i + 1
- end repeat
- return txtout
- end remove_html_code
- on paulstretch(pre_stretch)
- --send_debug("~ps " & (pre_stretch as string))
- set pre_stretch to remove_html_code(pre_stretch)
- set repeat_size to repeat_amount(count of pre_stretch)
- set post_stretch to ""
- set pre_stretch_val to (string_char_value(pre_stretch))
- set sum1 to 0
- if repeat_size < 1 then
- return ""
- end if
- repeat with i1 from 1 to (count of pre_stretch)
- set add1 to (pre_stretch_val) / (repeat_size * (string_char_value(item i1 of pre_stretch)))
- repeat while sum1 < 1
- set post_stretch to post_stretch & (item i1 of pre_stretch)
- set sum1 to sum1 + add1
- end repeat
- set sum1 to sum1 - (1 + add1)
- end repeat
- return post_stretch
- end paulstretch
- on repeat_amount(size1)
- set botmax to 453
- set total_length to upper_circle((botmax - size1), botmax)
- if total_length < 0 then
- return -1
- else
- return total_length
- end if
- end repeat_amount
- on abs1(in1)
- if in1 ≥ 0 then
- return in1
- else
- return -in1
- end if
- end abs1
- on upper_circle(x, r)
- if abs1(x) > r then
- return -1
- end if
- return (-(x ^ 2) + r ^ 2) ^ 0.5
- end upper_circle
- on string_char_value(string1)
- set return_val to 0
- set cvlist to {¬
- {"A", 8}, ¬
- {"B", 3}, ¬
- {"C", 3}, ¬
- {"D", 3}, ¬
- {"E", 10}, ¬
- {"F", 3}, ¬
- {"G", 3}, ¬
- {"H", 3}, ¬
- {"I", 7}, ¬
- {"J", 3}, ¬
- {"K", 3}, ¬
- {"L", 4}, ¬
- {"M", 4}, ¬
- {"N", 3}, ¬
- {"O", 8}, ¬
- {"P", 5}, ¬
- {"Q", 2}, ¬
- {"R", 5}, ¬
- {"S", 6}, ¬
- {"T", 5}, ¬
- {"U", 8}, ¬
- {"V", 3}, ¬
- {"W", 4}, ¬
- {"X", 2}, ¬
- {"Y", 6}, ¬
- {"Z", 2}, ¬
- {" ", 1}}
- --set foundswitch to false
- repeat with i1 from 1 to (count of string1)
- repeat with i2 from 1 to (count of cvlist)
- if (item 1 of (item i2 of cvlist)) = (item i1 of string1) then
- set return_val to return_val + (item 2 of (item i2 of cvlist))
- exit repeat
- end if
- end repeat
- end repeat
- if return_val > 0 then
- return return_val
- else
- --error here
- return 1
- end if
- end string_char_value
- on list_write(oal, rm)
- if oal_changed then
- --display dialog ((count of op_address_list) as string)
- try
- open for access VulpesSupport with write permission
- set eof of VulpesSupport to 0
- repeat with i1 from 1 to (count of op_address_list)
- --{date last opped as number, priv as number, address as string, username as string, adder as string}
- write ((item 1 of (item i1 of oal) as string) & " " & (item 2 of (item i1 of oal) as string) & " " & (item 3 of (item i1 of oal)) & " " & (item 4 of (item i1 of oal)) & " " & (item 5 of (item i1 of oal)) & "\n") to VulpesSupport starting at eof as string
- end repeat
- close access VulpesSupport
- set oal_changed to false
- send_message(1, rm, "list has been saved")
- on error
- try
- close access VulpesSupport
- end try
- send_message(1, rm, "error saving list")
- return false
- end try
- return true
- else
- send_message(1, rm, "no changes to list")
- end if
- end list_write
- on list_add(oad, usr_addr, priv, usrnme, addername, rm)
- --{date last opped as number, priv as number, address as string, username as string, adder as string}
- set a_on to list_lookup(usr_addr)
- if ((item 1 of a_on) ≠ 0) then
- send_message(1, rm, "usr " & usr_addr & " already added at line " & (item 1 of a_on as string) & " priv " & (item 2 of a_on as string))
- else
- send_debug(usr_addr & " going to be added")
- try
- set oad to oad & {{cdtn(), priv, usr_addr, usrnme, addername}}
- set oal_changed to true
- send_message(1, rm, "addr added")
- on error
- send_debug("add failed " & usr_addr)
- send_message(1, rm, "add failed")
- end try
- end if
- return (oad)
- end list_add
- on list_read()
- set op_address_list to {}
- set vulread to ""
- set i1 to 1
- set i2 to 1
- set i3 to 1
- set i4 to 1
- set ict to 1
- set list_line to ""
- set list_item to {}
- try
- open for access VulpesSupport --with write permission
- set vulread to read VulpesSupport
- on error
- close access VulpesSupport
- return {}
- end try
- close access VulpesSupport
- --display dialog ((count of vulread) as string)
- --delay 1
- repeat while (i1 ≤ (count of vulread))
- set list_item to {"0", "0", "addr", "usr", "adde"}
- repeat while (i1 ≤ (count of vulread))
- if ((item i1 of vulread) is in {"\r", "\n"}) then
- --display dialog ("i1=" & (i2 as string) & " i3=" & (i1 as string))
- set list_line to make_substring(vulread, i2, i1 - 1)
- set i1 to i1 + 1
- set i2 to i1
- exit repeat
- else
- set i1 to i1 + 1
- end if
- end repeat
- --display dialog ("|" & list_line & "|")
- set i4 to 1
- set ict to 1
- repeat with i3 from 1 to (count of list_line)
- --display dialog ((i3 as string) & " " & (item i3 of vulread))
- if ((item i3 of list_line) is " ") then
- set (item ict of list_item) to (make_substring(list_line, i4, i3 - 1))
- set ict to ict + 1
- set i3 to i3 + 1
- set i4 to i3
- else
- set i3 to i3 + 1
- end if
- end repeat
- set (item ict of list_item) to (make_substring(list_line, i4, (count of list_line)))
- --display dialog ("|" & list_line & "|\n|" & (item 1 of list_item) & "|" & (item 2 of list_item) & "|" & (item 3 of list_item) & "|" & (item 4 of list_item) & "|" & (item 5 of list_item) & "|")
- set op_address_list to op_address_list & {{(item 1 of list_item as number), (item 2 of list_item as number), (item 3 of list_item), (item 4 of list_item), (item 5 of list_item)}}
- end repeat
- set oal_changed to false
- send_debug(((count of op_address_list) as string) & " names loaded")
- return op_address_list
- end list_read
- on list_lookup(addr)
- --{date last opped as number, priv as number, address as string, username as string, adder as string}
- repeat with i from 1 to (count of op_address_list)
- if ((item 3 of (item i of op_address_list)) is addr) then
- return {i, (item 2 of (item i of op_address_list))}
- end if
- end repeat
- return {0, 0}
- end list_lookup
- on list_info(oal, idxno, nforoom)
- --display dialog (idxno as string)
- if ((idxno > 0) and (idxno ≤ (count of oal))) then
- set olitem to (item idxno of oal)
- send_message(1, nforoom, (item 1 of olitem as string) & " " & (item 2 of olitem as string) & " " & (item 3 of olitem) & " " & (item 4 of olitem) & " " & (item 5 of olitem))
- return olitem
- else
- send_message(1, nforoom, "no such index")
- end if
- end list_info
- on make_substring(string_in, beg1, end1)
- if (beg1 > end1) then
- return ""
- end if
- if (beg1 < 1) then
- set beg1 to 1
- end if
- if (end1 > (count of string_in)) then
- set end1 to (count of string_in)
- end if
- return (text beg1 through end1 of string_in)
- end make_substring
- on cdtn()
- --set yr to (((year of (current date)) - 2010) * 365)
- set mth to month_to_days(month of (current date) as number)
- set dy to (day of (current date))
- --set total to yr + mth + dy
- set total to mth + dy
- return total
- end cdtn
- on month_to_days(monthno)
- set dayscount to 0
- set dayslist to {¬
- 31, ¬
- 28, ¬
- 31, ¬
- 30, ¬
- 31, ¬
- 30, ¬
- 31, ¬
- 31, ¬
- 30, ¬
- 31, ¬
- 30, ¬
- 31}
- repeat with i from 1 to (count of dayslist)
- if (monthno = i) then
- return (dayscount)
- else
- set dayscount to dayscount + (item i of dayslist)
- end if
- end repeat
- return 0
- end month_to_days
- on get_genres(v_number, panel_name)
- set genres_out to ""
- repeat with i1 from 1 to v_number
- set genres_out to genres_out & "[" & genre_pick() & "]"
- end repeat
- send_message(1, panel_name, genres_out)
- end get_genres
- on genre_pick()
- set genres to {¬
- "Ambient", ¬
- "Ambient house", ¬
- "Ambient techno", ¬
- "Dark ambient", ¬
- "Drone music", ¬
- "Illbient", ¬
- "Psybient", ¬
- "Breakbeat", ¬
- "Baltimore Club", ¬
- "Big beat", ¬
- "Breakbeat hardcore", ¬
- "Broken beat", ¬
- "Florida breaks", ¬
- "Nu skool breaks", ¬
- "Chiptune", ¬
- "Demoscene music", ¬
- "Game Boy music", ¬
- "Disco", ¬
- "Cosmic disco", ¬
- "Euro disco", ¬
- "Hardcore breaks", ¬
- "Hi-NRG", ¬
- "New Beat", ¬
- "Jungle techno", ¬
- "Eurobeat", ¬
- "Europop", ¬
- "Hard NRG", ¬
- "Italo Disco", ¬
- "Italo dance", ¬
- "Nu-disco", ¬
- "Rave breaks", ¬
- "Downtempo", ¬
- "Acid jazz", ¬
- "Balearic Beat", ¬
- "Chill out", ¬
- "Dub music", ¬
- "Ethnic electronica", ¬
- "New age music", ¬
- "Nu jazz", ¬
- "Trip hop", ¬
- "Drum and bass/Jungle", ¬
- "Clownstep", ¬
- "Darkcore", ¬
- "Darkstep", ¬
- "Drumfunk", ¬
- "Dubstep", ¬
- "Hardstep", ¬
- "Intelligent drum and bass", ¬
- "Jump-Up", ¬
- "Liquid funk", ¬
- "Neurofunk", ¬
- "Oldschool jungle", ¬
- "Darkside jungle", ¬
- "Ragga-jungle", ¬
- "Raggacore", ¬
- "Sambass", ¬
- "Techstep", ¬
- "Trancestep", ¬
- "Electronica", ¬
- "Berlin school", ¬
- "Electroacoustic", ¬
- "Musique concrète", ¬
- "Contemporary classical music", ¬
- "Crunk", ¬
- "Electro", ¬
- "Electro backbeat", ¬
- "Electroclash", ¬
- "Electro-grime", ¬
- "Electro-hop", ¬
- "Electronic art music", ¬
- "Electropop", ¬
- "Folktronica", ¬
- "Freestyle music", ¬
- "IDM", ¬
- "Glitch", ¬
- "Nu Electro", ¬
- "Nu jazz", ¬
- "Skweee", ¬
- "Sound art", ¬
- "Synthpop", ¬
- "Synthcore", ¬
- "Trip hop", ¬
- "Electronic Rock", ¬
- "Alternative dance", ¬
- "Coldwave", ¬
- "Cyber metal", ¬
- "Dance-punk", ¬
- "Dance-rock", ¬
- "Dark Wave", ¬
- "Digital hardcore", ¬
- "Electroclash", ¬
- "Electropunk", ¬
- "Ethereal Wave", ¬
- "Grind", ¬
- "Italodance", ¬
- "Indietronica", ¬
- "New rave", ¬
- "New Wave", ¬
- "Nintendocore", ¬
- "Space rock", ¬
- "Synthpop", ¬
- "Synthpunk", ¬
- "Eurodance", ¬
- "Bubblegum dance", ¬
- "Eurotrance", ¬
- "Happy Hardcore", ¬
- "UK Hardcore", ¬
- "Hardcore/Hard dance", ¬
- "Bouncy house", ¬
- "Bouncy techno", ¬
- "Breakbeat hardcore", ¬
- "Breakcore", ¬
- "Darkcore", ¬
- "Digital hardcore", ¬
- "Doomcore", ¬
- "Gabber", ¬
- "Happy hardcore", ¬
- "Hardstyle", ¬
- "Jumpstyle", ¬
- "Makina", ¬
- "Noisecore", ¬
- "Speedcore", ¬
- "Terrorcore", ¬
- "UK hardcore", ¬
- "House", ¬
- "Acid house", ¬
- "Chicago house", ¬
- "Deep house", ¬
- "Disco house", ¬
- "Dream house", ¬
- "Electro house", ¬
- "Euro house", ¬
- "Fidget house", ¬
- "French house", ¬
- "Freestyle house", ¬
- "US garage", ¬
- "Ghetto house", ¬
- "UK Hard house", ¬
- "Hard NRG", ¬
- "Hip house", ¬
- "Italo house", ¬
- "Latin house", ¬
- "Minimal house/Microhouse", ¬
- "Scouse house", ¬
- "Swing house", ¬
- "Tribal house", ¬
- "Tech house", ¬
- "Industrial", ¬
- "Aggrotech", ¬
- "Ambient industrial", ¬
- "Coldwave", ¬
- "Cybergrind", ¬
- "Dark electro", ¬
- "Death industrial", ¬
- "Drag", ¬
- "Electronic body music", ¬
- "Electro-Industrial", ¬
- "Futurepop", ¬
- "Industrial metal", ¬
- "Industrial rock", ¬
- "Noise", ¬
- "Japanoise", ¬
- "Power noise", ¬
- "Power electronics", ¬
- "Post-disco", ¬
- "Dance-pop", ¬
- "Progressive", ¬
- "Progressive breaks", ¬
- "Progressive drum & bass", ¬
- "Progressive House/Trance", ¬
- "Disco house", ¬
- "Dream house", ¬
- "Jumpstyle/Jumphouse", ¬
- "Space house", ¬
- "Progressive techno", ¬
- "Techno", ¬
- "Acid techno", ¬
- "Detroit techno", ¬
- "Dub Techno", ¬
- "Free tekno", ¬
- "Ghettotech", ¬
- "Minimal", ¬
- "Nortec", ¬
- "Schranz / Hardtechno", ¬
- "Techno-DNB", ¬
- "Techstep", ¬
- "Yorkshire Techno", ¬
- "Trance", ¬
- "Acid trance", ¬
- "Classic trance", ¬
- "Dream trance", ¬
- "Euro-trance", ¬
- "Hard trance", ¬
- "Hardstyle", ¬
- "Neo-trance", ¬
- "Progressive trance", ¬
- "Psychedelic trance/Goa trance", ¬
- "Dark psytrance", ¬
- "Full on", ¬
- "Psyprog", ¬
- "Psybient", ¬
- "Psybreaks", ¬
- "Suomisaundi", ¬
- "Tech trance", ¬
- "Uplifting trance", ¬
- "Vocal trance", ¬
- "(UK) Garage", ¬
- "2-step", ¬
- "4x4", ¬
- "Bassline", ¬
- "Breakstep", ¬
- "Dubstep", ¬
- "Funky", ¬
- "Grime", ¬
- "Speed garage"}
- set a to random number from 1 to (count of genres)
- --(a as string) & ": " &
- return ((item a of genres))
- end genre_pick
- on run
- tell application "AppleScript Editor"
- open "/Users/Zygadenus/Library/Application Support/Colloquy/PlugIns/Vulpes.scpt"
- end tell
- end run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement