Update app.py
Browse files
app.py
CHANGED
@@ -1,7 +1,8 @@
|
|
1 |
from fastapi import FastAPI, HTTPException
|
2 |
import instaloader
|
3 |
from pydantic import BaseModel
|
4 |
-
from typing import List
|
|
|
5 |
|
6 |
app = FastAPI()
|
7 |
|
@@ -13,10 +14,13 @@ class PostResponse(BaseModel):
|
|
13 |
posted_on: str
|
14 |
image_url: str
|
15 |
|
|
|
|
|
|
|
16 |
@app.get("/fetch-posts", response_model=List[PostResponse])
|
17 |
async def fetch_instagram_posts(username: str, max_posts: int = 10):
|
18 |
"""
|
19 |
-
Fetch Instagram posts from a public profile.
|
20 |
|
21 |
Args:
|
22 |
username (str): The username of the Instagram profile.
|
@@ -25,8 +29,9 @@ async def fetch_instagram_posts(username: str, max_posts: int = 10):
|
|
25 |
Returns:
|
26 |
List[PostResponse]: A list of posts with caption, likes, comments, posted_on, and image_url.
|
27 |
"""
|
28 |
-
# Initialize Instaloader
|
29 |
L = instaloader.Instaloader()
|
|
|
30 |
|
31 |
try:
|
32 |
# Load the profile
|
@@ -68,4 +73,4 @@ async def fetch_instagram_posts(username: str, max_posts: int = 10):
|
|
68 |
# Run the FastAPI app
|
69 |
if __name__ == "__main__":
|
70 |
import uvicorn
|
71 |
-
uvicorn.run(app, host="0.0.0.0", port=8000)
|
|
|
1 |
from fastapi import FastAPI, HTTPException
|
2 |
import instaloader
|
3 |
from pydantic import BaseModel
|
4 |
+
from typing import List
|
5 |
+
import os
|
6 |
|
7 |
app = FastAPI()
|
8 |
|
|
|
14 |
posted_on: str
|
15 |
image_url: str
|
16 |
|
17 |
+
# Define proxy settings (replace with your proxy details)
|
18 |
+
PROXY_URL = "http://p.webshare.io:5157:kknqfmqe:0wyvognccou8"
|
19 |
+
|
20 |
@app.get("/fetch-posts", response_model=List[PostResponse])
|
21 |
async def fetch_instagram_posts(username: str, max_posts: int = 10):
|
22 |
"""
|
23 |
+
Fetch Instagram posts from a public profile using a proxy.
|
24 |
|
25 |
Args:
|
26 |
username (str): The username of the Instagram profile.
|
|
|
29 |
Returns:
|
30 |
List[PostResponse]: A list of posts with caption, likes, comments, posted_on, and image_url.
|
31 |
"""
|
32 |
+
# Initialize Instaloader with proxy configuration
|
33 |
L = instaloader.Instaloader()
|
34 |
+
L.context.proxy = PROXY_URL
|
35 |
|
36 |
try:
|
37 |
# Load the profile
|
|
|
73 |
# Run the FastAPI app
|
74 |
if __name__ == "__main__":
|
75 |
import uvicorn
|
76 |
+
uvicorn.run(app, host="0.0.0.0", port=8000)
|