Skip to content

Commit

Permalink
Merge pull request #30 from murtaza-sadri-19/master
Browse files Browse the repository at this point in the history
Tagline Generation resolved
  • Loading branch information
vansh-codes authored Oct 9, 2024
2 parents 829bc95 + a0cd3e1 commit 6162347
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 62 deletions.
41 changes: 20 additions & 21 deletions ai/generateTagline.js
Original file line number Diff line number Diff line change
@@ -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";
}
}
79 changes: 39 additions & 40 deletions src/app/api/ai/route.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 });
}
}
2 changes: 1 addition & 1 deletion src/app/page.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ export default function Page() {
return (
<Home />
);
}
}

0 comments on commit 6162347

Please sign in to comment.