def ListUserFolders(ProfileUrl): htmldata = request.ReqUrl(ProfileUrl) Username = GetUsername(htmldata) galleries_searchstring = "/usergallery.php" start = htmldata.find(galleries_searchstring) end = htmldata.find('"', start) GalsUrl = config.baseurl + htmldata[start:end] htmldata = request.ReqUrl(GalsUrl) j = 0 k = 0 folderid = '' Folders = [] while (folderid != "folderid=-1"): j = htmldata.find("folderid=", k) k = htmldata.find('"', j) folderid = htmldata[j:k] J = j l = -1 while (l == -1): J = J - 10 l = htmldata[J:k].find("http:") FolderUrl = htmldata[l + J:k] if (folderid != "folderid=0" and len(folderid) > 0): n = htmldata.find(">", k) m = htmldata.find("<", n) FolderName = htmldata[n + 1:m] Folders += [[FolderName, FolderUrl]] return Username, Folders
def GetImageUrl_xH(UrlList, UrlNum): ### get image source url (xHamster) PageContent = request.ReqUrl(UrlList[UrlNum]) url_index = PageContent.find("class='slideImg'") url_start = PageContent.find("https://", url_index) url_end = PageContent.find("'", url_start) return PageContent[url_start:url_end]
def GetImageUrl_IF(UrlList, UrlNum): ### get image source url (ImageFap) PageContent = request.ReqUrl(UrlList[UrlNum]) url_index = PageContent.find('contentUrl') url_start = PageContent.find('http://', url_index) url_end = PageContent.find('"', url_start) return PageContent[url_start:url_end]
def ListFolderGalleries(FolderUrl): htmldata = request.ReqUrl(FolderUrl) UserName = GetUsername(htmldata) FolderName = GetFolderName(htmldata) ### Added as per NewWorld's ticket on Sourceforge ### Resolves issues with folders > 25 galleries only doing first page ### https://sourceforge.net/p/imagefap-gallery-downloader/tickets/1/ are_multiple_pages = bool(htmldata.find('&page=')) if are_multiple_pages: matches = re.findall('&page=', htmldata) num_pages = len(matches) - 1 Galleries = [] j = 0 k = 0 while True: j = htmldata.find("/gallery/", k) if (j == -1): break k = htmldata.find('"', j) GalleryUrl = config.baseurl + htmldata[j:k] if not (GalleryUrl in Galleries): Galleries += [GalleryUrl] return RemoveBlank(UserName), RemoveBlank(FolderName), Galleries
def GetImageList_IF(url, gid): ### returns list of images in ImageFap gallery page content UrlList = [] PageContent = request.ReqUrl(url) p = 0 while True: ### iterate through gallery pages index_begin = 0 index_end = 0 pics = [] while True: ### find html entries with 'idx=' string indicating image link index_begin = PageContent.find('idx=', index_end) if (index_begin == -1): break index_end = PageContent.find('"', index_begin) i = index_begin while (PageContent[i] != '"'): i = i - 1 pic = PageContent[i + 1:index_end] if (len(pic) > 1): pics += [str(config.baseurl) + pic] UrlList += pics np_url = NextPage_IF(PageContent, gid, p) if (np_url == 0): break else: url = np_url #print url p += 1 PageContent = request.ReqUrl(url) return UrlList
def OpenGallery(Gal_Url, urltype): ### get gallery title and list of image urls url = Gal_Url gid = GetGalleryId(url, urltype) PageContent = request.ReqUrl(url) ### read gallery title from html content GalTitle = GetGalleryTitle(PageContent, urltype) ### get image list from gallery page if (urltype == 3): UrlList = GetImageList_xH(url, gid) else: UrlList = GetImageList_IF(url, gid) return GalTitle, UrlList
def GetImageList_xH(url, gid): ### returns list of images in xhamster gallery UrlList = [] PageContent = request.ReqUrl(url) imglink_begin = 0 imglink_end = 0 pics = [] while True: ### find location of image page link index_link = PageContent.find("gallery iItem ", imglink_end) if (index_link == -1): break imglink_begin = PageContent.find("href=", index_link) + 14 imglink_end = PageContent.find("'", imglink_begin) pic1 = PageContent[imglink_begin:imglink_end] pic = "https://" + pic1 if (len(pic) > 1): pics += [pic] UrlList += pics return UrlList