Skip to content

Commit

Permalink
added support for Bangumi
Browse files Browse the repository at this point in the history
  • Loading branch information
zqzten committed Jan 15, 2018
1 parent 7ec9692 commit f581406
Show file tree
Hide file tree
Showing 6 changed files with 191 additions and 13 deletions.
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Alfred search suggest workflow for various popular websites. Inspired by the off
* [Sina Weibo (新浪微博)](#sina-weibo)
* [Taobao (淘宝)](#taobao)
* [JoyBuy (京东)](#joybuy)
* [Bangumi (番组计划)](#bangumi)
* [Moegirlpedia (萌娘百科)](#moegirlpedia)

## Details
Expand All @@ -28,7 +29,7 @@ Support basic suggestions. Proxy settings are available in the workflow environm

### Wikipedia

Support direct term suggestions and preview, language can be specified in the first arg. Proxy settings are available in the workflow environment variables.
Support direct term suggestions and preview, language can be specified with [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) code in the first arg. Proxy settings are available in the workflow environment variables.

![wikipedia-en](screenshots/wikipedia-en.png)

Expand Down Expand Up @@ -82,6 +83,16 @@ Support basic suggestions.

![joybuy](screenshots/joybuy.png)

### Bangumi

Support direct term suggestions and preview, type can be specified in the first arg.

注:共支持 6 种条目类型的搜索,分别为全部(all)、动画(anime)、书籍(book)、音乐(music)、游戏(game)、三次元(real);对于每一条搜索结果,副标题默认显示该条目的类型(如果当前搜索类型为全部)和中文名称(若有),按 ⌘ 可显示其简介(若有),按 ⌃ 可显示其排名与评分(若有)。

![bangumi-all](screenshots/bangumi-all.png)

![bangumi-anime](screenshots/bangumi-anime.png)

### Moegirlpedia

Support direct term suggestions and preview.
Expand Down
Binary file added screenshots/bangumi-all.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/bangumi-anime.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/7C5A1AA4-8766-42A7-ADC5-6B91963B3CD9.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
72 changes: 72 additions & 0 deletions src/bangumi.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<?php
use Alfred\Workflows\Workflow;

require_once('vendor/joetannenbaum/alfred-workflow/Workflow.php');
require_once('vendor/joetannenbaum/alfred-workflow/Result.php');
require_once('util/request.php');
require_once('util/download.php');

const ICON = '7C5A1AA4-8766-42A7-ADC5-6B91963B3CD9.png';

$wf = new Workflow;

$download_dir = getenv('alfred_workflow_cache').'/bangumi';
initDownloadDir(true);

if (strpos($query, ' ') !== false) {
$parts = explode(' ', $query);
$type = array_shift($parts);
$query = implode(' ', $parts);

$typeIdDict = array(
'all' => 0,
'book' => 1,
'anime' => 2,
'music' => 3,
'game' => 4,
'real' => 6
);
$typeId = $typeIdDict[$type];

$response = request('https://api.bgm.tv/search/subject/'.urlencode($query)."?responseGroup=large&type=$typeId");
$json = json_decode($response);
$results = $json->list;

$typeNameDict = array(
0 => '全部',
1 => '书籍',
2 => '动画',
3 => '音乐',
4 => '游戏',
6 => '三次元'
);

if ($results) {
foreach ($results as $sugg) {
$name = $sugg->name;
$nameCN = $sugg->name_cn;
$url = $sugg->url;
$rank = $sugg->rank;
$score = $sugg->rating->score;
$wf->result()
->title($name)
->subtitle(($type === 'all' ? ''.$typeNameDict[$sugg->type].'' : '').$nameCN)
->arg($url)
->icon(saveAndReturnFile($sugg->images->small))
->autocomplete($name)
->cmd(str_replace("\r\n", '', $sugg->summary), $url)
->ctrl(($rank === 0 ? '' : "Rank: $rank ").($score === 0 ? '' : "Score: $score"), $url)
->copy($name)
->quicklookurl($url);
}
}

$wf->result()
->title("Search 番组计划 for '$query'")
->subtitle($typeNameDict[$typeId].'条目')
->arg('http://bgm.tv/subject_search/'.urlencode($query)."?cat=$typeId")
->icon(ICON)
->copy($query);
}

echo $wf->output();
119 changes: 107 additions & 12 deletions src/info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,19 @@
<false/>
</dict>
</array>
<key>7C5A1AA4-8766-42A7-ADC5-6B91963B3CD9</key>
<array>
<dict>
<key>destinationuid</key>
<string>A8AA5019-512C-4773-83FC-35FEA14DD158</string>
<key>modifiers</key>
<integer>0</integer>
<key>modifiersubtext</key>
<string></string>
<key>vitoclose</key>
<false/>
</dict>
</array>
<key>80FCED49-07AA-4C15-9B49-24A52B3AF5D6</key>
<array>
<dict>
Expand Down Expand Up @@ -707,7 +720,7 @@ require_once('sinaweibo.php');</string>
<key>spaces</key>
<string></string>
<key>url</key>
<string>http://s.weibo.com/weibo/{query}</string>
<string>https://s.weibo.com/weibo/{query}</string>
<key>utf8</key>
<true/>
</dict>
Expand All @@ -718,6 +731,25 @@ require_once('sinaweibo.php');</string>
<key>version</key>
<integer>1</integer>
</dict>
<dict>
<key>config</key>
<dict>
<key>browser</key>
<string></string>
<key>spaces</key>
<string></string>
<key>url</key>
<string>https://s.taobao.com/search?q={query}</string>
<key>utf8</key>
<true/>
</dict>
<key>type</key>
<string>alfred.workflow.action.openurl</string>
<key>uid</key>
<string>89D407F2-9C8D-403B-9503-AE755F3474B2</string>
<key>version</key>
<integer>1</integer>
</dict>
<dict>
<key>config</key>
<dict>
Expand Down Expand Up @@ -775,17 +807,66 @@ require_once('taobao.php');</string>
<key>spaces</key>
<string></string>
<key>url</key>
<string>https://s.taobao.com/search?q={query}</string>
<string>https://search.jd.com/Search?enc=utf-8&amp;keyword={query}</string>
<key>utf8</key>
<true/>
</dict>
<key>type</key>
<string>alfred.workflow.action.openurl</string>
<key>uid</key>
<string>89D407F2-9C8D-403B-9503-AE755F3474B2</string>
<string>A76FF79E-3778-4855-93AA-20969F1A152A</string>
<key>version</key>
<integer>1</integer>
</dict>
<dict>
<key>config</key>
<dict>
<key>alfredfiltersresults</key>
<false/>
<key>alfredfiltersresultsmatchmode</key>
<integer>0</integer>
<key>argumenttrimmode</key>
<integer>0</integer>
<key>argumenttype</key>
<integer>0</integer>
<key>escaping</key>
<integer>36</integer>
<key>keyword</key>
<string>jd</string>
<key>queuedelaycustom</key>
<integer>3</integer>
<key>queuedelayimmediatelyinitially</key>
<false/>
<key>queuedelaymode</key>
<integer>0</integer>
<key>queuemode</key>
<integer>2</integer>
<key>runningsubtext</key>
<string>Retrieving search suggestions ...</string>
<key>script</key>
<string>$query = "{query}";
require_once('joybuy.php');</string>
<key>scriptargtype</key>
<integer>0</integer>
<key>scriptfile</key>
<string></string>
<key>subtext</key>
<string>Search 京东 with Suggestions</string>
<key>title</key>
<string>Search 京东</string>
<key>type</key>
<integer>1</integer>
<key>withspace</key>
<true/>
</dict>
<key>type</key>
<string>alfred.workflow.input.scriptfilter</string>
<key>uid</key>
<string>B1C4E5F1-FE5D-4505-9AD6-3F12A4F4ACC8</string>
<key>version</key>
<integer>2</integer>
</dict>
<dict>
<key>config</key>
<dict>
Expand All @@ -794,14 +875,14 @@ require_once('taobao.php');</string>
<key>spaces</key>
<string></string>
<key>url</key>
<string>https://search.jd.com/Search?enc=utf-8&amp;keyword={query}</string>
<string>{query}</string>
<key>utf8</key>
<true/>
</dict>
<key>type</key>
<string>alfred.workflow.action.openurl</string>
<key>uid</key>
<string>A76FF79E-3778-4855-93AA-20969F1A152A</string>
<string>A8AA5019-512C-4773-83FC-35FEA14DD158</string>
<key>version</key>
<integer>1</integer>
</dict>
Expand All @@ -819,7 +900,7 @@ require_once('taobao.php');</string>
<key>escaping</key>
<integer>36</integer>
<key>keyword</key>
<string>jd</string>
<string>bgm</string>
<key>queuedelaycustom</key>
<integer>3</integer>
<key>queuedelayimmediatelyinitially</key>
Expand All @@ -833,15 +914,15 @@ require_once('taobao.php');</string>
<key>script</key>
<string>$query = "{query}";
require_once('joybuy.php');</string>
require_once('bangumi.php');</string>
<key>scriptargtype</key>
<integer>0</integer>
<key>scriptfile</key>
<string></string>
<key>subtext</key>
<string>Search 京东 with Suggestions</string>
<string>Search 番组计划 with Suggestions</string>
<key>title</key>
<string>Search 京东</string>
<string>Search 番组计划</string>
<key>type</key>
<integer>1</integer>
<key>withspace</key>
Expand All @@ -850,7 +931,7 @@ require_once('joybuy.php');</string>
<key>type</key>
<string>alfred.workflow.input.scriptfilter</string>
<key>uid</key>
<string>B1C4E5F1-FE5D-4505-9AD6-3F12A4F4ACC8</string>
<string>7C5A1AA4-8766-42A7-ADC5-6B91963B3CD9</string>
<key>version</key>
<integer>2</integer>
</dict>
Expand Down Expand Up @@ -984,6 +1065,13 @@ require_once('moegirlpedia.php');</string>
<integer>590</integer>
</dict>
<key>7999A242-8DB6-41F9-BAD7-78C3E4CC0C41</key>
<dict>
<key>xpos</key>
<integer>50</integer>
<key>ypos</key>
<integer>1570</integer>
</dict>
<key>7C5A1AA4-8766-42A7-ADC5-6B91963B3CD9</key>
<dict>
<key>xpos</key>
<integer>50</integer>
Expand Down Expand Up @@ -1032,6 +1120,13 @@ require_once('moegirlpedia.php');</string>
<key>ypos</key>
<integer>1290</integer>
</dict>
<key>A8AA5019-512C-4773-83FC-35FEA14DD158</key>
<dict>
<key>xpos</key>
<integer>270</integer>
<key>ypos</key>
<integer>1430</integer>
</dict>
<key>AE15F1F6-37B0-4A47-BEE1-975354A81227</key>
<dict>
<key>xpos</key>
Expand Down Expand Up @@ -1079,7 +1174,7 @@ require_once('moegirlpedia.php');</string>
<key>xpos</key>
<integer>270</integer>
<key>ypos</key>
<integer>1430</integer>
<integer>1570</integer>
</dict>
</dict>
<key>variables</key>
Expand All @@ -1098,7 +1193,7 @@ require_once('moegirlpedia.php');</string>
<string>proxy_address</string>
</array>
<key>version</key>
<string>1.6</string>
<string>1.7</string>
<key>webaddress</key>
<string>https://github.com/AkikoZ/alfred-web-search-suggest</string>
</dict>
Expand Down

0 comments on commit f581406

Please sign in to comment.