import sys
import socket

# Force IPv4
old_getaddrinfo = socket.getaddrinfo
def new_getaddrinfo(*args, **kwargs):
    responses = old_getaddrinfo(*args, **kwargs)
    return [response for response in responses if response[0] == socket.AF_INET]
socket.getaddrinfo = new_getaddrinfo

from google.oauth2 import service_account
from googleapiclient.discovery import build
from googleapiclient.http import MediaFileUpload

SERVICE_ACCOUNT_FILE = 'google_service_account.json'
SCOPES = ['https://www.googleapis.com/auth/drive']

creds = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
drive_service = build('drive', 'v3', credentials=creds)

folder_id = '1EaS10C6-ozNN0iyZC_pJ_28-SG8EWetG'
files_to_upload = [
    ('Dieu gi that su co gia tri - Phan 1 (trang 1-50).pdf', 'Dieu_gi_that_su_co_gia_tri_1-50.pdf'),
    ('Dieu gi that su co gia tri - Phan 2 (trang 51-100).pdf', 'Dieu_gi_that_su_co_gia_tri_51-100.pdf'),
    ('Dieu gi that su co gia tri - Phan 3 (trang 101-150).pdf', 'Dieu_gi_that_su_co_gia_tri_101-150.pdf'),
    ('Dieu gi that su co gia tri - Phan 4 (trang 151-166).pdf', 'Dieu_gi_that_su_co_gia_tri_151-166.pdf')
]

for title, filename in files_to_upload:
    file_metadata = {
        'name': title,
        'parents': [folder_id]
    }
    media = MediaFileUpload(filename, mimetype='application/pdf', resumable=True)
    file = drive_service.files().create(body=file_metadata, media_body=media, fields='id').execute()
    print(f"Uploaded {title} (ID: {file.get('id')})")

