Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ==IMPORTANT (Update July 20th 2017)==
- PLEASE WATCH THIS VIDEO IF YOU'RE SETTING UP
- https://youtu.be/1JshIC6_6w4
- DO NOT USE THE STEPS BELOW IF YOU'RE USING HTTPS XAT, OTHERWISE GO AHEAD.
- =====================================
- =[Decoy Packet Editor 2 Documentation]=
- [Install]
- Please watch the video here: https://www.youtube.com/watch?v=ogzL8TICrj4
- Alternatively, if you've used cyborg, you do the same setup for the auto-configuration script options.
- Steps:
- 1. Windows Key + R
- 2. Type in "inetcpl.cpl"
- 3. Goto "Connections" tab.
- 4. Tick "Use automatic configuration script"
- 5. Type in for the "Address": http://shadow19.xyz/proxy
- 6. Hit OK!
- [==]
- [Uninstall]
- Steps:
- 1. Windows Key + R
- 2. Type in "inetcpl.cpl"
- 3. Goto "Connections" tab.
- 4. Delete what is typed in for "Address"
- 5. Untick "Use automatic configuration script"
- 6. Hit OK!
- [==]
- [Problems]
- I'm not doing any more work on the DPE project anymore since I've quit xat, if you find bugs, you're on your own.
- If you get problems like not getting "DPE II has initiated" when loading a chat
- try clearing your browser cache, or loading "http://xat.com/web_gear/chat/ip2.php" in your browser
- and hitting reload.
- NOTE:
- Will NOT work in Firefox 51+
- Will NOT work in Microsoft Edge
- [==]
- [Filter Variables]
- decoy = {Hash}
- decoy["uid"] = Current user id for current room {String}
- decoy["room"] = Current room id for current room {String}
- decoy["roomname"] = Current room name for current room {String}
- decoy["done"] = got done packet for current room {Boolean}
- decoy["<"] = Input socket for current room {Socket}
- decoy[">"] = Output socket for current room {Socket}
- direction = Where the packet originated from ('<' from xat server, '>' from xat client) {String}
- data = The current packet being processed by filter {String}
- Note: Setting data to false or nil will let you block the packet from sending.
- [==]
- [Global Variables]
- Thread.main = {THREAD HASH}
- Thread.main["s"] = Chat sockets {Array}
- Thread.main["sa"] = Chat TCPSockets that were TCPServers {Array}
- Thread.main["cl"] = Log of all packets (Last 300 packets) {Array}
- Thread.main["fi"] = List of all loaded filters {Array}
- [Thread.main["fi"] Notes]
- Each element is a hash containing keys:
- fn = Filename {String}, t = Modified Timestamp {Integer}, f = contents of file {String}
- [=~]
- Thread.main["ac"] = List of currently loaded chats {Hash}
- [Thread.main["ac"] Notes]
- Each key is a xat user id that points to another key that is a room id.
- The room id key then points to a hash containing the keys:
- < = Input Socket {Socket}, > = Output Socket {Socket}
- Format: Thread.main["ac"][ID][ROOM]
- [=~]
- Thread.main["au"] = List of currently active users {Hash}
- [Thread.main["au"] Notes]
- Each key is a xat room id that points to an array of xat user ids.
- Format: Thread.main["au"][ROOM]
- [=~]
- Thread.main["j2"] = A variable used for setting J2 attributes before login {Hash}
- [Thread.main["j2"] Notes]
- Each key is a xat room id that points to a Hash.
- The hash in each room id is used to set the attributes of the j2
- Format: Thread.main["j2"][ROOM] = {"attribute"=>"value"}
- Would set attributes in j2 (You will not see it however.)
- [=~]
- Thread.main["sl"] = List of socket links {Hash}
- [Thread.main["sl"] Notes]
- Each key is a socket that links to an array containing the items:
- [
- SOCKET, = socket (Input or Output, opposite of the socket provided when accessing) {Socket}
- DIRECTION, = determining if socket is from input or output ("<" or ">") {String}
- ROOM_ID, = room id of socket {String}
- USER_ID, = user id of socket {String}
- ROOM_NAME, = room name of socket {String}
- DONE_BOOLEAN = done packet boolean for socket {Boolean}
- ]
- [=~]
- Thread.main["cc"] = Room ID at currently active chat {String}
- Thread.main["udb"] = User information listed by user id {Hash}
- [Thread.main["udb"] Notes]
- Thread.main["udb"]["checksums"] = Checksums of user info {Array}
- The rest of Thread.main["udb"] will consist of keys that are user ids that link to a hash of user info.
- Format: Thread.main["udb"][USER_ID]
- [=~]
- Thread.main["cli_log"] = List of booleans for turning client log off and on ([INPUT_BOOLEAN, OUTPUT_BOOLEAN]) {Array}
- Thread.main["wl_log"] = Boolean for turning weblink log off and on {Boolean}
- [==]
- [API Functions]
- getAttr = for getting any attribute from a xat packet {String}
- Format: String.getAttr("attribute")
- setAttr = for setting any attribute on a xat packet {String}
- Format: String.setAttr("attribute","value")
- getAttrs = for getting all attributes from a xat packet into a list {Hash}
- Format: String.getAttrs
- tag? = for determining if a xat packet has a certain tag name {Boolean}
- Format: String.tag?("tag")
- tag = for getting the tag name from a xat packet {String}
- Format: String.tag
- getId = for getting the id of a user using user name {String}
- Format: getId(Username)
- getUsername = for getting the user name of a user using user id {String}
- Format: getUsername(Userid)
- getRoomId = for getting the room id using a room name {String}
- Format: getRoomId(Roomname)
- getRoomName = for getting the room name using a room id {String}
- Format: getRoomName(Roomid)
- xaviLink = W.I.P
- deepCopy = creates a hard copy of a variable {Any}
- csum = creates a crc32 checksum from a String {String}
- windows? = determines if os is windows {Boolean}
- mac? = determines if os is mac os {Boolean}
- linux? = determines if os is linux {Boolean}
- unix? = determines if os is unix {Boolean}
- xeat = grabs data from a url, and caches it under the dpe_cache folder {String}
- policy = grabs the current policy file for DPE 2 {String}
- packet = builds a xat packet out of a Hash {String}
- Format: packet({"tagname"=>{"attribute"=>"value"}})
- response = returns a HTTP header for given data {String}
- Format: response(DATA, EXPIRE_IN_SECONDS, DATA_MIMETYPE)
- xp = gets room port for given room id {Integer}
- [==]
- [DPE 2 Filter Info]
- Filters take the form of a file with the .rb extension.
- Filters should be placed in the filters folder, you may edit/create any on the fly
- and DPE 2 will automatically load / update them in, no restart necessary.
- [==]
- [DPE 2 Filter Commands Variables / Info]
- Commands begin with '//'
- Typing '//' or '//?' will result in displaying help information.
- Use the included commands with DPE 2 for reference on how to make commands.
- Commands are dynamic, so you may edit them on the fly, and the program will use
- the latest edit you did of one, and you may also create new commands if you wish, no restart required.
- args = list of arguments made from spaced data for a command {Array}
- argu = all arguments together to be used as an argument for a command {String}
- cmd = the name of the command used by the user {String}
- [==]
- [Ruby Gem References]
- socket: https://docs.ruby-lang.org/en/2.3.0/Socket.html
- eat: http://www.rubydoc.info/gems/eat/0.1.8
- json: https://docs.ruby-lang.org/en/2.3.0/JSON.html
- cgi: https://docs.ruby-lang.org/en/2.3.0/CGI.html
- zlib: https://docs.ruby-lang.org/en/2.3.0/Zlib.html
- base64: https://docs.ruby-lang.org/en/2.3.0/Base64.html
- [==]
Advertisement
Add Comment
Please, Sign In to add comment