import requests

class GitHubAPI:
    def __init__(self):
        self.base_url = 'https://api.github.com'

    def get_repository(self, repo_url):
        try:
            owner, repo = repo_url.split("github.com/")[1].split("/")
            api_url = f"{self.base_url}/repos/{owner}/{repo}/contents"
            response = requests.get(api_url)
            response.raise_for_status()  # Raise HTTPError for bad responses (4xx or 5xx)
            return response.json()
        except requests.exceptions.RequestException as e:
            return f"Error fetching repository: {e}"
        except IndexError:
            return "Invalid GitHub repository URL. Please use a format like: https://github.com/owner/repo"
        except Exception as e:
            return f"An unexpected error occurred: {e}"

    def get_file_content(self, download_url):
        try:
            response = requests.get(download_url)
            response.raise_for_status()
            return response.text
        except requests.exceptions.RequestException as e:
            return f"Error fetching file content: {e}"