diff options
author | Aki <please@ignore.pl> | 2023-09-01 00:11:05 +0200 |
---|---|---|
committer | Aki <please@ignore.pl> | 2023-09-01 00:11:05 +0200 |
commit | 86e7fa2004c12db0bda8e8fd7697fd8d64b2e4b6 (patch) | |
tree | da48e61b333fb3c6182d3420915a4109fdbc432b | |
parent | 340ef1c6a353680f71700d23b0f54d4d6ae76011 (diff) | |
download | activity-86e7fa2004c12db0bda8e8fd7697fd8d64b2e4b6.zip activity-86e7fa2004c12db0bda8e8fd7697fd8d64b2e4b6.tar.gz activity-86e7fa2004c12db0bda8e8fd7697fd8d64b2e4b6.tar.bz2 |
Generated activity chart now actually contains some activity
-rw-r--r-- | activity.lua | 33 | ||||
-rw-r--r-- | generate.lua | 5 |
2 files changed, 29 insertions, 9 deletions
diff --git a/activity.lua b/activity.lua index cece167..5aefbdc 100644 --- a/activity.lua +++ b/activity.lua @@ -1,9 +1,28 @@ local dates = require "activity.dates" +local git = require "activity.git" local activity = {} -function activity.generate_table (year) +function activity.generate_table (year, repositories) year = year or dates.this_year() + local lookup = git.lookup(repositories) + + local function count (weekday, offset, week) -- TODO: filtering + local count = (lookup[year] or {})[weekday + offset + week * 7] or 0 + if 0 < count and count <= 2 then -- TODO: maybe relative to maximum? + return 1 + end + if 2 < count and count <= 4 then + return 2 + end + if 4 < count and count <= 6 then + return 3 + end + if 6 < count then + return 4 + end + return 0 + end local function spot () return [[<td>]] @@ -20,15 +39,15 @@ function activity.generate_table (year) return day end - local function row (weekday, first, last) + local function row (weekday, index, offset, first, last) first = cell(first) last = cell(last) local row = ([[<tr><td class="activity-chart-label"><span>%s</span>]]):format(weekday) - row = row .. first(math.random(0, 4)) - for _=1,51 do - row = row .. day(math.random(0, 4)) + row = row .. first(count(index, offset, 0)) + for week=2,52 do + row = row .. day(count(index, offset, week)) end - row = row .. last(math.random(0, 4)) .. "\n" + row = row .. last(count(index, offset, 53)) .. "\n" return row end @@ -37,7 +56,7 @@ function activity.generate_table (year) local start_from = dates.first_week_day(year) local end_at = (start_from + dates.days_in(year) - 1) % 7 for index, weekday in pairs(weekdays) do - rows = rows .. row(weekday, index >= start_from, index <= end_at) + rows = rows .. row(weekday, index, 8 - start_from, index >= start_from, index <= end_at) end return [[<table class="activity-chart">]] .. "\n" .. rows .. "</table>" end diff --git a/generate.lua b/generate.lua index 2c78d61..0486f7e 100644 --- a/generate.lua +++ b/generate.lua @@ -1,8 +1,9 @@ local activity = require "activity" -local year = ... +local args = {...} +local year = tonumber(table.remove(args, 1)) print([[<!doctype html>]]) print([[<html lang="en">]]) print([[<meta charset="utf-8">]]) print([[<link rel="stylesheet" type="text/css" href="style.css">]]) print([[<title>Activity</title>]]) -print(activity.generate_table(year)) +print(activity.generate_table(year, args)) |