Compare commits

...

15 Commits

Author SHA1 Message Date
platane
b0a6d2e94f aaaa 2020-07-20 09:40:53 +02:00
platane
250f0ba420 aaaa 2020-07-20 09:35:29 +02:00
platane
cfae6bb512 aaaa 2020-07-20 09:30:49 +02:00
platane
720b3bbf12 aaaa 2020-07-20 09:24:09 +02:00
platane
cb4016eda8 aaaa 2020-07-20 09:23:12 +02:00
platane
1a73179465 aaaa 2020-07-20 09:03:42 +02:00
platane
e62d5a56e4 aaaa 2020-07-20 09:01:47 +02:00
platane
6815912b18 aaaa 2020-07-20 08:58:27 +02:00
platane
c78ef253a1 aaaaaa 2020-07-19 21:23:05 +02:00
platane
efae6f21b5 aaaaaa 2020-07-19 21:22:24 +02:00
platane
ae99398406 aaaaaa 2020-07-19 21:16:34 +02:00
platane
505d6ab7f0 aaaaaa 2020-07-19 21:15:44 +02:00
platane
93fa60a844 aaaaaa 2020-07-19 21:10:21 +02:00
platane
e5fbdf8cfe aaaaaa 2020-07-19 21:09:33 +02:00
platane
f2452ed852 aaaaaa 2020-07-19 20:37:57 +02:00
36 changed files with 28 additions and 174308 deletions

View File

@@ -9,11 +9,11 @@ jobs:
steps:
# - run: sudo apt-get install gifsicle graphicsmagick
- uses: actions/checkout@v1
- uses: actions/setup-node@v1.4.2
with:
node-version: 14
# - uses: actions/setup-node@v1.4.2
# with:
# node-version: 14
- uses: bahmutov/npm-install@v1.4.1
# - uses: bahmutov/npm-install@v1.4.1
# - run: yarn type
# - run: yarn lint
@@ -26,3 +26,8 @@ jobs:
github_user_name: platane
- run: ls
- run: ls -l github-contribution-grid-snake.gif
- run: ls -l
- run: ls
- run: ls
- run: ls

3
.gitignore vendored
View File

@@ -2,4 +2,5 @@ node_modules
npm-debug.log*
yarn-error.log*
dist
build
build
out.gif

View File

@@ -4,12 +4,16 @@ RUN apt-get update \
&& apt-get install -y --no-install-recommends gifsicle graphicsmagick \
&& rm -rf /var/lib/apt/lists/*
COPY tsconfig.json package.json yarn.lock ./generate-snake-game-from-github-contribution-grid/
COPY packages ./generate-snake-game-from-github-contribution-grid/packages/
COPY tsconfig.json package.json yarn.lock /github/platane.aa/
COPY packages /github/platane.aa/packages
RUN ( cd ./generate-snake-game-from-github-contribution-grid ; yarn install --frozen-lockfile )
RUN ( cd ./generate-snake-game-from-github-contribution-grid ; yarn build:action )
CMD ["node", "./generate-snake-game-from-github-contribution-grid/packages/action/dist/index.js"]
RUN ( \
cd /github/platane.aa \
&& find . \
&& yarn install --frozen-lockfile \
&& yarn build:action \
&& mv packages/action/dist/* . \
&& rm -rf packages tsconfig.json package.json yarn.lock node_modules \
)
CMD ["node", "/github/platane.aa/index.js"]

View File

@@ -1,3 +0,0 @@
!dist
!dist/build
out.gif

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -1,84 +0,0 @@
const Canvas = require('./lib/canvas')
const Image = require('./lib/image')
const CanvasRenderingContext2D = require('./lib/context2d')
const parseFont = require('./lib/parse-font')
const packageJson = require('./package.json')
const bindings = require('./lib/bindings')
const fs = require('fs')
const PNGStream = require('./lib/pngstream')
const PDFStream = require('./lib/pdfstream')
const JPEGStream = require('./lib/jpegstream')
const DOMMatrix = require('./lib/DOMMatrix').DOMMatrix
const DOMPoint = require('./lib/DOMMatrix').DOMPoint
function createCanvas (width, height, type) {
return new Canvas(width, height, type)
}
function createImageData (array, width, height) {
return new bindings.ImageData(array, width, height)
}
function loadImage (src) {
return new Promise((resolve, reject) => {
const image = new Image()
function cleanup () {
image.onload = null
image.onerror = null
}
image.onload = () => { cleanup(); resolve(image) }
image.onerror = (err) => { cleanup(); reject(err) }
image.src = src
})
}
/**
* Resolve paths for registerFont. Must be called *before* creating a Canvas
* instance.
* @param src {string} Path to font file.
* @param fontFace {{family: string, weight?: string, style?: string}} Object
* specifying font information. `weight` and `style` default to `"normal"`.
*/
function registerFont (src, fontFace) {
// TODO this doesn't need to be on Canvas; it should just be a static method
// of `bindings`.
return Canvas._registerFont(fs.realpathSync(src), fontFace)
}
module.exports = {
Canvas,
Context2d: CanvasRenderingContext2D, // Legacy/compat export
CanvasRenderingContext2D,
CanvasGradient: bindings.CanvasGradient,
CanvasPattern: bindings.CanvasPattern,
Image,
ImageData: bindings.ImageData,
PNGStream,
PDFStream,
JPEGStream,
DOMMatrix,
DOMPoint,
registerFont,
parseFont,
createCanvas,
createImageData,
loadImage,
backends: bindings.Backends,
/** Library version. */
version: packageJson.version,
/** Cairo version. */
cairoVersion: bindings.cairoVersion,
/** jpeglib version. */
jpegVersion: bindings.jpegVersion,
/** gif_lib version. */
gifVersion: bindings.gifVersion ? bindings.gifVersion.replace(/[^.\d]/g, '') : undefined,
/** freetype version. */
freetypeVersion: bindings.freetypeVersion
}

