Skip to content

Commit

Permalink
bump version to 6.2.2
Browse files Browse the repository at this point in the history
  • Loading branch information
leovan committed Sep 9, 2023
1 parent c06ca1f commit dd03c4e
Show file tree
Hide file tree
Showing 16 changed files with 263 additions and 137 deletions.
13 changes: 10 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,19 @@
# Changelog

## [6.2.1](https://github.com/leovan/SciHubEVA/compare/v6.2.1...v6.2.0) (2023-08-25)
## [6.2.2](https://github.com/leovan/SciHubEVA/compare/v6.2.1...v6.2.2) (2023-09-09)

### Features

- Add DDos-Guard bypass (not fully tested).
- Reuse network session to speed up downloading.

## [6.2.1](https://github.com/leovan/SciHubEVA/compare/v6.2.0...v6.2.1) (2023-08-25)

### Features

- Optimize default font rendering on Windows.

## [6.2.0](https://github.com/leovan/SciHubEVA/compare/v6.2.0...v6.1.0) (2023-08-19)
## [6.2.0](https://github.com/leovan/SciHubEVA/compare/v6.1.0...v6.2.0) (2023-08-19)

### Features

Expand All @@ -18,7 +25,7 @@

- Fix error opening downloaded file link in log on different OS.

## [6.1.0](https://github.com/leovan/SciHubEVA/compare/v6.1.0...v6.0.0) (2023-05-25)
## [6.1.0](https://github.com/leovan/SciHubEVA/compare/v6.0.0...v6.1.0) (2023-05-25)

### Bug Fixes

Expand Down
2 changes: 1 addition & 1 deletion building/Windows/SciHubEVA-x86_64.iss
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#define MyAppName "Sci-Hub EVA"
#define MyAppVersion "6.2.1"
#define MyAppVersion "6.2.2"
#define MyAppPublisher "Leo Van"
#define MyAppURL "https://github.com/leovan/SciHubEVA"
#define MyAppExeName "SciHubEVA.exe"
Expand Down
8 changes: 4 additions & 4 deletions building/Windows/SciHubEVA.win.version
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
VSVersionInfo(
ffi=FixedFileInfo(
filevers=(6, 2, 1, 0),
prodvers=(6, 2, 1, 0),
filevers=(6, 2, 2, 0),
prodvers=(6, 2, 2, 0),
mask=0x3f,
flags=0x0,
OS=0x4,
Expand All @@ -16,12 +16,12 @@ VSVersionInfo(
u'040904B0',
[StringStruct(u'CompanyName', u'leovan.tech'),
StringStruct(u'FileDescription', u'Sci-Hub EVA'),
StringStruct(u'FileVersion', u'6.2.1.0'),
StringStruct(u'FileVersion', u'6.2.2.0'),
StringStruct(u'InternalName', u'SciHubEVA'),
StringStruct(u'LegalCopyright', u'\xa9 2018-2023 Leo Van.'),
StringStruct(u'OriginalFilename', u'SciHubEVA.exe'),
StringStruct(u'ProductName', u'Sci-Hub EVA'),
StringStruct(u'ProductVersion', u'6.2.1.0')])
StringStruct(u'ProductVersion', u'6.2.2.0')])
]),
VarFileInfo([VarStruct(u'Translation', [1033, 1200])])
]
Expand Down
1 change: 1 addition & 0 deletions building/build_linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ pyinstaller app.py \
--add-data "LICENSE:." \
--add-data "building/Linux/qtquickcontrols2.conf:confs" \
--add-data "building/Linux/SciHubEVA-icon.png:images" \
--add-data "confs/ddos-guard-fake-mark.json:confs" \
--add-data "i18n/*.qm:i18n" \
--name "SciHubEVA" \
--onedir \
Expand Down
1 change: 1 addition & 0 deletions building/build_macos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ pyinstaller app.py \
--add-data "LICENSE:." \
--add-data "building/macOS/qtquickcontrols2.conf:confs" \
--add-data "building/macOS/SciHubEVA-icon.png:images" \
--add-data "confs/ddos-guard-fake-mark.json:confs" \
--add-data "i18n/*.qm:i18n" \
--name "Sci-Hub EVA" \
--icon "building/macOS/SciHubEVA.icns" \
Expand Down
1 change: 1 addition & 0 deletions building/build_windows.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ pyinstaller app.py `
--add-data "LICENSE;." `
--add-data "building/Windows/qtquickcontrols2.conf;confs" `
--add-data "building/Windows/SciHubEVA-icon.png;images" `
--add-data "confs/ddos-guard-fake-mark.json;confs" `
--add-data "i18n/*.qm;i18n" `
--name "SciHubEVA" `
--icon "building/Windows/SciHubEVA.ico" `
Expand Down
2 changes: 1 addition & 1 deletion building/macOS/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<key>CFBundleExecutable</key>
<string>MacOS/Sci-Hub EVA</string>
<key>CFBundleShortVersionString</key>
<string>6.2.1</string>
<string>6.2.2</string>
<key>LSBackgroundOnly</key>
<string>0</string>
<key>CFBundleName</key>
Expand Down
6 changes: 3 additions & 3 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
pyinstaller==5.13.0
flask==2.3.2
docopt==0.6.2
opencc-python-reimplemented==0.1.7
flask==2.3.3
opencc-python-reimplemented==0.1.7
pyinstaller==5.13.2
7 changes: 4 additions & 3 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
darkdetect==0.8.0
lxml==4.9.3
pathvalidate==3.1.0
pdfminer.six==20221105
PySide6==6.5.2
requests==2.31.0
PySocks==1.7.1
darkdetect==0.8.0
pathvalidate==3.1.0
requests==2.31.0
urllib3==2.0.4
84 changes: 58 additions & 26 deletions scihub_eva/api/scihub_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,17 @@

