Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Open
9 changes: 3 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -192,7 +192,4 @@ pyrightconfig.json
.history
.ionide

# End of https://www.toptal.com/developers/gitignore/api/visualstudiocode,python

#macOS
.DS_Store
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pls do not remove this for users of MacOS

# End of https://www.toptal.com/developers/gitignore/api/python,visualstudiocode
File renamed without changes.
18 changes: 15 additions & 3 deletions run.py → bg_ED_data/__main__.py
Original file line number Diff line number Diff line change
@@ -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 bg_ED_data.providers.factory import Factory

#region File Attributes

Expand Down Expand Up @@ -34,10 +35,21 @@
#endregion

def main():
"""Main function.
"""

# 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:
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
82 changes: 82 additions & 0 deletions bg_ED_data/providers/erp_sever/erp_sever.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
#!/usr/bin/env python
# -*- coding: utf8 -*-

from bg_ED_data.providers.base.base_provider import BaseProvider

# Suppress ssl warnings
import requests

# requests.urllib3.disable_warnings(requests.urllib3.exceptions.InsecureRequestWarning)

#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 ERPSever(BaseProvider):

def get_outages(self, **kwargs):
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', # 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': '', # 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)

response_data_raw = response.text.encode().decode('utf-8-sig')

print(response_data_raw)


def get_prices(self, **kwargs):
url = "https://erpsever.bg/bg/ceni/ceni-za-prenos-i-dostyp"
response = requests.get(url)
print(response.text)
pass
64 changes: 64 additions & 0 deletions bg_ED_data/providers/factory.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
#!/usr/bin/env python
# -*- coding: utf8 -*-

from bg_ED_data.providers.electrohold.electrohold import Electrohold
from bg_ED_data.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
2 changes: 2 additions & 0 deletions bg_ED_data/utils/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env python
# -*- coding: utf8 -*-
File renamed without changes.
52 changes: 0 additions & 52 deletions providers/erp_sever/__main__.py

This file was deleted.

51 changes: 0 additions & 51 deletions providers/erp_sever/erp_sever.py

This file was deleted.

6 changes: 5 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
requests==2.27.1
certifi==2022.12.7
charset-normalizer==3.1.0
idna==3.4
requests==2.28.2
urllib3==1.26.15
Loading