Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func getThoseCookies() -> [String:String] {
- var storedCookies = [String:String]()
- let rawCookies = HTTPCookieStorage.shared.cookies(for:URL(string: "https://animeflv.net/")!)
- if let cookies = rawCookies {
- for x in cookies {
- if x.name == "cf_clearance" {
- storedCookies[x.name] = x.value
- }
- if x.name == "__cfduid" {
- storedCookies[x.name] = x.value
- }
- }
- }
- return storedCookies
- }
- }
- struct ultimosAnimes {
- var animeName: String
- var episode : String
- var imageNames: String
- var link : String
- static func lul( completion: @escaping ([ultimosAnimes],String)->()) {
- let cf_clearance = UserDefaults.standard.string(forKey: "cf_clearance") ?? ""
- let headers = ["device":"computer","cf_clearance":cf_clearance,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.12 (KHTML, like Gecko) Version/11.1 Safari/605.1.12"]
- var epsArray = [ultimosAnimes]()
- Alamofire.request("https://animeflv.net", headers: headers as? HTTPHeaders ).responseString { response in
- if let content: String = response.result.value {
- if response.response?.statusCode == 200 {
- do {
- print(response.response?.statusCode)
- let doc: Document = try SwiftSoup.parse(content)
- let link: Elements = try doc.getElementsByClass("fa-play")
- for x in link {
- if try x.text() != "EN EMISION" {
- let link: String = try x.attr("href")
- let imageElement: Elements = try x.select("img[src]")
- let image : String = try imageElement.attr("src").description
- let episodes : Elements = try x.select("span")
- let title : Elements = try x.select("strong")
- let imageFixed : String = "https://animeflv.net\(image)"
- let newCategory = ultimosAnimes(animeName:try title.text(), episode:try episodes.text(), imageNames: imageFixed, link: link)
- epsArray.append(newCategory)
- }
- }
- completion(epsArray,"Yes")
- } catch {
- print(response.response?.statusCode as Any)
- print("ther was an error xd")
- }
- } else {
- completion(epsArray,"No")
- print(response.response?.statusCode)
- //status code different 200
- }
- }
- }
- }
- }
- struct searchedAnimes {
- let animeName : String
- let animeType : String
- let animeImage : String
- let animeRate : String
- let animeLink : String
- static func searchAnimes(typed: String, completion: @escaping ([searchedAnimes],String)->()) {
- let cf_clearance = UserDefaults.standard.string(forKey: "cf_clearance") ?? ""
- let headers = ["device":"computer","cf_clearance":cf_clearance,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.12 (KHTML, like Gecko) Version/11.1 Safari/605.1.12"]
- var searched = [searchedAnimes]()
- Alamofire.request("https://animeflv.net/browse?q=\(typed)", headers: headers as? HTTPHeaders ).responseString { response in
- if let content: String = response.result.value {
- if response.response?.statusCode == 200 {
- do {
- let doc: Document = try SwiftSoup.parse(content)
- let link: Elements = try doc.getElementsByClass("Anime alt B")
- for x in link {
- var type = String()
- let titleElement : Element = try x.getElementsByClass("Title").first()!
- let imageElement: Elements = try x.select("img[src]")
- let animeLinkElement : Elements = try x.select("a[href]")
- let animeLink: String = try animeLinkElement.attr("href").description
- let image : String = try imageElement.attr("src").description
- let rateElement : Elements = try x.getElementsByClass("Vts fa-star")
- let typeElement : Elements = try x.getElementsByClass("Type tv")
- let typeMoviewElement : Elements = try x.getElementsByClass("Type movie")
- if try typeElement.text() == "Anime Anime" {
- let animeElement : Element = typeElement.get(0)
- type = try animeElement.text()
- } else if try typeMoviewElement.text() == "Película Película" {
- let typeMovie : Element = typeMoviewElement.get(0)
- type = try typeMovie.text()
- } else {
- type = "OVA"
- }
- let newCategory = searchedAnimes(animeName: try titleElement.text(), animeType: type, animeImage: image, animeRate: "\(try rateElement.text()) ⭐️", animeLink: "\(animeLink)")
- searched.append(newCategory)
- }
- completion(searched,"Yes")
- } catch {
- print("Error")
- }
- } else {
- completion(searched,"No")
- print("error need bypass")
- print(response.response?.statusCode as Any)
- } // If status code is different 200
- } // First If
- } // Alamofire
- } // Func
- } // Esctruct Final
- struct AnimePage {
- let animeName : String
- let animeDesc : String
- let animeImage : String
- let numberEps : String
- let animeTipo : String
- let animeEstado : String
- let generos : [String]
- let calificacion : String
- static func animeMainPage(link: String, completion: @escaping (AnimePage,String)->()) {
- let cf_clearance = UserDefaults.standard.string(forKey: "cf_clearance") ?? ""
- let headers = ["device":"computer","cf_clearance":cf_clearance,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.12 (KHTML, like Gecko) Version/11.1 Safari/605.1.12"]
- Alamofire.request("https://animeflv.net\(link)", headers: headers as? HTTPHeaders ).responseString { response in
- if let content: String = response.result.value {
- if response.response?.statusCode == 200 {
- do {
- var epsNumber = String()
- var generos = [String]()
- var type = String()
- let doc: Document = try SwiftSoup.parse(content)
- let imageElement: Elements = try doc.getElementsByClass("image")
- let imageSelect: Elements = try imageElement.select("img[src]")
- let image : String = try imageSelect.attr("src").description
- let descriptionElement : Elements = try doc.getElementsByClass("Description")
- let titleElement : Elements = try doc.select("h2.Title")
- let typeElement : Elements = try doc.getElementsByClass("Type tv")
- let typeMoview : Elements = try doc.getElementsByClass("Type movie")
- let rate: Elements = try doc.getElementsByClass("vtprmd")
- let estado : Elements = try doc.getElementsByClass("fa-tv")
- let theGender : Elements = try doc.getElementsByClass("Nvgnrs")
- let genderLinks : Elements = try theGender.select("a[href]")
- let scriptTags = try! doc.select("script")
- for tag: Element in scriptTags {
- for node : DataNode in tag.dataNodes() {
- let myText = node.getWholeData()
- //let p = Pattern.compile("(src=\")([^/]*//[^\">]*)")
- let p = Pattern.compile("var episodes = (.*?),")
- let m: Matcher = p.matcher(in: myText)
- while( m.find() )
- {
- if m.count >= 1 {
- let group1 = m.group(1)
- let epsArray = group1!.components(separatedBy: ",")
- epsNumber = epsArray[0]
- }
- }
- }
- }
- for x in genderLinks {
- let theLink: String = try x.attr("href").description
- let filteredLink = theLink.replacingOccurrences(of: "/browse?genre=", with: "")
- generos.append(filteredLink)
- }
- if try typeElement.text() == "Anime" {
- type = "Anime"
- } else if try typeMoview.text() == "Película" {
- type = "Película"
- } else {
- type = "OVA"
- }
- //let rateElement : Elements = try x.getElementsByClass("Vts fa-star")
- let newCategory = AnimePage(animeName:try titleElement.text(), animeDesc: try descriptionElement.text(), animeImage: "https://animeflv.net\(image)", numberEps: epsNumber, animeTipo: type, animeEstado: try estado.text(), generos: generos, calificacion: try rate.text())
- completion(newCategory,"yes")
- } catch {
- print("Error")
- }
- } else {
- let lol = AnimePage(animeName:"lol", animeDesc: "lol", animeImage: "lol", numberEps: "lol", animeTipo: "lol", animeEstado: "lol", generos: ["lol"], calificacion: "lol")
- print("Bypass fucked")
- completion(lol,"No")
- // Response is not 200
- }
- }
- } // End almofire func
- }
- } // End struct
- struct sub : Decodable {
- let SUB : [links]
- }
- struct links: Decodable {
- let server : String
- let code : String
- }
- struct AnimeLinks {
- static func aviableLinks(link: String, completion: @escaping ([[String:String]],String)->()) {
- let cf_clearance = UserDefaults.standard.string(forKey: "cf_clearance") ?? ""
- let headers = ["device":"computer","cf_clearance":cf_clearance,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.12 (KHTML, like Gecko) Version/11.1 Safari/605.1.12"]
- Alamofire.request(link, headers: headers as? HTTPHeaders ).responseString { response in
- if let content: String = response.result.value {
- if response.response?.statusCode == 200 {
- do {
- let doc: Document = try SwiftSoup.parse(content)
- let scriptTags = try! doc.select("script")
- for tag: Element in scriptTags {
- for node : DataNode in tag.dataNodes() {
- let myText = node.getWholeData()
- if myText.contains("var latest_seen = 0;") {
- let J1 = myText.components(separatedBy: "var videos = ")
- let J2 = J1[1].components(separatedBy: "$(document).ready(function()")
- let J3 = J2[0].components(separatedBy: ";")
- let data = J3[0].data(using: .utf8)!
- do {
- let theLinks = try JSONDecoder().decode(sub.self, from: data)
- var linksDict = [[String:String]]()
- for x in theLinks.SUB {
- let linkCode = ["name":x.server,"link":x.code]
- linksDict.append(linkCode)
- }
- completion(linksDict,"Yes")
- } catch {
- }
- }
- }
- }
- } catch {
- print("Error")
- }
- } else {
- print("error need bypass")
- completion([["":""]],"No")
- print(response.response?.statusCode as Any)
- } // If status code is different 200
- } // First If
- } // Alamofire
- } // Func
- } // Esctruct Final
- struct fembedData : Decodable {
- let data : [fembedLinks]
- }
- struct fembedLinks: Decodable {
- let file : String
- let label : String
- }
- struct fembed {
- static func aviableLinks(link: String, completion: @escaping ([[String:String]],String)->()) {
- let fixedLink = link.replacingOccurrences(of: "/v/", with: "/api/source/")
- Alamofire.request(fixedLink, method:.post).responseString { response in
- if let content: String = response.result.value {
- if response.response?.statusCode == 200 {
- do {
- var diccionarioLink = [[String:String]]()
- let data = content.data(using: .utf8)!
- let theLinks = try JSONDecoder().decode(fembedData.self, from: data)
- for x in theLinks.data{
- let linkCode = ["label":x.label,"link":x.file]
- diccionarioLink.append(linkCode)
- }
- completion(diccionarioLink,"Yes")
- } catch {
- print("Error")
- }
- } else {
- print("error need bypass")
- completion([["":""]],"No")
- print(response.response?.statusCode as Any)
- } // If status code is different 200
- } // First If
- } // Alamofire
- } // Func
- }
- struct rapidVideo {
- static func aviableLinks(link: String, completion: @escaping ([[String:String]],String)->()) {
- Alamofire.request(link).responseString { response in
- if let content: String = response.result.value {
- if response.response?.statusCode == 200 {
- do {
- var diccionarioLink = [[String:String]]()
- let doc: Document = try SwiftSoup.parse(content)
- let sourceTags = try! doc.select("source")
- for tag: Element in sourceTags {
- let link : String = try tag.attr("src").description
- let label : String = try tag.attr("label").description
- let dict = ["label":label,"link":link]
- diccionarioLink.append(dict)
- }
- completion(diccionarioLink,"Yes")
- } catch {
- print("Error")
- }
- } else {
- print("error need bypass")
- completion([[String:String]](),"No")
- print(response.response?.statusCode as Any)
- } // If status code is different 200
- } // First If
- } // Alamofire
- } // Func
- }
- struct natsukiLink: Decodable {
- let file : String
- }
- struct natsuki {
- static func aviableLinks(link: String, completion: @escaping (String,String)->()) {
- let cf_clearance = UserDefaults.standard.string(forKey: "cf_clearance") ?? ""
- let headers = ["device":"computer","cf_clearance":cf_clearance,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.12 (KHTML, like Gecko) Version/11.1 Safari/605.1.12"]
- let fixedLink = link.replacingOccurrences(of: "embed", with: "check")
- Alamofire.request(fixedLink, headers: headers as? HTTPHeaders ).responseString { response in
- if let content: String = response.result.value {
- if response.response?.statusCode == 200 {
- do {
- let data = content.data(using: .utf8)!
- let theLinks = try JSONDecoder().decode(natsukiLink.self, from: data)
- print(theLinks.file)
- completion(theLinks.file,"Yes")
- } catch {
- print("Error")
- }
- } else {
- print("error need bypass")
- completion("no","No")
- print(response.response?.statusCode as Any)
- } // If status code is different 200
- } // First If
- } // Alamofire
- } // Func
- }
- struct okruArray : Decodable {
- let videos : [okruQuality]
- }
- struct okruQuality: Decodable {
- let name : String
- let url : String
- }
- struct okru {
- static func aviableLinks(link: String, completion: @escaping ([[String : String]],String)->()) {
- Alamofire.request(link).responseString { response in
- if let content: String = response.result.value {
- if response.response?.statusCode == 200 {
- do {
- var linksDict = [[String : String]]()
- let doc: Document = try SwiftSoup.parse(content)
- let scriptTags : Elements = try doc.select("[data-module=\"OKVideo\"]")
- var link : String = try scriptTags.attr("data-options").description
- let J1 = link.components(separatedBy: "\\\"videos")
- let J2 = J1[1].components(separatedBy: ",\\\"metadataEmbedded")
- link = "{\"videos" + J2[0].replacingOccurrences(of: "\\"", with: "\"").replacingOccurrences(of: "\\u0026", with: "&").replacingOccurrences(of: "\\", with: "").replacingOccurrences(of: "%3B", with: ";") + "}"
- let data = link.data(using: .utf8)!
- let theLinks = try JSONDecoder().decode(okruArray.self, from: data)
- for x in theLinks.videos {
- let dict = ["Quality": x.name, "link": x.url]
- linksDict.append(dict)
- }
- print(linksDict)
- completion(linksDict,"Yes")
- } catch {
- print("Error")
- }
- } else {
- print("error need bypass")
- completion([[String : String]](),"No")
- print(response.response?.statusCode as Any)
- } // If status code is different 200
- } // First If
- } // Alamofire
- } // Func
- }
- extension WKWebView {
- private var httpCookieStore: WKHTTPCookieStore { return WKWebsiteDataStore.default().httpCookieStore
- }
- func getCookies(for domain: String? = nil, completion: @escaping ([String : String])->()) {
- var cookieDict = [String : String]()
- httpCookieStore.getAllCookies { cookies in
- for cookie in cookies {
- if let domain = domain {
- if cookie.domain.contains(domain) {
- cookieDict[cookie.name] = cookie.value as String
- }
- } else {
- cookieDict[cookie.name] = cookie.value as String
- }
- }
- completion(cookieDict)
- }
- }
- }
- extension WKWebView {
- func evaluate(script: String, completion: @escaping (String) -> ()) {
- evaluateJavaScript(script) { (result, error) in
- if error == nil {
- if result != nil {
- completion(result as! String)
- }
- } else {
- completion(error as! String)
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement