Parsing related changes
- Using lxml as the html parser for BeautifulSoup to increase performance by bit.
- Using SoupStrainer from BeautifulSoup to strategically scrape the website rather than the entire HTML.
- Using Requests instead of urllib to access websites. Urllib is only used to properly parse search text (whether to use + or %20 as a space) and add it to the URL.
UI related changes
- Updated CustomTkinter file
- Theme will be applied according to the system theme, but can still be changed by using the button.
- Github removed from bottom, and placed on top.
- Removed Collections since they are bound to change and I don't have a lot of time to update accordingly.
- Removed "All Sites" button since it is neither an efficient nor a recommended search method and would take a lot of time to complete a search with it, but you can still do it by typing "all" in the site name box. Search strategically!!
- Decreased search results to 30 per page for a smoother loading experience.
- Results windows won't be behind the main window anymore, it will be shown on the top.
Database changes
- Added "plusorspace" column to Database, 0 value means that the search input is separated by +. For example: grand+theft+auto
1 value means by space, for example: grand theft auto (it puts %20 by using urllib parse).
Default value to all current websites is 0, but for future will update accordingly. Allows opportunity to add more sites.
Added sites
BitSearch
PDFRoom
FreeMagazine
Manga Katana
Manga Reader
BATO
VegaMovies
GameBounty
Game Drive
Tut4IT
TORRENT GAMES
LITEAPKS
APKMB
Removed dead links for sure, and I am still looking into it.
Information
I did not work on this project for over a year since I was busy with university studies, now it's a summer break so I managed to tweak pSearch for the past week and try to make it more efficient. For sure, there were many dead links, and I'm sure there still are and which is why I added a notice on the console that says when a site returns NO results.
Sometimes this is useful because, if for example the site domain is changed or the site domain is sold, the program does not throw an error so we wouldn't know about it. Rather, "No results" shows up. I added this small tweak in the terminal/console just so we would know (if needed) if a site is acting weird.
Thank you, and let me know if any of you face a bug by creating an issue in Issues section here on Github.