From c74953c12589b0b65d342d681e8c0850f9341ed9 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Thu, 18 May 2023 20:22:20 +0300 Subject: [PATCH 01/13] Refactoring the main file --- bg_ED_data/__main__.py | 16 +++++- bg_ED_data/providers/erp_sever/__main__.py | 52 ----------------- bg_ED_data/providers/factory.py | 65 ++++++++++++++++++++++ 3 files changed, 78 insertions(+), 55 deletions(-) delete mode 100644 bg_ED_data/providers/erp_sever/__main__.py create mode 100644 bg_ED_data/providers/factory.py diff --git a/bg_ED_data/__main__.py b/bg_ED_data/__main__.py index 4f23fc2..612afb3 100644 --- a/bg_ED_data/__main__.py +++ b/bg_ED_data/__main__.py @@ -1,8 +1,9 @@ #!/usr/bin/env python # -*- coding: utf8 -*- -# from providers.electrohold.electrohold import Electrohold as Provider -from providers.erp_sever.erp_sever import ERPSever as Provider +import argparse + +from providers.factory import Factory #region File Attributes @@ -35,9 +36,18 @@ def main(): + # Create parser. + parser = argparse.ArgumentParser() + + parser.add_argument("--provider", type=str, default="erp_sever", help="ERP Sever") + + # Take arguments. + args = parser.parse_args() + + provider = Factory.create(args.provider) + print("Starting work...") - provider = Provider() ids = ['300066244165', '123456789101'] for identifier in ids: diff --git a/bg_ED_data/providers/erp_sever/__main__.py b/bg_ED_data/providers/erp_sever/__main__.py deleted file mode 100644 index c2c200c..0000000 --- a/bg_ED_data/providers/erp_sever/__main__.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf8 -*- - -import sys - -from erp_sever.erp_sever import ERPSever as Provider - -#region File Attributes - -__author__ = "Orlin Dimitrov" -"""Author of the file.""" - -__copyright__ = "" -"""Copyrighted""" - -__credits__ = [] -"""Credits""" - -__license__ = "" -"""License -@see """ - -__version__ = "1.0.0" -"""Version of the file.""" - -__maintainer__ = ["Orlin Dimitrov", "Martin Maslyankov", "Nikola Atanasov"] -"""Name of the maintainer.""" - -__email__ = "" -"""E-mail of the author.""" - -__class_name__ = "" -"""Provider class name.""" - -#endregion - -def main(): - - print('cmd entry:', sys.argv) - - provider = Provider() - ids = ['300066244165', '123456789101'] - - for identifier in ids: - print("Electricity outages data:") - print(provider.get_outages(identifier=identifier)) - - print("Electricity prices data:") - print(provider.get_prices()) - -if __name__ == "__main__": - main() diff --git a/bg_ED_data/providers/factory.py b/bg_ED_data/providers/factory.py new file mode 100644 index 0000000..30dba47 --- /dev/null +++ b/bg_ED_data/providers/factory.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +# -*- coding: utf8 -*- + +from providers.electrohold.electrohold import Electrohold +from providers.erp_sever.erp_sever import ERPSever + + +#region File Attributes + +__author__ = "Orlin Dimitrov" +"""Author of the file.""" + +__copyright__ = "" +"""Copyrighted""" + +__credits__ = [] +"""Credits""" + +__license__ = "" +"""License +@see """ + +__version__ = "1.0.0" +"""Version of the file.""" + +__maintainer__ = ["Orlin Dimitrov", "Martin Maslyankov", "Nikola Atanasov"] +"""Name of the maintainer.""" + +__email__ = "" +"""E-mail of the author.""" + +__class_name__ = "ERPSever" +"""Provider class name.""" + +#endregion + +class Factory(): + """Providers factory. + """ + + @staticmethod + def create(provider: str): + """Providers creator method. + + Args: + provider (str): The name of wanted provider. + + Raises: + NotImplementedError: It raise when unknown provider name is passed. + + Returns: + any: Instance of the target provider. + """ + provider_instance = None + + if provider == "erp_sever": + provider_instance = ERPSever() + + elif provider == "electro_hold": + provider_instance = Electrohold() + + else: + raise NotImplementedError("provider not implemented.") + + return provider_instance From ca9b74f18c8be7d51abfd38a54c50897481b0239 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Sat, 13 May 2023 08:02:48 +0300 Subject: [PATCH 02/13] Update requirements just in case. --- requirements.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9cdfca0..ad3e3e5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,5 @@ -requests==2.27.1 \ No newline at end of file +certifi==2022.12.7 +charset-normalizer==3.1.0 +idna==3.4 +requests==2.28.2 +urllib3==1.26.15 \ No newline at end of file From 5150ab232c91a33bbec97dedf19d5962170e9d70 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Sat, 13 May 2023 08:03:06 +0300 Subject: [PATCH 03/13] Create setup file. --- setup.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 setup.py diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..ff77645 --- /dev/null +++ b/setup.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +# -*- coding: utf8 -*- + +from setuptools import find_packages, setup + +#region File Attributes + +__author__ = "Orlin Dimitrov" +"""Author of the file.""" + +__copyright__ = "" +"""Copyrighted""" + +__credits__ = [] +"""Credits""" + +__license__ = "" +"""License +@see """ + +__version__ = "1.0.0" +"""Version of the file.""" + +__maintainer__ = ["Orlin Dimitrov", "Martin Maslyankov", "Nikola Atanasov"] +"""Name of the maintainer.""" + +__email__ = "" +"""E-mail of the author.""" + +#endregion + +setup( + name="bg_ED_data", + packages=find_packages(include=["bg_ED_data"]), + version=__version__, + description="Bulgaria electro distribution data provider.", + author=__author__, + license=__license__, + install_requires=[], + setup_requires=[], + tests_require=["certifi==2022.12.7", "charset-normalizer==3.1.0", + "idna==3.4", "requests==2.28.2", "urllib3==1.26.15"], + test_suite="", +) From 4a8abba8cee72895b5eed82902f9772b5e738715 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Sat, 13 May 2023 08:03:41 +0300 Subject: [PATCH 04/13] Migrate code to library folder. --- {providers => bg_ED_data}/__init__.py | 0 run.py => bg_ED_data/__main__.py | 0 {providers/base => bg_ED_data/providers}/__init__.py | 0 .../electrohold => bg_ED_data/providers/base}/__init__.py | 0 {providers => bg_ED_data/providers}/base/base_provider.py | 0 .../erp_sever => bg_ED_data/providers/electrohold}/__init__.py | 0 {providers => bg_ED_data/providers}/electrohold/electrohold.py | 0 {utils => bg_ED_data/providers/erp_sever}/__init__.py | 0 {providers => bg_ED_data/providers}/erp_sever/__main__.py | 0 {providers => bg_ED_data/providers}/erp_sever/erp_sever.py | 1 + {providers => bg_ED_data/providers}/erp_sever/province.py | 0 bg_ED_data/utils/__init__.py | 2 ++ {utils => bg_ED_data/utils}/html_parser.py | 0 13 files changed, 3 insertions(+) rename {providers => bg_ED_data}/__init__.py (100%) rename run.py => bg_ED_data/__main__.py (100%) rename {providers/base => bg_ED_data/providers}/__init__.py (100%) rename {providers/electrohold => bg_ED_data/providers/base}/__init__.py (100%) rename {providers => bg_ED_data/providers}/base/base_provider.py (100%) rename {providers/erp_sever => bg_ED_data/providers/electrohold}/__init__.py (100%) rename {providers => bg_ED_data/providers}/electrohold/electrohold.py (100%) rename {utils => bg_ED_data/providers/erp_sever}/__init__.py (100%) rename {providers => bg_ED_data/providers}/erp_sever/__main__.py (100%) rename {providers => bg_ED_data/providers}/erp_sever/erp_sever.py (97%) rename {providers => bg_ED_data/providers}/erp_sever/province.py (100%) create mode 100644 bg_ED_data/utils/__init__.py rename {utils => bg_ED_data/utils}/html_parser.py (100%) diff --git a/providers/__init__.py b/bg_ED_data/__init__.py similarity index 100% rename from providers/__init__.py rename to bg_ED_data/__init__.py diff --git a/run.py b/bg_ED_data/__main__.py similarity index 100% rename from run.py rename to bg_ED_data/__main__.py diff --git a/providers/base/__init__.py b/bg_ED_data/providers/__init__.py similarity index 100% rename from providers/base/__init__.py rename to bg_ED_data/providers/__init__.py diff --git a/providers/electrohold/__init__.py b/bg_ED_data/providers/base/__init__.py similarity index 100% rename from providers/electrohold/__init__.py rename to bg_ED_data/providers/base/__init__.py diff --git a/providers/base/base_provider.py b/bg_ED_data/providers/base/base_provider.py similarity index 100% rename from providers/base/base_provider.py rename to bg_ED_data/providers/base/base_provider.py diff --git a/providers/erp_sever/__init__.py b/bg_ED_data/providers/electrohold/__init__.py similarity index 100% rename from providers/erp_sever/__init__.py rename to bg_ED_data/providers/electrohold/__init__.py diff --git a/providers/electrohold/electrohold.py b/bg_ED_data/providers/electrohold/electrohold.py similarity index 100% rename from providers/electrohold/electrohold.py rename to bg_ED_data/providers/electrohold/electrohold.py diff --git a/utils/__init__.py b/bg_ED_data/providers/erp_sever/__init__.py similarity index 100% rename from utils/__init__.py rename to bg_ED_data/providers/erp_sever/__init__.py diff --git a/providers/erp_sever/__main__.py b/bg_ED_data/providers/erp_sever/__main__.py similarity index 100% rename from providers/erp_sever/__main__.py rename to bg_ED_data/providers/erp_sever/__main__.py diff --git a/providers/erp_sever/erp_sever.py b/bg_ED_data/providers/erp_sever/erp_sever.py similarity index 97% rename from providers/erp_sever/erp_sever.py rename to bg_ED_data/providers/erp_sever/erp_sever.py index 8b7edce..1a9a174 100644 --- a/providers/erp_sever/erp_sever.py +++ b/bg_ED_data/providers/erp_sever/erp_sever.py @@ -48,4 +48,5 @@ def get_outages(self, **kwargs): def get_prices(self, **kwargs): url = "https://erpsever.bg/bg/ceni/ceni-za-prenos-i-dostyp" response = requests.get(url) + print(response.text) pass diff --git a/providers/erp_sever/province.py b/bg_ED_data/providers/erp_sever/province.py similarity index 100% rename from providers/erp_sever/province.py rename to bg_ED_data/providers/erp_sever/province.py diff --git a/bg_ED_data/utils/__init__.py b/bg_ED_data/utils/__init__.py new file mode 100644 index 0000000..4323b31 --- /dev/null +++ b/bg_ED_data/utils/__init__.py @@ -0,0 +1,2 @@ +#!/usr/bin/env python +# -*- coding: utf8 -*- \ No newline at end of file diff --git a/utils/html_parser.py b/bg_ED_data/utils/html_parser.py similarity index 100% rename from utils/html_parser.py rename to bg_ED_data/utils/html_parser.py From 17ee1232f4c7705e9ca50abf8c148a6dd56bcec7 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Thu, 18 May 2023 20:22:20 +0300 Subject: [PATCH 05/13] Refactoring the main file --- bg_ED_data/__main__.py | 16 +++++- bg_ED_data/providers/erp_sever/__main__.py | 52 ----------------- bg_ED_data/providers/factory.py | 65 ++++++++++++++++++++++ 3 files changed, 78 insertions(+), 55 deletions(-) delete mode 100644 bg_ED_data/providers/erp_sever/__main__.py create mode 100644 bg_ED_data/providers/factory.py diff --git a/bg_ED_data/__main__.py b/bg_ED_data/__main__.py index da4e464..38ee2dd 100644 --- a/bg_ED_data/__main__.py +++ b/bg_ED_data/__main__.py @@ -1,8 +1,9 @@ #!/usr/bin/env python # -*- coding: utf8 -*- -# from providers.electrohold.electrohold import Electrohold as Provider -from providers.erp_sever.erp_sever import ERPSever as Provider +import argparse + +from providers.factory import Factory #region File Attributes @@ -35,9 +36,18 @@ def main(): + # Create parser. + parser = argparse.ArgumentParser() + + parser.add_argument("--provider", type=str, default="erp_sever", help="ERP Sever") + + # Take arguments. + args = parser.parse_args() + + provider = Factory.create(args.provider) + print("Starting work...") - provider = Provider() ids = ['300066244165', '123456789101'] for identifier in ids: diff --git a/bg_ED_data/providers/erp_sever/__main__.py b/bg_ED_data/providers/erp_sever/__main__.py deleted file mode 100644 index c2c200c..0000000 --- a/bg_ED_data/providers/erp_sever/__main__.py +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf8 -*- - -import sys - -from erp_sever.erp_sever import ERPSever as Provider - -#region File Attributes - -__author__ = "Orlin Dimitrov" -"""Author of the file.""" - -__copyright__ = "" -"""Copyrighted""" - -__credits__ = [] -"""Credits""" - -__license__ = "" -"""License -@see """ - -__version__ = "1.0.0" -"""Version of the file.""" - -__maintainer__ = ["Orlin Dimitrov", "Martin Maslyankov", "Nikola Atanasov"] -"""Name of the maintainer.""" - -__email__ = "" -"""E-mail of the author.""" - -__class_name__ = "" -"""Provider class name.""" - -#endregion - -def main(): - - print('cmd entry:', sys.argv) - - provider = Provider() - ids = ['300066244165', '123456789101'] - - for identifier in ids: - print("Electricity outages data:") - print(provider.get_outages(identifier=identifier)) - - print("Electricity prices data:") - print(provider.get_prices()) - -if __name__ == "__main__": - main() diff --git a/bg_ED_data/providers/factory.py b/bg_ED_data/providers/factory.py new file mode 100644 index 0000000..30dba47 --- /dev/null +++ b/bg_ED_data/providers/factory.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +# -*- coding: utf8 -*- + +from providers.electrohold.electrohold import Electrohold +from providers.erp_sever.erp_sever import ERPSever + + +#region File Attributes + +__author__ = "Orlin Dimitrov" +"""Author of the file.""" + +__copyright__ = "" +"""Copyrighted""" + +__credits__ = [] +"""Credits""" + +__license__ = "" +"""License +@see """ + +__version__ = "1.0.0" +"""Version of the file.""" + +__maintainer__ = ["Orlin Dimitrov", "Martin Maslyankov", "Nikola Atanasov"] +"""Name of the maintainer.""" + +__email__ = "" +"""E-mail of the author.""" + +__class_name__ = "ERPSever" +"""Provider class name.""" + +#endregion + +class Factory(): + """Providers factory. + """ + + @staticmethod + def create(provider: str): + """Providers creator method. + + Args: + provider (str): The name of wanted provider. + + Raises: + NotImplementedError: It raise when unknown provider name is passed. + + Returns: + any: Instance of the target provider. + """ + provider_instance = None + + if provider == "erp_sever": + provider_instance = ERPSever() + + elif provider == "electro_hold": + provider_instance = Electrohold() + + else: + raise NotImplementedError("provider not implemented.") + + return provider_instance From 5223f678661ed140be9b43c899ab9361c757ad91 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Thu, 18 May 2023 21:05:28 +0300 Subject: [PATCH 06/13] Move exception namespace library to application library folder --- {exceptions => bg_ED_data/exceptions}/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {exceptions => bg_ED_data/exceptions}/__init__.py (100%) diff --git a/exceptions/__init__.py b/bg_ED_data/exceptions/__init__.py similarity index 100% rename from exceptions/__init__.py rename to bg_ED_data/exceptions/__init__.py From 5367cffeca57832ef5a0aded8845aaf25d334451 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Thu, 18 May 2023 21:08:07 +0300 Subject: [PATCH 07/13] Fix import --- bg_ED_data/__main__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bg_ED_data/__main__.py b/bg_ED_data/__main__.py index 38ee2dd..e12ee3d 100644 --- a/bg_ED_data/__main__.py +++ b/bg_ED_data/__main__.py @@ -3,7 +3,7 @@ import argparse -from providers.factory import Factory +from bg_ED_data.providers.factory import Factory #region File Attributes @@ -35,6 +35,8 @@ #endregion def main(): + """Main function. + """ # Create parser. parser = argparse.ArgumentParser() From cce2e7d08aaec4526f483a81647a6b49fe4c00e7 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Wed, 24 May 2023 21:06:27 +0300 Subject: [PATCH 08/13] Update setup --- setup.py | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index ff77645..f185671 100644 --- a/setup.py +++ b/setup.py @@ -1,8 +1,12 @@ #!/usr/bin/env python # -*- coding: utf8 -*- +import sys + from setuptools import find_packages, setup +import bg_ED_data + #region File Attributes __author__ = "Orlin Dimitrov" @@ -29,16 +33,47 @@ #endregion +def long_description(): + """Long description reader. + + Returns: + str: Long description text. + """ + with open('README.md', encoding='utf-8') as file: + return file.read() + +install_requires = ["certifi==2022.12.7", "charset-normalizer==3.1.0", + "idna==3.4", "requests==2.28.2", "urllib3==1.26.15"], + setup( name="bg_ED_data", - packages=find_packages(include=["bg_ED_data"]), + packages=find_packages(include=["bg_ED_data", 'bg_ED_data.*']), + entry_points={ + 'console_scripts': [ + 'bg_ED_data = bg_ED_data.__main__:main' + ] + }, version=__version__, description="Bulgaria electro distribution data provider.", + long_description=long_description(), + long_description_content_type='text/markdown', author=__author__, license=__license__, - install_requires=[], + author_email=__email__, + python_requires='>=3.7', + install_requires=install_requires, setup_requires=[], - tests_require=["certifi==2022.12.7", "charset-normalizer==3.1.0", - "idna==3.4", "requests==2.28.2", "urllib3==1.26.15"], + tests_require=[], test_suite="", + project_urls={ + 'GitHub': 'https://github.com/wectrl-io/bg_ED_data', + }, + classifiers=[ + 'Development Status :: 1 - Debug', + 'Programming Language :: Python', + 'Programming Language :: Python :: 3 :: Only', + 'Environment :: Console', + 'Intended Audience :: Developers', + ], + # package_data={'example.path.lob.name': ['file_name.extension']} ) From 3a5eee7014bc603ca193670d58320c330c407145 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Wed, 24 May 2023 21:16:22 +0300 Subject: [PATCH 09/13] Update git ignore --- .gitignore | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index dfc9c67..4934ad1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -# Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode,python -# Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode,python +# Created by https://www.toptal.com/developers/gitignore/api/python,visualstudiocode +# Edit at https://www.toptal.com/developers/gitignore?templates=python,visualstudiocode ### Python ### # Byte-compiled / optimized / DLL files @@ -192,7 +192,4 @@ pyrightconfig.json .history .ionide -# End of https://www.toptal.com/developers/gitignore/api/visualstudiocode,python - -#macOS -.DS_Store +# End of https://www.toptal.com/developers/gitignore/api/python,visualstudiocode From bd589a73f187387791ae27857321cd1882c4c0c0 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Wed, 24 May 2023 22:37:21 +0300 Subject: [PATCH 10/13] Fix init files --- bg_ED_data/__init__.py | 4 ---- bg_ED_data/providers/__init__.py | 4 ---- bg_ED_data/providers/base/__init__.py | 4 ---- bg_ED_data/providers/electrohold/__init__.py | 4 ---- 4 files changed, 16 deletions(-) diff --git a/bg_ED_data/__init__.py b/bg_ED_data/__init__.py index 1998906..902ab2a 100644 --- a/bg_ED_data/__init__.py +++ b/bg_ED_data/__init__.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -<<<<<<< HEAD # -*- coding: utf8 -*- #region File Attributes @@ -30,6 +29,3 @@ """Provider class name.""" #endregion -======= -# -*- coding: utf8 -*- ->>>>>>> c74953c12589b0b65d342d681e8c0850f9341ed9 diff --git a/bg_ED_data/providers/__init__.py b/bg_ED_data/providers/__init__.py index 1998906..902ab2a 100644 --- a/bg_ED_data/providers/__init__.py +++ b/bg_ED_data/providers/__init__.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -<<<<<<< HEAD # -*- coding: utf8 -*- #region File Attributes @@ -30,6 +29,3 @@ """Provider class name.""" #endregion -======= -# -*- coding: utf8 -*- ->>>>>>> c74953c12589b0b65d342d681e8c0850f9341ed9 diff --git a/bg_ED_data/providers/base/__init__.py b/bg_ED_data/providers/base/__init__.py index 1998906..902ab2a 100644 --- a/bg_ED_data/providers/base/__init__.py +++ b/bg_ED_data/providers/base/__init__.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -<<<<<<< HEAD # -*- coding: utf8 -*- #region File Attributes @@ -30,6 +29,3 @@ """Provider class name.""" #endregion -======= -# -*- coding: utf8 -*- ->>>>>>> c74953c12589b0b65d342d681e8c0850f9341ed9 diff --git a/bg_ED_data/providers/electrohold/__init__.py b/bg_ED_data/providers/electrohold/__init__.py index 1998906..902ab2a 100644 --- a/bg_ED_data/providers/electrohold/__init__.py +++ b/bg_ED_data/providers/electrohold/__init__.py @@ -1,5 +1,4 @@ #!/usr/bin/env python -<<<<<<< HEAD # -*- coding: utf8 -*- #region File Attributes @@ -30,6 +29,3 @@ """Provider class name.""" #endregion -======= -# -*- coding: utf8 -*- ->>>>>>> c74953c12589b0b65d342d681e8c0850f9341ed9 From 530a9980ba09f1a0d5acc5d0c30b02bab08eb3de Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Wed, 24 May 2023 22:37:41 +0300 Subject: [PATCH 11/13] Fix libs imports --- bg_ED_data/providers/electrohold/electrohold.py | 10 ++++++---- bg_ED_data/providers/factory.py | 5 ++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/bg_ED_data/providers/electrohold/electrohold.py b/bg_ED_data/providers/electrohold/electrohold.py index f77cbbc..915fb5b 100644 --- a/bg_ED_data/providers/electrohold/electrohold.py +++ b/bg_ED_data/providers/electrohold/electrohold.py @@ -3,12 +3,14 @@ import json -from providers.base.base_provider import BaseProvider -from utils.html_parser import HTMLTableParser +from bg_ED_data.providers.base.base_provider import BaseProvider +from bg_ED_data.utils.html_parser import HTMLTableParser -# Suppress ssl warnings import requests -requests.urllib3.disable_warnings(requests.urllib3.exceptions.InsecureRequestWarning) +import urllib3 + +# Suppress ssl warnings +# urllib3.disable_warnings(requests.exceptions.SSLError) from webbrowser import get diff --git a/bg_ED_data/providers/factory.py b/bg_ED_data/providers/factory.py index 30dba47..3e04775 100644 --- a/bg_ED_data/providers/factory.py +++ b/bg_ED_data/providers/factory.py @@ -1,9 +1,8 @@ #!/usr/bin/env python # -*- coding: utf8 -*- -from providers.electrohold.electrohold import Electrohold -from providers.erp_sever.erp_sever import ERPSever - +from bg_ED_data.providers.electrohold.electrohold import Electrohold +from bg_ED_data.providers.erp_sever.erp_sever import ERPSever #region File Attributes From d872398104f8b56cebb33f557230ea2428a7a788 Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Wed, 24 May 2023 22:38:03 +0300 Subject: [PATCH 12/13] Get text data for outages --- bg_ED_data/providers/erp_sever/erp_sever.py | 38 ++++++++++++++++++--- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/bg_ED_data/providers/erp_sever/erp_sever.py b/bg_ED_data/providers/erp_sever/erp_sever.py index 1a9a174..2bb99e9 100644 --- a/bg_ED_data/providers/erp_sever/erp_sever.py +++ b/bg_ED_data/providers/erp_sever/erp_sever.py @@ -1,11 +1,12 @@ #!/usr/bin/env python # -*- coding: utf8 -*- -from providers.base.base_provider import BaseProvider +from bg_ED_data.providers.base.base_provider import BaseProvider # Suppress ssl warnings import requests -requests.urllib3.disable_warnings(requests.urllib3.exceptions.InsecureRequestWarning) + +# requests.urllib3.disable_warnings(requests.urllib3.exceptions.InsecureRequestWarning) #region File Attributes @@ -39,9 +40,38 @@ class ERPSever(BaseProvider): def get_outages(self, **kwargs): - url = "https://erpsever.bg/bg/profil/xhr/?method=get_interruptions®ion_id=2&type=for_next_48_hours&offset=0&archive_from_date=&archive_to_date=" - response = requests.get(url) + cookies = { + 'STDXFWSID': '3prf6nchustns3phuq1om0o881', + } + + headers = { + 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0', + 'Accept': 'application/json, text/javascript, */*; q=0.01', + 'Accept-Language': 'en-US,en;q=0.5', + # 'Accept-Encoding': 'gzip, deflate, br', + 'Referer': 'https://www.erpsever.bg/bg/prekysvanija', + 'Content-Type': 'application/json; charset=utf-8', + 'X-Requested-With': 'XMLHttpRequest', + 'Connection': 'keep-alive', + # 'Cookie': 'STDXFWSID=3prf6nchustns3phuq1om0o881', + 'Sec-Fetch-Dest': 'empty', + 'Sec-Fetch-Mode': 'cors', + 'Sec-Fetch-Site': 'same-origin', + } + + params = { + 'method': 'get_interruptions', + 'region_id': '2', + 'type': 'for_next_48_hours', + 'offset': '0', + 'archive_from_date': '', + 'archive_to_date': '', + } + + response = requests.get('https://www.erpsever.bg/bg/profil/xhr/', params=params, cookies=cookies, headers=headers) + response_data_raw = response.text.encode().decode('utf-8-sig') + print(response_data_raw) From e70fc7331b9517070629e1db12b816409971c83d Mon Sep 17 00:00:00 2001 From: Orlin Dimitrov Date: Thu, 25 May 2023 08:53:16 +0300 Subject: [PATCH 13/13] Add todos --- bg_ED_data/providers/erp_sever/erp_sever.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bg_ED_data/providers/erp_sever/erp_sever.py b/bg_ED_data/providers/erp_sever/erp_sever.py index 2bb99e9..78d810e 100644 --- a/bg_ED_data/providers/erp_sever/erp_sever.py +++ b/bg_ED_data/providers/erp_sever/erp_sever.py @@ -61,11 +61,11 @@ def get_outages(self, **kwargs): params = { 'method': 'get_interruptions', - 'region_id': '2', - 'type': 'for_next_48_hours', + 'region_id': '2', # TODO: To be an argument of the method. Create enum for all IDs. + 'type': 'for_next_48_hours', # TODO: To be an argument of the method. 'offset': '0', - 'archive_from_date': '', - 'archive_to_date': '', + 'archive_from_date': '', # TODO: To be an argument of the method. + 'archive_to_date': '', # TODO: To be an argument of the method. } response = requests.get('https://www.erpsever.bg/bg/profil/xhr/', params=params, cookies=cookies, headers=headers)