diff --git a/ai/generateTagline.js b/ai/generateTagline.js index e8b4985..5b6083e 100644 --- a/ai/generateTagline.js +++ b/ai/generateTagline.js @@ -1,28 +1,27 @@ const { GoogleGenerativeAI } = require("@google/generative-ai"); -const genAI = new GoogleGenerativeAI(process.env.GEMINI_KEY); +const genAI = new GoogleGenerativeAI(process.env.API_enter_here); const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" }); export async function generateUserTagline(username, contributions) { - const prompt = ` - Generate a custom tagline for the GitHub user "${username}" based on the following activity and contribution patterns: - - Total Contributions: ${contributions.totalCommitContributions} - - Active Coding Days: ${contributions.contributionCalendar.totalContributions} - - Most Used Programming Languages: (You can add logic to fetch this info if needed) - - The tagline should be consistent, meaningful, and provide an at-a-glance summary of the user's work. - `; + const prompt = ` + Generate a custom tagline for the GitHub user "${username}" based on the following activity and contribution patterns: + - Total Contributions: ${contributions.totalCommitContributions} + - Active Coding Days: ${contributions.contributionCalendar.totalContributions} + - Most Used Programming Languages: ${topLanguages} + + The tagline should be consistent, meaningful, and provide an at-a-glance summary of the user's work. + `; - try { - const result = await model.generateContent(prompt); - // Assuming the API returns a JSON object with a 'tagline' field - if (result.response) { - return result.response.text; - } else { - throw new Error("Tagline not found in the response"); - } - } catch (error) { - console.error("Error generating tagline:", error); - return "No tagline available"; // Fallback message + try { + const result = await model.generateContent(prompt); + if (result.response) { + return result.response.text; + } else { + throw new Error("Tagline not found in the response"); } -} + } catch (error) { + console.error("Error generating tagline:", error); + return "No tagline available"; + } +} \ No newline at end of file diff --git a/src/app/api/ai/route.js b/src/app/api/ai/route.js index e6cc7da..b81842e 100644 --- a/src/app/api/ai/route.js +++ b/src/app/api/ai/route.js @@ -2,13 +2,13 @@ import { NextResponse } from "next/server"; const GITHUB_API_URL = "https://api.github.com/graphql"; export async function POST(req) { - const { username } = await req.json(); + const { username } = await req.json(); - if (!username) { - return new NextResponse("Username required", { status: 400 }); - } + if (!username) { + return new NextResponse("Username required", { status: 400 }); + } - const query = ` + const query = ` query ($login: String!) { user(login: $login) { login @@ -35,41 +35,40 @@ export async function POST(req) { } `; - try { - const response = await fetch(GITHUB_API_URL, { - method: "POST", - headers: { - Accept: "application/json", - Authorization: `Bearer ${process.env.GITHUB_TOKEN}`, - "Content-Type": "application/json", - }, - body: JSON.stringify({ - query, - variables: { login: username }, - }), - }); + try { + const response = await fetch(GITHUB_API_URL, { + method: "POST", + headers: { + Accept: "application/json", + Authorization: `Bearer ${process.env.GITHUB_TOKEN}`, + "Content-Type": "application/json", + }, + body: JSON.stringify({ + query, + variables: { login: username }, + }), + }); - if (!response.ok) { - return new NextResponse(await response.text(), { - status: response.status, - }); - } + if (!response.ok) { + return new NextResponse(await response.text(), { + status: response.status, + }); + } - const data = await response.json(); - console.log(data); - if (data.data.user) { - const contributions = data.data.user.contributionsCollection; - return NextResponse.json({ - exists: true, - totalContributions: contributions.totalCommitContributions, - activeCodingDays: contributions.contributionCalendar.totalContributions - }); - } else { - return NextResponse.json({ exists: false }); - } - } catch (error) { - console.error("Error checking GitHub username:", error); - return new NextResponse("Internal Server Error", { status: 500 }); + const data = await response.json(); + console.log(data); + if (data.data.user) { + const contributions = data.data.user.contributionsCollection; + const tagline = await generateUserTagline(username, contributions); + return NextResponse.json({ + exists: true, + tagline, + }); + } else { + return NextResponse.json({ exists: false }); } -} -export default contributions; + } catch (error) { + console.error("Error checking GitHub username:", error); + return new NextResponse("Internal Server Error", { status: 500 }); + } +} \ No newline at end of file diff --git a/src/app/page.jsx b/src/app/page.jsx index ba52dc2..7c4058d 100644 --- a/src/app/page.jsx +++ b/src/app/page.jsx @@ -4,4 +4,4 @@ export default function Page() { return ( ); -} +} \ No newline at end of file