Advertisement
agunq

moencode

May 10th, 2017
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.91 KB | None | 0 0
  1. require 'uri'
  2. require 'net/http'
  3. require 'base64'
  4.  
  5. class Moencodenet
  6.    
  7.     def initialize
  8.         @mirror = {}
  9.         @page = {}
  10.     end
  11.  
  12.     def getUpdate(user, page=1)
  13.         page = page.to_i
  14.         if page <= 1
  15.             page = 1
  16.             link = 'https://www.moencode.net/'
  17.         else
  18.             link = 'https://www.moencode.net/'
  19.         end
  20.         res = httpsrequest(link)
  21.         data = res.scan(/<a href='(.*?)' title='(.*?)'>(.*?)<\/a>/)[0, 10]
  22.         newset = []
  23.         num = 1
  24.         for link, type, title in data
  25.             newset << "<b>#{num}. #{title}</b> #{link}"
  26.             num += 1
  27.         end
  28.         @page[user.downcase] = [page, data, 0]
  29.         output_ = newset[0, 5].join("<br/>")
  30.         text = "Current Page <b>#{page}</b><br/>#{output_}"
  31.         return text
  32.     end
  33.    
  34.     def bypass(user, link)
  35.         res = httpsrequest(link).gsub("\n", "")
  36.         data = res.scan(/\"href=\'(.*?)\'>Click here to proceed<\/a>\"\);/)
  37.         puts res
  38.         return data[0][0] if data.length > 0
  39.     end
  40.  
  41.     def getMirror(user, link)
  42.         res = httpsrequest(link).gsub("\n", "")
  43.         data = res.scan(/<div class="sorattl">(.*?)<\/div><div class="soraurl">(.*?)<\/div>/)
  44.         newset = []
  45.         num = 1
  46.         for type, dt in data
  47.             type = type.split("</c> ")[1]
  48.             dt = dt.scan(/<a href="(.*?)" rel="(.*?)" target="(.*?)">(.*?)<\/a>/)
  49.             liset = [] 
  50.             for li, rel, tar, tl in dt
  51.                 liset << "<b>#{tl}</b>: #{li}"
  52.             end
  53.             newset << "<b>#{type}</b><br/>#{liset.join("<br/>")}"
  54.         end
  55.         @mirror[user.downcase] = [newset, 1]
  56.         output_ = newset[1, 1]
  57.         text = output_.join
  58.         return text
  59.     end
  60.  
  61.     def mnext(user)
  62.         if @mirror.key?(user.downcase)
  63.             data, setpage = @mirror[user.downcase]
  64.             setpage += 1
  65.             if  setpage >= data.length
  66.                 setpage = data.length - 1
  67.             end
  68.             @mirror[user.downcase] = [data, setpage]
  69.             output_ = data[setpage, 1]
  70.             text = output_.join
  71.         else
  72.             text = "no mirror try ,moe [link-here] first :>"
  73.         end
  74.         return text
  75.        
  76.     end
  77.  
  78.     def mback(user)
  79.         if @mirror.key?(user.downcase)
  80.             data, setpage = @mirror[user.downcase]
  81.             setpage += 1
  82.             if  setpage <= 0
  83.                 setpage = 0
  84.             end
  85.             @mirror[user.downcase] = [data, setpage]
  86.             output_ = data[setpage, 1]
  87.             text = output_.join
  88.         else
  89.             text = "no mirror try ,moe [link-here] first :>"
  90.         end
  91.         return text
  92.     end
  93.  
  94.     def next(user)
  95.         if @page.key?(user.downcase)
  96.             page, data, setpage = @page[user.downcase]
  97.             setpage += 5
  98.             if  setpage >= data.length
  99.                 setpage = data.length - 5
  100.             end
  101.             newset = []
  102.             num = 1
  103.             for link, type, title in data
  104.                 newset << "<b>#{num}. #{title}</b> #{link}"
  105.                 num += 1
  106.             end
  107.             @page[user.downcase] = [page, data, setpage]
  108.             output_ = newset[setpage, 5].join("<br/>")
  109.             text = "Current Page <b>#{page}</b><br/>#{output_}"
  110.         else
  111.             text = "no post, try ,newai first :>"
  112.         end
  113.         return text
  114.        
  115.     end
  116.  
  117.     def back(user)
  118.         if @page.key?(user.downcase)
  119.             page, data, setpage = @page[user.downcase]
  120.             setpage -= 5
  121.             if  setpage <= 0
  122.                 setpage = 0
  123.             end
  124.             newset = []
  125.             num = 1
  126.             for link, type, title in data
  127.                 newset << "<b>#{num}. #{title}</b> #{link}"
  128.                 num += 1
  129.             end
  130.             @page[user.downcase] = [page, data, setpage]
  131.             output_ = newset[setpage, 5].join("<br/>")
  132.             text = "Current Page <b>#{page}</b><br/>#{output_}"
  133.         else
  134.             text = "no post, try ,newai first :>"
  135.         end
  136.         return text
  137.     end
  138.  
  139.     def genSid
  140.         return [*('a'..'z'),*('0'..'9')].shuffle[0,8].join
  141.     end
  142.    
  143.     def httpsrequest(link)
  144.         uri = URI(link)
  145.         http = Net::HTTP.new(uri.host, 443)
  146.         http.use_ssl = true
  147.         http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  148.         request = Net::HTTP::Get.new(uri.request_uri)
  149.         request["User-Agent"] = "Mozilla/5.0 (Windows NT 5.1; rv:47.0) Gecko/20100101 Firefox/47.0"
  150.         response = http.request(request)
  151.         return response.body
  152.     end
  153.  
  154.     def httprequest(link)
  155.         uri = URI(link)
  156.         http = Net::HTTP.new(uri.host, uri.port)
  157.         request = Net::HTTP::Get.new(uri.request_uri)
  158.         response = http.request(request)
  159.         return response.body
  160.     end
  161.  
  162. end
  163.  
  164. #print Moencodenet.new.bypass("agung", "https://racaty.com/hfy4qp8gpnic")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement