⌈⌋ ⎇ branch:  freshcode


Check-in [727bd10ffa]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Added plugin meta for current cron hook timing.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 727bd10ffa711f1fca67a6faf1d37501bf6480cf
User & Date: mario 2014-11-08 15:23:28
Context
2014-11-08
15:27
Introduction of releases `via` (= "form", "api" or "autoupdate" and "spool") and `editor_note` fields (raw HTML, displayed per-project in /submit form). check-in: e60fbcf9fa user: mario tags: trunk
15:23
Added plugin meta for current cron hook timing. check-in: 727bd10ffa user: mario tags: trunk
15:23
Added plugin meta for current cron hook timing. More elaborate import-delay calculation. Field `description` condensed. check-in: d734bb41a3 user: mario tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to cron.daily/autoupdate.php.

1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

27


28
29
30
31
32
33
34
<?php
/**
 * api: freshcode
 * title: Autoupdate runner
 * description: Cron job for invoking autoupdates on per-project basis
 * version: 0.5.0
 * depends: curl
 * author: mario
 * license: AGPL

 * 
 *
 * Each project listing can contain:
 *   `autoupdate_module` = none | regex | github | sourceforge | releases.json
 *   `autoupdate_url` = http://...
 *   `autoupdate_regex` = "version=/.../ \n changes=/.../"
 *
 * This module tries to load the mentioned reference URLs, extract version
 * and changelog, scope/state and download link; then updates the database.
 *
 */

// run in cron context
chdir(dirname(__DIR__));
include("config.php");

// go

$run = new Autoupdate();


$run->all();
#print_r($run->test("changelog", "uselessd"));
#print_r($run->test("regex", "linux"));
#print_r($run->test("regex", "php"));
#print_r($p = $run->test("regex", "limesurvey"));
#var_dump(input::words($p["version"]));
#var_dump($run->version_exists('limesurvey', $p['version']));





|



>

















>

>
>

<


<
<
<
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

33
34



<?php
/**
 * api: freshcode
 * title: Autoupdate runner
 * description: Cron job for invoking autoupdates on per-project basis
 * version: 0.6.0
 * depends: curl
 * author: mario
 * license: AGPL
 * x-cron: 15 03 * * *
 * 
 *
 * Each project listing can contain:
 *   `autoupdate_module` = none | regex | github | sourceforge | releases.json
 *   `autoupdate_url` = http://...
 *   `autoupdate_regex` = "version=/.../ \n changes=/.../"
 *
 * This module tries to load the mentioned reference URLs, extract version
 * and changelog, scope/state and download link; then updates the database.
 *
 */

// run in cron context
chdir(dirname(__DIR__));
include("config.php");

// go
$_SESSION["submitter"] = "";
$run = new Autoupdate();
$run->debug = 1;
$run->msg_html = 0;
$run->all();

#print_r($run->test("regex", "linux"));
#print_r($run->test("regex", "php"));



Changes to cron.daily/header_stats.php.

1
2
3
4





5
6
7
8
9
10
11
<?php
/**
 * title: statistics
 * description: generate statistics, visitors, projects, autoupdate, etc. for header





 *
 * Approximate weekly numbers by multiplication.
 *
 */

chdir(dirname(__DIR__)); 
include("config.php");




>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
/**
 * title: statistics
 * description: generate statistics, visitors, projects, autoupdate, etc. for header
 * version: 0.1
 * depends:
 * category: template
 * type: cron
 * x-cron: 11 1 * * *
 *
 * Approximate weekly numbers by multiplication.
 *
 */

chdir(dirname(__DIR__)); 
include("config.php");

Changes to cron.daily/news_feeds.php.

1
2
3
4
5




6
7
8
9
10
11
12
<?php
/**
 * title: Article feeds
 * description: Queries a few online resources for article links
 * version: 0.5




 *
 * Highlights version numbers in news feeds,
 * and populates templates/feed.*.htm for sidebar display.
 *
 * Some of the collected entries (*games) are displayed togerther in sidebar blocks.
 *
 */





>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
/**
 * title: Article feeds
 * description: Queries a few online resources for article links
 * version: 0.5
 * category: template
 * api: cli
 * type: cron
 * x-cron: 12 *\/4 * * * 
 *
 * Highlights version numbers in news feeds,
 * and populates templates/feed.*.htm for sidebar display.
 *
 * Some of the collected entries (*games) are displayed togerther in sidebar blocks.
 *
 */

Changes to cron.daily/news_fossies.php.

1
2
3
4
5




6
7
8
9
10
11
12
<?php
/**
 * title: Fossies.org extraction
 * description: Retrieves from fossies.org and stores as sidebar feed .html.
 * version: 0.5




 *
 * Scrapes from fossies.org/linux/misc/index_n.html,
 * extracts title, version, time, and description.
 *
 * Highlights version numbers and date, adds title= description.
 *
 * Stored in ./template/feed.fossies.htm for frontpage sidebar.





>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
/**
 * title: Fossies.org extraction
 * description: Retrieves from fossies.org and stores as sidebar feed .html.
 * version: 0.5
 * category: template
 * api: cli
 * type: cron
 * x-cron: 11 *\/4 * * * 
 *
 * Scrapes from fossies.org/linux/misc/index_n.html,
 * extracts title, version, time, and description.
 *
 * Highlights version numbers and date, adds title= description.
 *
 * Stored in ./template/feed.fossies.htm for frontpage sidebar.

Changes to cron.daily/poll_githubarchive.php.

1
2
3
4
5


6
7
8


9
10
11
12
13
14
15
<?php
/**
 * title: GitHubArchive releases poll
 * description: Fetch GitHub releases via BigQuery githubarchive:github.timeline
 * version: 0.4


 * depends: config.local
 * doc: http://www.githubarchive.org/
 * github-url: https://github.com/igrigorik/githubarchive.org


 *
 * Queries githubarchive.org event blobs.
 * (Fetching via Google BigQuery too easily exceeded the quotas.)
 *
 * JSON blobs are stored under:
 *    http://data.githubarchive.org/2014-10-30-{0..23}.json.gz
 * which contain newline-separated JSON objects.





>
>



>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
/**
 * title: GitHubArchive releases poll
 * description: Fetch GitHub releases via BigQuery githubarchive:github.timeline
 * version: 0.4
 * category: rpc
 * api: cli
 * depends: config.local
 * doc: http://www.githubarchive.org/
 * github-url: https://github.com/igrigorik/githubarchive.org
 * type: cron
 * x-cron: 05 * * * *
 *
 * Queries githubarchive.org event blobs.
 * (Fetching via Google BigQuery too easily exceeded the quotas.)
 *
 * JSON blobs are stored under:
 *    http://data.githubarchive.org/2014-10-30-{0..23}.json.gz
 * which contain newline-separated JSON objects.

Changes to cron.daily/social_links.php.

1
2
3
4
5
6



7
8
9
10
11
12
13
<?php
/**
 * api: freshcode
 * title: Social links count
 * description: Queries api.i-o/links for project homepages
 * version: 0.1



 *
 * Retrieve social media sharing site links for project homepages.
 * Stores them in `release`.`social_links`
 *
 * Only updates latest DB entry, so a versioned history of link counts
 * will be retained. (Not that it's needed, ...)
 *


|



>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
/**
 * api: cli
 * title: Social links count
 * description: Queries api.i-o/links for project homepages
 * version: 0.1
 * category: rpc
 * type: cron
 * x-cron: 20 03 * * *
 *
 * Retrieve social media sharing site links for project homepages.
 * Stores them in `release`.`social_links`
 *
 * Only updates latest DB entry, so a versioned history of link counts
 * will be retained. (Not that it's needed, ...)
 *

Changes to cron.daily/spotlight.php.

1
2
3
4
5
6



7


8
9
10
11
12
13
14
<?php
/**
 * api: cron
 * title: Create random picks for project spotlight
 * description: Randomly picks out a few projects for the footer
 * version: 0.1



 *


 *
 */

chdir(dirname(__DIR__)); 
include("config.php");




|



>
>
>

>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
/**
 * api: cli
 * title: Create random picks for project spotlight
 * description: Randomly picks out a few projects for the footer
 * version: 0.1
 * category: template
 * type: cron
 * x-cron: 20 *\/6 * * *
 *
 * Picks three projects for display in footer as projects of the day.
 * (Actually renewed three times a day.)
 *
 */

chdir(dirname(__DIR__)); 
include("config.php");


39
40
41
42
43
44
45

   </a>

EOF;
}

// store as template
file_put_contents("./template/spotlight.htm", $html);








>
44
45
46
47
48
49
50
51
   </a>

EOF;
}

// store as template
file_put_contents("./template/spotlight.htm", $html);

Changes to cron.daily/tags.php.

1
2
3
4
5
6



7
8
9
10
11






12
13
14
15
16
17
18
<?php
/**
 * api: cron
 * title: Update `tags` table
 * description: Splits out tags from according column in project `release`.
 * version: 0.3



 *
 * Manually update tags table.
 *   - Splits up comma separated release.tags field
 *   - Maximum of 10 tags each
 *   - Populates separate tags table with name=>tag list.






 *
 */

chdir(dirname(__DIR__)); 
include("config.php");

/**


|



>
>
>





>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
/**
 * api: cli
 * title: Update `tags` table
 * description: Splits out tags from according column in project `release`.
 * version: 0.3
 * category: postprocessing
 * type: cron
 * x-cron: 10 *\/2 * * *
 *
 * Manually update tags table.
 *   - Splits up comma separated release.tags field
 *   - Maximum of 10 tags each
 *   - Populates separate tags table with name=>tag list.
 *
 * While this could be done in the release::update/::store handler,
 * it's not really urgent to have per-project tags mirrored there.
 * (Externalizing this avoids database load/locks.)
 *
 * Runs every 2 hours.
 *
 */

chdir(dirname(__DIR__)); 
include("config.php");

/**