from scihub_eva.globals.preferences import *
from scihub_eva.utils.preferences_utils import *
from scihub_eva.utils.network_utils import *
from scihub_eva.utils.logging_utils import *
from scihub_eva.utils.api_utils import *
from scihub_eva.utils.sys_utils import *


@unique
class SciHubEVARampageType(Enum):
# Original query
ORIGINAL = 0
class SciHubAPIRampageType(Enum):
# Raw query
RAW = 0

# Query with typed captcha
WITH_TYPED_CAPTCHA = 1
# Query with captcha
WITH_CAPTCHA = 1


@unique
Expand All @@ -47,32 +45,66 @@ class SciHubAPIError(Enum):
class SciHubAPI(QObject, threading.Thread):
def __init__(
self,
query_input,
query,
logger,
callback=None,
rampage_type=None,
**kwargs):
callback,
scihub_url,
sess,
raw_query=None,
query=None,
rampage_type=None
):
QObject.__init__(self)
threading.Thread.__init__(self)

self._query_input = query_input
self._query = query
self._logger = logger
self._callback = callback

self._scihub_url = scihub_url
self._sess = sess
self._raw_query = raw_query
self._query = query
self._rampage_type = rampage_type
self._captcha_answer = None

def __del__(self):
self._sess.close()

@property
def raw_query(self):
return self._raw_query

@raw_query.setter
def raw_query(self, raw_query):
self._raw_query = raw_query

@property
def query(self):
return self._query

@query.setter
def query(self, query):
self._query = query

@property
def rampage_type(self):
return self._rampage_type

@rampage_type.setter
def rampage_type(self, rampage_type):
self._rampage_type = rampage_type

if 'captcha_answer' in kwargs:
self._captcha_answer = kwargs['captcha_answer']
@property
def captcha_answer(self):
return self._captcha_answer

self._sess = get_session()
@captcha_answer.setter
def captcha_answer(self, captcha_answer):
self._captcha_answer = captcha_answer

