Coder Social home page Coder Social logo

voqn / zerofixframework Goto Github PK

View Code? Open in Web Editor NEW
18.0 18.0 2.0 176 KB

ニコニコ動画ZEROバージョンへのユーザースクリプト作成を支援するフレームワーク的な何か

License: Other

CoffeeScript 28.26% Shell 2.10% JavaScript 69.65%

zerofixframework's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

gwin7ok

zerofixframework's Issues

無遷移な動画切り替えのサポート

ニコニコ動画ZeroのZeroWatchでは動画視聴ページにおいて、無遷移な動画切り替えが主となります。

そのため、現在のZeroFixFrameworkでは無遷移な動画切り替えに対応しておらず、
動画プレーヤー自体は遷移したにもかかわらずZeroFixFramwork上で動かしたコード部分のオブジェクトに関しては、
直前の動画のオブジェクトと変わらないまま残るバグがあります。

現在のところ、動画視聴ページにおいて無遷移な動画切り替えが起こる時は、今のところ下記の2つのみです。

  • 動画リンクをクリック
  • ブラウザの戻る/次へボタンのクリック

これらのイベント時に発生するイベントをフックするコードを下記に記述します。
下記のコードでは" window.zero_fix.refresh "に動画情報などのオブジェクトが更新され、run_fixを実行するコードを記述する必要があります。

# transition support
# you must add adapted code of "pushState loading" to "zero_fix.refresh"
watch_elements = window.document.querySelectorAll('.watch')
for element in watch_elements
  element.addEventListener('click', (event) -> window.zero_fix.refresh )
window.addEventListener('popstate', (event) -> window.zero_fix.refresh )

しかし、このコードではこれらのイベントをフックすることができますが、発生直後のため、
XHRリクエストなどが発生、完了しておらず、オリジナルな動画情報などのオブジェクトはまだ更新されていない可能性があります。

ライブラリへの単体テスト環境

今現在、 ZeroFixFramework の動作確認テストは、変更したその都度ユーザースクリプトへ生成させ、ブラウザにインストールしなおして初めて検証に入れる。

これでは効率が悪いので、ライブラリのメソッドで、特別 watch ページにアクセスしなければ検証できない、というものでない、ユーティリティを単体テストできるようにする

CoffeeScript コンパイル環境なしで利用できるようにする

このような開発方針を提案したい。もっとシンプルなやり方があれば賛成

開発フロー

  1. フレームワーク/ライブラリ/サンプル開発コードそのものは CoffeeScript で
  2. ライブラリへの単体テスト環境を v0.3 までに用意し、テスト環境が整備できた後はテスト通ること必須
  3. テストの通ったものは root/js/lib root/examples/js へ js コンパイルしてコミット

ユーザーへの手引き

フレームワーク利用者は以下の手順で自作スクリプトを生成する

  1. (使えるなら less, coffee) css,js で「こう変えたい」スタイリングのみを記述した my_zero.* を書く
  2. create_zero_fix.sh スクリプトを実行してユーザースクリプトを生成
  3. 自作するほどのモチベーションが無いユーザーは examples/js にあるユーザースクリプトを利用する

TODO

以上の為に必要なタスク (別の issue に切り分けておく)

  • オリジナルのスタイリングスクリプトの拡張子を判断してよしなにやってくれるシェルスクリプト ( bash 基準?)
  • 開発者側が使う、ライブラリ/サンプルを一括でコンパイルして配置するシェルスクリプト または Makefile

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.