Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
re-fort committed Mar 17, 2016
0 parents commit 16d3ec1
Show file tree
Hide file tree
Showing 19 changed files with 30,391 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/gist
/node_modules
/release
/renderer/casts.json
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
![Code Climate](https://codeclimate.com/github/re-fort/TV-kko)
![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)

TV-kko
======================

登録したタレントから出演番組を一括検索できます。

詳細リンクから[CHAN-TORU](https://tv.so-net.ne.jp/chan-toru/)にて番組を録画することも可能です。

## デモ
![screenshot](https://raw.githubusercontent.com/re-fort/TV-kko/master/demo/TV-kko.gif)

## ダウンロード
[Release](https://github.com/re-fort/TV-kko/releases)

## 動作確認
* OSX El Capitan 10.11.2
* Windows7 32/64bit
Binary file added assets/fonts/mplus-1p-regular.ttf
Binary file not shown.
Binary file added assets/fonts/photon-entypo.ttf
Binary file not shown.
Binary file added assets/img/no_name.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 assets/img/tv-kko.icns
Binary file not shown.
Binary file added assets/img/tv-kko.ico
Binary file not shown.
18 changes: 18 additions & 0 deletions assets/img/tv-kko.svg
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 demo/TV-kko.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 38 additions & 0 deletions main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
"use strict";

const app = require('electron').app;
const path = app.getAppPath();
const BrowserWindow = require('electron').BrowserWindow;
const ipcMain = require('electron').ipcMain;
const cheerio = require('./renderer/store/cheerio');
const file = require('./renderer/store/file');

require("crash-reporter").start();

var mainWindow = null;

app.on("window-all-closed", function() {
app.quit();
});

app.on("ready", function() {

mainWindow = new BrowserWindow({ width: 1100, height: 1000, minWidth: 410 });
mainWindow.loadURL("file://" + __dirname + "/renderer/app.html");

mainWindow.on("closed", function() {
mainWindow = null;
});
});

ipcMain.on('async-downloadCastsFile', function(event){
file.downloadCastsFile(event, path);
});

ipcMain.on('async-fetchImage', function(event, args){
cheerio.fetchImage(event, args.name, args.imgDir);
});

ipcMain.on('async-fetchProgramList', function(event, args){
cheerio.fetchProgramList(event, args.area, args.name, args.platformId, args.index);
});
21 changes: 21 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "TV-kko",
"version": "0.1.0",
"description": "Search TV programs by the casts",
"main": "main.js",
"scripts": {
"start": "electron ." ,
"release:osx": "electron-packager . TV-kko --out=release --platform=darwin --arch=x64 --version=0.36.4 --overwrite --icon=assets/img/tv-kko.icns --ignore=gist --ignore=release --ignore=demo --ignore=README.md",
"release:win": "electron-packager . TV-kko --out=release --platform=win32 --arch=all --version=0.36.4 --overwrite --icon=assets/img/tv-kko.ico --ignore=gist --ignore=release --ignore=demo --ignore=README.md --version-string.OriginalFilename=\"TV-kko.exe\" --version-string.FileVersion=\"0.1.0\" --version-string.ProductVersion=\"0.1.0\" --version-string.ProductName=\"TV-kko\""
},
"author": "re-fort",
"license": "MIT",
"repository": "https://github.com/re-fort/TV-kko",
"bug": "https://github.com/re-fort/TV-kko/issues",
"dependencies": {
"cheerio-httpcli": "^0.6.5",
"request": "^2.69.0",
"vue": "^1.0.17"
},
"devDependencies": {}
}
183 changes: 183 additions & 0 deletions renderer/app.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
<!doctype html>
<html lang="jp">
<head>
<meta charset="UTF-8"/>
<title>TV-kko</title>
<link href="./stylesheets/app.css" rel="stylesheet" type="text/css" />
<link href="./stylesheets/animation.css" rel="stylesheet" type="text/css" />
</head>
<body>
<!-- App -->
<div id="app">
<!-- Container -->
<div class="container">
<!-- Header -->
<header class="header">
<div class="logo">
<div class="tvkko-svg"></div>
<h2 class="heading">TV-kko</h2>
<span class="icon icon-switch" @click="toggleMenuDisplay()" />
</div>
</header>

<!-- Nav -->
<nav class="menu">
<ul class="list-group">
<li class="list-group-header">
<input class="form-control form-search" type="text" placeholder="タレント登録" v-model="query">
<button class="pull-right search-button" @click="fetchImage()">
<span class="icon icon-user"></span>
追加
</button>
</li>
<div class="image--loading" style="display: none;">
<div></div>
<div></div>
</div>
<template v-if="query">
<ul class="list-scroll" transition="staggered" stagger="10">
<li v-for="cast in casts | filterBy query" class="list-group-item" @click="setInput(cast.name), fetchImage()">
{{ cast.name }}
</li>
</ul>
</template>
</ul>
<ul class="list-group list-scroll">
<template v-if="!query">
<li id="cAll"
class="list-group-item"
:class="-1 == activeIndex ? 'active' : ''"
@click="addActiveClass(-1, ''), fetchProgramList()">
<img class="img-circle media-object pull-left" src="../assets/img/no_name.png" width="48" height="48" />
<div class="media-body">
<strong>すべて</strong>
</div>
</li>
<li v-for="myCast in myCasts"
id="c{{$index}}"
class="list-group-item"
:class="$index == activeIndex ? 'active' : ''"
@click="addActiveClass($index, myCast.name), fetchProgramList()">
<img class="img-circle media-object pull-left" :src="myCast.imgPath" width="48" height="48" />
<div class="media-body">
<strong>{{ myCast.name }}</strong>
<span class="pull-right icon icon-cancel-circled" @click="setName(myCast.name), removeMyCast();"></span>
</div>
</li>
</template>
</ul>
<ul class="list-group">
<li class="list-group-header list-cog">
<template v-if="!query">
<button id="show-modal" @click="showModal=true"
<span class="icon icon-cog" />
</button>
</template>
</li>
</ul>
</nav>

<!-- Content -->
<div class="content">
<div class="content--loading" style="display: none;">
<div></div>
<div></div>
</div>
<div class="program-list">
<template v-if="renderable === true">
<div class="program" v-for="program in programs">
<div class="program-info">
<span class="icon icon-calendar">{{ program.date }}</span>
<h3 class="program-title">{{ program.title }}</h3>
<span class="program-channel">{{ program.channel }}</span>
<a :href="program.url" target="_blank">
<button class="detail detail-button">
<span class="icon icon-level-down">詳細</span>
</button>
</a>
<span>
<img v-for="imgPath in program.imgPaths" class="img-circle media-object pull-left" width="32" height="32" :src="imgPath ? imgPath : ''">
</span>
</div>
</div>
</template>
</div>
</div>

<!-- Modal -->
<modal :show.sync="showModal">
<h3 slot="header">設定</h3>
<div slot="body">
<ul class="list-group modal-list-cog">
<li>
<label>地域</label>
</li>
<li>
<select v-model="myArea" class="form-control" @change="setLocalStorage()">
<option v-for="prefecture in prefectures" :value="prefecture.value">
{{ prefecture.name }}
</option>
</select>
</li>
</ul>
<ul class="list-group modal-list-cog">
<li>
<label>放送波</label>
</li>
<li>
<input type="radio" name="stationPlatformIds" value="1" v-model="myPlatformId" @change="setLocalStorage()">
地上波
</input>
</li>
<li>
<input type="radio" name="stationPlatformIds" value="2" v-model="myPlatformId" @change="setLocalStorage()">
BSデジタル
</input>
</li>
<li>
<input type="radio" name="stationPlatformIds" value="5" v-model="myPlatformId" @change="setLocalStorage()">
スカパー!
</input>
</li>
<li>
<input type="radio" name="stationPlatformIds" value="4" v-model="myPlatformId" @change="setLocalStorage()">
スカパー!プレミアサービス
</input>
</li>
</ul>
</div>
</modal>
</div>
</div>

<!-- Modal-template -->
<script type="x/template" id="modal-template">
<div class="modal-mask" v-show="show" transition="modal">
<div class="modal-wrapper">
<div class="modal-container">

<div class="modal-header">
<slot name="header">
default header
</slot>
</div>

<div class="modal-body">
<slot name="body">
default body
</slot>
</div>

<div class="modal-footer">
<button class="modal-close-button" @click="show=false">
閉じる
</button>
</div>
</div>
</div>
</div>
</script>
<script src="./app.js"></script>
</body>

</html>
Loading

0 comments on commit 16d3ec1

Please sign in to comment.