# HG changeset patch # User anatofuz # Date 1605004626 -32400 # Node ID b3d63ea31ac9c88b41af656671186da09466943b reference diff -r 000000000000 -r b3d63ea31ac9 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Tue Nov 10 19:37:06 2020 +0900 @@ -0,0 +1,44 @@ +syntax:glob + +# Created by https://www.toptal.com/developers/gitignore/api/perl +# Edit at https://www.toptal.com/developers/gitignore?templates=perl + +### Perl ### +!Build/ +.last_cover_stats +/META.yml +/META.json +/MYMETA.* +*.o +*.pm.tdy +*.bs + +# Devel::Cover +cover_db/ + +# Devel::NYTProf +nytprof.out + +# Dizt::Zilla +/.build/ + +# Module::Build +_build/ +Build +Build.bat + +# Module::Install +inc/ + +# ExtUtils::MakeMaker +/blib/ +/_eumm/ +/*.gz +/Makefile +/Makefile.old +/MANIFEST.bak +/pm_to_blib +/*.zip + +# End of https://www.toptal.com/developers/gitignore/api/perl +local/ diff -r 000000000000 -r b3d63ea31ac9 cpanfile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cpanfile Tue Nov 10 19:37:06 2020 +0900 @@ -0,0 +1,3 @@ +requires 'JSON'; +requires 'JSON::XS'; +requires 'Path::Tiny'; diff -r 000000000000 -r b3d63ea31ac9 cpanfile.snapshot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cpanfile.snapshot Tue Nov 10 19:37:06 2020 +0900 @@ -0,0 +1,67 @@ +# carton snapshot format: version 1.0 +DISTRIBUTIONS + Canary-Stability-2013 + pathname: M/ML/MLEHMANN/Canary-Stability-2013.tar.gz + provides: + Canary::Stability 2013 + requirements: + ExtUtils::MakeMaker 0 + JSON-4.02 + pathname: I/IS/ISHIGAKI/JSON-4.02.tar.gz + provides: + JSON 4.02 + JSON::Backend::PP 4.02 + requirements: + ExtUtils::MakeMaker 0 + Test::More 0 + JSON-XS-4.03 + pathname: M/ML/MLEHMANN/JSON-XS-4.03.tar.gz + provides: + JSON::XS 4.03 + requirements: + Canary::Stability 0 + ExtUtils::MakeMaker 6.52 + Types::Serialiser 0 + common::sense 0 + Path-Tiny-0.114 + pathname: D/DA/DAGOLDEN/Path-Tiny-0.114.tar.gz + provides: + Path::Tiny 0.114 + Path::Tiny::Error 0.114 + requirements: + Carp 0 + Cwd 0 + Digest 1.03 + Digest::SHA 5.45 + Encode 0 + Exporter 5.57 + ExtUtils::MakeMaker 6.17 + Fcntl 0 + File::Copy 0 + File::Glob 0 + File::Path 2.07 + File::Spec 0.86 + File::Temp 0.19 + File::stat 0 + constant 0 + overload 0 + perl 5.008001 + strict 0 + warnings 0 + warnings::register 0 + Types-Serialiser-1.0 + pathname: M/ML/MLEHMANN/Types-Serialiser-1.0.tar.gz + provides: + JSON::PP::Boolean 1.0 + Types::Serialiser 1.0 + Types::Serialiser::BooleanBase 1.0 + Types::Serialiser::Error 1.0 + requirements: + ExtUtils::MakeMaker 0 + common::sense 0 + common-sense-3.75 + pathname: M/ML/MLEHMANN/common-sense-3.75.tar.gz + provides: + common::sense 3.75 + requirements: + ExtUtils::MakeMaker 0 diff -r 000000000000 -r b3d63ea31ac9 parse.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/parse.pl Tue Nov 10 19:37:06 2020 +0900 @@ -0,0 +1,47 @@ +#!/usr/bin/env perl +use strict; +use warnings; + +use utf8; +use Encode; +use JSON; +use Path::Tiny; +use DDP {deparse => 1}; + +my $json_file = shift or die 'require json file'; +my $revision = decode_json(path($json_file)->slurp); + +#p $revision; + +my $paths; + +for my $elem (@$revision) { + push(@{$paths->{$elem->{path}}}, $elem); +} + +for my $path (keys %$paths) { + my $elems = $paths->{$path}; + print "$path\n"; + + my @elems = @$elems; + if (@elems != 1) { + @elems = sort { $b->{createdAt} cmp $a->{createdAt}} @elems; + } + my $latest_elem = shift @elems; + my $emit_file_path = path("./emit/$path.md"); + $emit_file_path->parent->mkpath; + $emit_file_path->spew_utf8($latest_elem->{body}); +} + +__END__ + { + "_id": "5ecce2e5fc19b9004a86ec47", + "format": "markdown", + "createdAt": "2020-05-26T09:35:33.830Z", + "path": "/user/anatofuz/note/2020/05/26", + "body": "", + "author": "5df5ef37d744a60045dd1524", + "hasDiffToPrev": true, + "__v": 0 + } +