def fetch_pdf_url(self, query):
scihub_url = Preferences.get_or_default(
NETWORK_SCIHUB_URL_KEY, NETWORK_SCIHUB_URL_DEFAULT)
self._logger.info(
self.tr('Using Sci-Hub URL: ') +
f'<a href="{scihub_url}">{scihub_url}</a>')
f'<a href="{self._scihub_url}">{self._scihub_url}</a>')

query_type = guess_query_type(query)
self._logger.info(self.tr('Query type: ') + query_type.upper())
Expand All @@ -85,7 +117,7 @@ def fetch_pdf_url(self, query):
self._logger.info(self.tr('Fetching PDF URL ...'))

pdf_url_response = self._sess.post(
scihub_url, data={'request': query}, verify=False,
self._scihub_url, data={'request': query}, verify=False,
timeout=Preferences.get_or_default(
NETWORK_TIMEOUT_KEY,
NETWORK_RETRY_TIMES_DEFAULT,
Expand Down Expand Up @@ -251,10 +283,10 @@ def save_pdf(self, pdf, filename):
pdf_name_formatter += '_' + str(round(time.time() * 1000000))

pdf_metadata = get_pdf_metadata(pdf)
query_type = guess_query_type(self._query_input)
query_type = guess_query_type(self._raw_query)

if query_type in ['doi', 'pmid']:
pdf_metadata['id'] = self._query_input
pdf_metadata['id'] = self._raw_query
else:
for patten in ['_{id}', '{id}_', '{id}']:
pdf_name_formatter = pdf_name_formatter.replace(patten, '')
Expand All @@ -279,7 +311,7 @@ def save_pdf(self, pdf, filename):
self._logger.info(self.tr('Saved PDF as: ') + pdf_link)

def rampage(self, query, rampage_type):
if rampage_type == SciHubEVARampageType.ORIGINAL:
if rampage_type == SciHubAPIRampageType.RAW:
self._logger.info(LOGGER_SEP)
self._logger.info(self.tr('Dealing with query: ') + query)

Expand All @@ -298,7 +330,7 @@ def rampage(self, query, rampage_type):
# Save PDF
filename = urlparse(pdf_url).path[1:].split('/')[-1]
self.save_pdf(pdf, filename)
elif rampage_type == SciHubEVARampageType.WITH_TYPED_CAPTCHA:
elif rampage_type == SciHubAPIRampageType.WITH_CAPTCHA:
# Fetch PDF with Captcha
pdf, err = self.fetch_pdf_with_captcha(query)
if err == SciHubAPIError.WRONG_CAPTCHA:
Expand All @@ -318,7 +350,7 @@ def run(self):


__all__ = [
'SciHubEVARampageType',
'SciHubAPIRampageType',
'SciHubAPIError',
'SciHubAPI'
]
8 changes: 8 additions & 0 deletions scihub_eva/globals/preferences.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,14 @@
NETWORK_RETRY_TIMES_KEY = 'Network/RetryTimes'
NETWORK_RETRY_TIMES_DEFAULT = 3

NETWORK_USER_AGENT_KEY = 'Network/UserAgent'
NETWORK_USER_AGENT_DEFAULT = (
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ' +
'AppleWebKit/537.36 (KHTML, like Gecko) ' +
'Chrome/116.0.0.0 ' +
'Safari/537.36'
)

NETWORK_PROXY_ENABLE_KEY = 'Network/ProxyEnable'
NETWORK_PROXY_ENABLE_DEFAULT = False

Expand Down
2 changes: 1 addition & 1 deletion scihub_eva/globals/versions.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
ORGANIZATION_NAME = 'LeoVan'
ORGANIZATION_DOMAIN = 'leovan.tech'
APPLICATION_NAME = 'SciHubEVA'
APPLICATION_VERSION = 'v6.2.1'
APPLICATION_VERSION = 'v6.2.2'
Loading

0 comments on commit dd03c4e

Please sign in to comment.