Skip to content

Commit

Permalink
📦 Fix premium issue
Browse files Browse the repository at this point in the history
  • Loading branch information
abhisheknaiidu committed Nov 27, 2020
1 parent d6439ef commit 5f18190
Showing 1 changed file with 101 additions and 107 deletions.
208 changes: 101 additions & 107 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,128 +8,122 @@ const TODOIST_API_KEY = core.getInput("TODOIST_API_KEY");
const PREMIUM = core.getInput("PREMIUM");

async function main() {
const stats = await axios(`https://api.todoist.com/sync/v8.3/completed/get_stats?token=${TODOIST_API_KEY}`);
await updateReadme(stats.data);
const stats = await axios(
`https://api.todoist.com/sync/v8.3/completed/get_stats?token=${TODOIST_API_KEY}`
);
await updateReadme(stats.data);
}

let todoist = [];
let jobFailFlag = false;
const README_FILE_PATH = './README.md';
const README_FILE_PATH = "./README.md";

async function updateReadme(data) {
const { karma, completed_count, days_items, goals, week_items } = data;


const { karma, completed_count, days_items, goals, week_items } = data;

const karmaPoint = [`🏆 **${Humanize.intComma(karma)}** Karma Points`];
todoist.push(karmaPoint);

const dailyGoal = [
`🌸 Completed **${days_items[0].total_completed.toString()}** tasks today`,
];
todoist.push(dailyGoal);
const karmaPoint = [`🏆 **${Humanize.intComma(karma)}** Karma Points`];
todoist.push(karmaPoint);

if(PREMIUM) {
const weekItems = [`🗓 Completed **${week_items[0].total_completed.toString()}** tasks this week`];
todoist.push(weekItems);
}

const totalTasks = [`✅ Completed **${Humanize.intComma(completed_count)}** tasks so far`];
todoist.push(totalTasks);
const dailyGoal = [
`🌸 Completed **${days_items[0].total_completed.toString()}** tasks today`,
];
todoist.push(dailyGoal);

const longestStreak = [
`⏳ Longest streak is **${goals.max_daily_streak.count}** days`,
if (PREMIUM === "true") {
const weekItems = [
`🗓 Completed **${week_items[0].total_completed.toString()}** tasks this week`,
];
todoist.push(longestStreak);

if (todoist.length == 0) return;

if (todoist.length > 0) {
console.log(todoist.length);
// const showTasks = todoist.reduce((todo, cur, index) => {
// return todo + `\n${cur} ` + (((index + 1) === todoist.length) ? '\n' : '');
// })
const readmeData = fs.readFileSync(README_FILE_PATH, "utf8");


const newReadme = buildReadme(readmeData, todoist.join(" \n"));
if (newReadme !== readmeData) {
core.info('Writing to ' + README_FILE_PATH);
fs.writeFileSync(README_FILE_PATH, newReadme);
if (!process.env.TEST_MODE) {
commitReadme();
}
} else {
core.info('No change detected, skipping');
process.exit(0);
}
}
else {
core.info("Nothing fetched");
process.exit(jobFailFlag ? 1 : 0);
}
todoist.push(weekItems);
}

// console.log(todoist.length);
const totalTasks = [
`✅ Completed **${Humanize.intComma(completed_count)}** tasks so far`,
];
todoist.push(totalTasks);

const longestStreak = [
`⏳ Longest streak is **${goals.max_daily_streak.count}** days`,
];
todoist.push(longestStreak);

if (todoist.length == 0) return;


const buildReadme = (prevReadmeContent, newReadmeContent) => {
const tagToLookFor = '<!-- TODO-IST:';
const closingTag = '-->';
const startOfOpeningTagIndex = prevReadmeContent.indexOf(
`${tagToLookFor}START`,
);
const endOfOpeningTagIndex = prevReadmeContent.indexOf(
closingTag,
startOfOpeningTagIndex,
);
const startOfClosingTagIndex = prevReadmeContent.indexOf(
`${tagToLookFor}END`,
endOfOpeningTagIndex,
);
if (
startOfOpeningTagIndex === -1 ||
endOfOpeningTagIndex === -1 ||
startOfClosingTagIndex === -1
) {
core.error(
`Cannot find the comment tag on the readme:\n<!-- ${tagToLookFor}:START -->\n<!-- ${tagToLookFor}:END -->`
);
process.exit(1);
if (todoist.length > 0) {
console.log(todoist.length);
// const showTasks = todoist.reduce((todo, cur, index) => {
// return todo + `\n${cur} ` + (((index + 1) === todoist.length) ? '\n' : '');
// })
const readmeData = fs.readFileSync(README_FILE_PATH, "utf8");

const newReadme = buildReadme(readmeData, todoist.join(" \n"));
if (newReadme !== readmeData) {
core.info("Writing to " + README_FILE_PATH);
fs.writeFileSync(README_FILE_PATH, newReadme);
if (!process.env.TEST_MODE) {
commitReadme();
}
} else {
core.info("No change detected, skipping");
process.exit(0);
}
return [
prevReadmeContent.slice(0, endOfOpeningTagIndex + closingTag.length),
'\n',
newReadmeContent,
'\n',
prevReadmeContent.slice(startOfClosingTagIndex),
].join('');
};

const commitReadme = async () => {
// Getting config
const committerUsername = 'Abhishek Naidu';
const committerEmail = 'example@gmail.com';
const commitMessage = 'Todoist updated.';
// Doing commit and push
await exec('git', [
'config',
'--global',
'user.email',
committerEmail,
]);
await exec('git', ['config', '--global', 'user.name', committerUsername]);
await exec('git', ['add', README_FILE_PATH]);
await exec('git', ['commit', '-m', commitMessage]);
// await exec('git', ['fetch']);
await exec('git', ['push']);
core.info("Readme updated successfully.");
// Making job fail if one of the source fails
} else {
core.info("Nothing fetched");
process.exit(jobFailFlag ? 1 : 0);
};
}
}

// console.log(todoist.length);

const buildReadme = (prevReadmeContent, newReadmeContent) => {
const tagToLookFor = "<!-- TODO-IST:";
const closingTag = "-->";
const startOfOpeningTagIndex = prevReadmeContent.indexOf(
`${tagToLookFor}START`
);
const endOfOpeningTagIndex = prevReadmeContent.indexOf(
closingTag,
startOfOpeningTagIndex
);
const startOfClosingTagIndex = prevReadmeContent.indexOf(
`${tagToLookFor}END`,
endOfOpeningTagIndex
);
if (
startOfOpeningTagIndex === -1 ||
endOfOpeningTagIndex === -1 ||
startOfClosingTagIndex === -1
) {
core.error(
`Cannot find the comment tag on the readme:\n<!-- ${tagToLookFor}:START -->\n<!-- ${tagToLookFor}:END -->`
);
process.exit(1);
}
return [
prevReadmeContent.slice(0, endOfOpeningTagIndex + closingTag.length),
"\n",
newReadmeContent,
"\n",
prevReadmeContent.slice(startOfClosingTagIndex),
].join("");
};

const commitReadme = async () => {
// Getting config
const committerUsername = "Abhishek Naidu";
const committerEmail = "example@gmail.com";
const commitMessage = "Todoist updated.";
// Doing commit and push
await exec("git", ["config", "--global", "user.email", committerEmail]);
await exec("git", ["config", "--global", "user.name", committerUsername]);
await exec("git", ["add", README_FILE_PATH]);
await exec("git", ["commit", "-m", commitMessage]);
// await exec('git', ['fetch']);
await exec("git", ["push"]);
core.info("Readme updated successfully.");
// Making job fail if one of the source fails
process.exit(jobFailFlag ? 1 : 0);
};

(async () => {
await main();
})();
(async () => {
await main();
})();

0 comments on commit 5f18190

Please sign in to comment.