View File

@@ -1,60 +0,0 @@
"use strict";
/* eslint-disable no-process-exit */
const util = require("util");
const { JSDOM } = require("../../../..");
const { READY_STATES } = require("./xhr-utils");
const idlUtils = require("../generated/utils");
const tough = require("tough-cookie");
const dom = new JSDOM();
const xhr = new dom.window.XMLHttpRequest();
const xhrImpl = idlUtils.implForWrapper(xhr);
const chunks = [];
process.stdin.on("data", chunk => {
chunks.push(chunk);
});
process.stdin.on("end", () => {
const buffer = Buffer.concat(chunks);
const flag = JSON.parse(buffer.toString());
if (flag.body && flag.body.type === "Buffer" && flag.body.data) {
flag.body = Buffer.from(flag.body.data);
}
if (flag.cookieJar) {
flag.cookieJar = tough.CookieJar.fromJSON(flag.cookieJar);
}
flag.synchronous = false;
Object.assign(xhrImpl.flag, flag);
const { properties } = xhrImpl;
xhrImpl.readyState = READY_STATES.OPENED;
try {
xhr.addEventListener("loadend", () => {
if (properties.error) {
properties.error = properties.error.stack || util.inspect(properties.error);
}
process.stdout.write(JSON.stringify({
responseURL: xhrImpl.responseURL,
status: xhrImpl.status,
statusText: xhrImpl.statusText,
properties
}), () => {
process.exit(0);
});
}, false);
xhr.send(flag.body);
} catch (error) {
properties.error += error.stack || util.inspect(error);
process.stdout.write(JSON.stringify({
responseURL: xhrImpl.responseURL,
status: xhrImpl.status,
statusText: xhrImpl.statusText,
properties
}), () => {
process.exit(0);
});
}
});

View File

@@ -4,23 +4,14 @@ import { generateContributionSnake } from "./generateContributionSnake";
(async () => {
try {
console.log("argv", process.argv);
const userName = core.getInput("github_user_name");
const gifOutPath = core.getInput("gif_out_path");
console.log(core.getInput("user_name"));
console.log(core.getInput("gif_out_path"));
console.log("--");
console.log("--");
console.log(process.cwd());
console.log("--");
console.log(fs.readdirSync(process.cwd()));
console.log("--");
console.log("--");
console.log(process.env.GITHUB_WORKSPACE);
console.log("--");
console.log(fs.readdirSync(process.cwd()));
const buffer = await generateContributionSnake(userName);
const buffer = await generateContributionSnake(core.getInput("user_name"));
fs.writeFileSync(core.getInput("gif_out_path"), buffer);
console.log({ userName, gifOutPath }, buffer.length);
fs.writeFileSync(gifOutPath, buffer);
} catch (e) {
core.setFailed(`Action failed with "${e.message}"`);
}

View File

@@ -1 +0,0 @@
out.gif