トップページ⇒php
1002コメント237KB

【PHP】2chat開発スレ【2chを越える】 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2016/04/23(土) 13:45:28.79ID:???
【2chatとは】
掲示板とチャットを組み合わせたオープンソースのPHPスクリプトです。
名前の由来は2ch+chat

【特徴】
*基本的な面
ユーザー登録は必要だが、匿名
ユーザーは日付の経過や書き込み、荒らしなどでレベルが上下し、このレベルは通報の影響度などに関わる
管理人が不在でも通報が集まった書き込みは自動削除
チャット形式の為、書き込み上限はなく、テンプレはいつでも誰でも編集可能
板はなく、各スレッドはカテゴリを付けられる為、スレッドを探しやすい
単発スレには向かない

*専ブラ
jsを使い専ブラなしで快適に閲覧出来るUIを提供
WEBで見れるため、PC⇔スマホで開いているスレなどを完全同期できる

*API
誰でも使えるAPIを提供(jsonp対応)
2ch互換のAPIも提供
ユーザーはサブパスワードを作る事で、悪意を持った外部サービス管理人によるアカウントの乗っ取りを防ぐ事が出来る
開いているスレなども外部サービス間で同期可能
065212016/09/19(月) 11:07:52.96ID:???
原因は分かった…でも何故?
謎でしかない
065312016/09/19(月) 11:22:55.46ID:???
原因判明したから質問サイト行ってくる
0654nobodyさん2016/09/19(月) 14:23:01.82ID:???
teratailか?stackoverflowか?2chか・・
065512016/09/19(月) 14:25:33.39ID:???
teratail
https://teratail.com/questions/48511
065612016/09/19(月) 14:47:02.51ID:???
ListじゃなくてArrayなら大丈夫みたいなのでとりあえず代用します
065712016/09/19(月) 14:54:59.36ID:???
でも本当何故エラーになるんだろう
065812016/09/19(月) 14:57:27.83ID:???
あれっ出来ない
065912016/09/19(月) 15:00:23.57ID:???
謎
066012016/09/19(月) 15:18:55.33ID:???
List以外にも原因ありそう
066112016/09/19(月) 16:03:55.92ID:???
もうこれどうなってるか分からん
0662nobodyさん2016/09/19(月) 16:43:56.86ID:???
なんか面白そうなスレめっけたw
こういう系のスレでちゃんと進んでるっぽいのは珍しいなw
0663nobodyさん2016/09/19(月) 16:48:31.02ID:???
くるタイミングおっそいわww
>>1はそろそろモチベーション切れかけてまた、2,3か月の休息とるんじゃねぇか。
066412016/09/19(月) 16:50:34.98ID:???
既にモチベ死にかけている
やっとサーバーサイド終わったと思ったらTomcatが動かないとか悲しすぎる
066512016/09/19(月) 16:51:46.20ID:???
Tomcatが動けばクライアントサイド始められるのに
066612016/09/19(月) 16:53:27.56ID:???
適当にプロジェクト分割してみる
0667nobodyさん2016/09/19(月) 16:56:08.96ID:???
Scalaとか使うからだなwwユーザー少ないし。
短くかけるってことは、裏で前提として覚える事がいっぱいあるから短くかけるんでって、
そんなのすぐれた言語とは思わん。

何事もバランス。そこそこ短くかけて、前提となる覚える事も少なくてみんな理解しやすい。
これで十分だわ。
066812016/09/19(月) 16:56:41.87ID:???
>>667
twitterもscalaだからwebには強いはず
0669nobodyさん2016/09/19(月) 17:01:43.62ID:???
Webとはあんま関係ないな。
Scalaは言語とコレクションのクラスライブラリぐらい?独自に提供してるの?
Web部分はJavaのライブラリに依存してるだろ。
067012016/09/19(月) 17:03:25.18ID:???
>>669
コレクションは不変のが結構ある
0671nobodyさん2016/09/19(月) 17:19:14.16ID:???
なんだモチベ尽きかけてんのかw
趣味プロジェクトでモチベは最大の敵だからなw
067212016/09/19(月) 17:21:08.72ID:???
Tomcat9って評価版だったのか
これ多分Tomcatのバグだわ
Tomcat8にする
067312016/09/19(月) 17:21:48.66ID:???
そういう事だったか
067412016/09/19(月) 17:23:32.54ID:???
これで直らなかったら知らん
0675nobodyさん2016/09/19(月) 17:28:42.70ID:???
俺もそう思うときあるけど、最終的には自分のコードに問題あるから。
0676nobodyさん2016/09/19(月) 17:30:04.94ID:???
つか、コンストラクタに問題ありそうだったら、コンストラクタに
引数渡すのやめてみればいいじゃん。とりあえず、それで回避したら?]。
067712016/09/19(月) 17:31:11.55ID:???
>>675
俺も何回もそういう経験あるけど今回はバグ以外に見当たらない
特定の場面だけエラーとかあるん?

>>676
それならできた
0678nobodyさん2016/09/19(月) 17:37:00.87ID:???
ロクすっぽテストケースも書いてないプロジェクトとTomcatと
どっちが信頼性あると思ってんだよ。
067912016/09/19(月) 17:39:45.10ID:???
評価版ってバグが大量にあるバージョンではないの?
068012016/09/19(月) 17:44:11.59ID:???
動かないけどエラーメッセージがさっきと違う
これはヒントになりそう
068112016/09/19(月) 18:05:12.96ID:???
普段なら3時間あれば解決するのに何で2日経っても解決しないのか
068212016/09/19(月) 18:07:42.95ID:???
おっ
068312016/09/19(月) 18:10:22.69ID:???
scalaで似たようなエラーがstackoverflowにあったから確かめてみる
068412016/09/19(月) 18:14:09.10ID:???
キタ――(゚∀゚)――!!キタ――(゚∀゚)――!!キタ――(゚∀゚)――!!
やっと起動したーーーーーーーーーー
068512016/09/19(月) 18:15:26.62ID:???
WEB-INF/libにscala-library.jar入れたら出来たーーーーー
2日潰れたけどやっとクライアントサイド出来る
scalaでservletのページには載ってなかったけど英語のページに乗ってた
068612016/09/19(月) 18:16:55.86ID:???
よっしゃ
068712016/09/19(月) 18:17:02.44ID:???
疲れた
068812016/09/19(月) 18:20:17.58ID:???
Eclipseのjar追加で参照しても駄目とか聞いてない
手動コピー必須なのかよと
って事でサーバーサイドデパッグしながらクライアント進めていきます
068912016/09/19(月) 18:21:44.49ID:???
>>675
>>678
これがあってたorz
0690nobodyさん2016/09/19(月) 21:36:36.08ID:???
どう?Next2ch超えれそう?
069112016/09/19(月) 21:45:34.02ID:???
>>690
Next2chは名前は聞いた事あるけどどういう物かを知らない
とりあえずangular2覚える
0692nobodyさん2016/09/19(月) 21:48:58.73ID:sayZi2XP
>>690
super2ch.netじゃなくて?
069312016/09/20(火) 00:05:29.54ID:???
これ駄目だ
angular2難しすぎて意味が分からん
これ覚えていたら確実にモチベ死ぬ
とりあえずvueで作って見た方がいいかも
angular2使っていたら完成する気がしない
069412016/09/20(火) 00:07:07.99ID:???
vueの場合、scriptタグで読み込めば終わりだったけど、angularは色々しないといけないらしくて理解出来ない
TypeScript使いたかったけど
069512016/09/20(火) 00:10:54.96ID:???
日本語の解説が多いからvue.jsは本当楽
0696nobodyさん2016/09/20(火) 10:21:47.07ID:???
1年後も言語とフレームワークの選定やってそう
0697nobodyさん2016/09/20(火) 16:07:13.80ID:???
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015

Haxeプログラミング入門、尾野政樹、2015

Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、
JS, Flash, PHP, C++, Java, C#, Python に書き出せる。
Windows8.1対応

IDEは、FlashDevelop

このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/
069812016/09/20(火) 17:08:23.06ID:???
angular2昨日は初めてだったから意味分からなかったけど2日目になると少し分かってきた
流石に1日で投げるのは早かった
069912016/09/20(火) 17:08:54.17ID:???
とりあえずHelloWorldは出来た
070012016/09/20(火) 17:13:12.79ID:???
SPAだけど#〜使って画面切り替える
レス表示&書き込み、トピ検索&書き込み、トピ表示、通知、メッセージ、プロフィール表示、プロフィール管理を作る
残りのユーザー情報は別ページで作る
070112016/09/20(火) 17:15:49.87ID:???
もう少しまとめる
・レス表示・書き込み、トピ情報表示・書き換え
・トピ検索・トピ作成
・通知、メッセージ、プロフィール管理
・プロフィール表示
こんな感じ
0702nobodyさん2016/09/20(火) 17:55:25.31ID:???
spaの場合のグーグルのクローラの制御てどうなるんだろ?
070312016/09/20(火) 17:56:40.37ID:???
googleはjs実行すると聞いた
070412016/09/20(火) 17:59:00.99ID:???
それにしても情報少なすぎる
070512016/09/20(火) 22:06:52.26ID:???
Resコンポーネント作ってる
070612016/09/20(火) 22:50:21.77ID:???
DateパルプってISO-8601文字列使えるのか
070712016/09/21(水) 17:13:58.79ID:???
もう少し進んだら新しいリポジトリ作ります
070812016/09/21(水) 21:15:27.87ID:???
markdown大変そう
0709nobodyさん2016/09/21(水) 22:47:19.93ID:???
APIではちゃんとHTMLにして返してよね。
071012016/09/21(水) 22:54:05.33ID:???
>>709
なるべく鯖では処理しないよ
jsで沢山処理させる事で負荷減らせるし
071112016/09/21(水) 22:57:05.20ID:???
マークダウン生成とか重そうだし
0712nobodyさん2016/09/21(水) 23:06:37.64ID:???
>>709
HTMLで返すAPIとか糞すぎるわ
0713nobodyさん2016/09/21(水) 23:19:58.02ID:???
いやいや、
クライアント側でマークダウン処理させる方がいやだわ。

HTMLなら大抵のクライアントライブラリの方のDOMで「一貫して同じように」処理できるけど、

マークダウンだと方言みたいのあるだろ。
利用する言語によってサービスで利用するマークダウンのクライアントライブラリあんのか知らんけど、
なければ自分で作ってとかやってられんがな。
0714nobodyさん2016/09/21(水) 23:23:15.53ID:???
>>713
は>>712に対してね。
>なるべく鯖では処理しないよ
>jsで沢山処理させる事で負荷減らせるし
で付加へらしたい別の理由があるなら仕方ないけど。
071512016/09/21(水) 23:28:10.59ID:???
なるほど、そういう事か
確かに途中でmdの仕様変更したくなったときに表示崩れる可能性もあるな
ちょっと考えてみる
071612016/09/21(水) 23:28:45.80ID:???
今の所はmarked使ってるけど
0717nobodyさん2016/09/21(水) 23:29:11.80ID:???
でも、たいていのは2つ返すかもね。
この前あげたQiita APIも元のメッセージとマークダウンが展開されたHTMLの両方。
前触ったRedditAPIも今見返すと両方返すね。
071812016/09/21(水) 23:35:24.50ID:???
両方返すようにした方がいいか
ちょっと改造してみる

・レス
・トピのテンプレ
・プロフィール

これ以外はHTMLでエンコードしているけど
0719nobodyさん2016/09/21(水) 23:53:25.22ID:???
まぁ、両方返すのがAPIを使う側にとってはありがたいね。
072012016/09/21(水) 23:55:04.43ID:???
単純にHTMLをエスケープした奴も両方返すべき?
072112016/09/22(木) 00:00:43.85ID:???
ただjsで変換だとリアルタイムで確認しながら入力とか作りやすいけど、鯖で変換すると面倒な気もする
鯖直したらjsも修正必要だし
0722nobodyさん2016/09/22(木) 00:07:39.01ID:???
ん??
本来、HTMLを受け入れる部分(レス・トピのテンプレ・プロフィール)以外は、
API的にはノータッチでいいと思う。
本来クライアント側ではHTMLで表示するとは限らないから。
072312016/09/22(木) 00:10:24.00ID:???
つまりエスケープもする必要ないって事?
スレタイとか
0724nobodyさん2016/09/22(木) 00:13:44.26ID:???
うん。それはエスケープの処理が必要かはクライアント側つまりビューの都合だから、
それはクライアントに任せていいと思うけどね。
072512016/09/22(木) 00:16:31.25ID:???
ならエスケープ処理やめるか
072612016/09/22(木) 00:17:56.98ID:???
マークダウンはどうしよう
クライアントで処理しないとリアルタイムプレビューは難しいよな
リアルタイムプレビューの為に鯖にアクセスされたら鯖死にそうな気がするし
0727nobodyさん2016/09/22(木) 00:22:25.03ID:???
2chのAPIはほんとはた迷惑。
入力としてHTMLを受け入れないくせにAPIとして返すのに、
クライアント側がHTMLで表示すること前提?に勝手HTMLエスケープして返すわ
AndroidとかHTMLで表示しないクライアント開発するときは迷惑。
0728nobodyさん2016/09/22(木) 00:23:42.18ID:???
クライアント側でリアルタイムプレビューやる場合は、もうクライアント側でやるしかないでしょ。
0729nobodyさん2016/09/22(木) 00:24:24.20ID:d6OE8H1R
ちょっと表現おかしかった。
>リアルタイムプレビューやる場合は、もうクライアント側でやるしかないでしょ。
073012016/09/22(木) 00:41:53.99ID:???
マークダウンをやめると言う方法もある
今の2chの感じ見ているとそこまでいらなそうだし、簡単なタグだけ用意して
例えば
#aa
#aaend
とか
#code
#codeend
みたいな
073112016/09/22(木) 00:44:33.46ID:???
レスを毎回整形する人はいないだろうし、テンプレ、プロフィールも【見出し】とかでも何とかならないことはない
崩れると面倒なのってソースコードとAAくらい?
073212016/09/22(木) 00:54:20.35ID:???
とりあえず記法とかは後にして、今はHTMLエスケープだけしておく事にする
パイプの中身変えればすぐ修正出来るし
0733nobodyさん2016/09/22(木) 00:55:30.58ID:???
RedditもマークダウンでHTMLの入力受け付けるけど、結構凝って作る人もいるのは事実。
特にレスにマークダウン使うってより、サブミだか忘れたけど2chでいうボード?のトップページを
凝って色々やってるっぽいね。
まぁ、マークダウンで色々できるってのは2chに対してアドバンテージになると思うけど。
073412016/09/22(木) 01:01:45.98ID:???
そうなのか
カテゴリだけだとどこに作ればいいか迷いそうだからカテゴリの紹介ページ(板の説明みたいなの)作ろうと思っているが
レスはそこまで機能いらないかもな。。。
プロフィール・トピックテンプレ・カテゴリページはあった方がいいかもしれないけど
レスにマークダウンつけると鯖で処理するとしても、クライアントで処理するとしても重くなりそうだし
0735nobodyさん2016/09/22(木) 17:41:43.23ID:???
そもそもマークダウンの処理そんな重くねぇと思うけどな・・
そんな巨大なテキストを処理するわけでもないのに、たかだか(Twitterよりはユーザーは
タイピングするだろうが・・)平均300文字くらい?のレスだし。
もちろん、サーバー側でのちょっとした負荷も積もれば巨大になるけどさ。
073612016/09/22(木) 17:49:10.59ID:???
そもそもWEB系以外は想定していなかったんだよな
PCでもスマホでもWEB技術使ったアプリは作れるみたいだしそっちを使ってもらう方針だった
だからクライアントでmarked使って変換してもらおうと思っていたし…
0737nobodyさん2016/09/22(木) 17:58:30.45ID:???
じゃ、もうHTML返さなくていいんじゃね?返したくないなら。
クライアント側で処理してもらえばいいじゃん。
方言とかあるっていったけど、100%完璧に表示する必要ないし。
だいたいの記法は互換性あるからそれでいいと思う。
0738nobodyさん2016/09/22(木) 18:06:54.77ID:???
>PCでもスマホでもWEB技術使ったアプリは作れるみたいだしそっちを使ってもらう方針
それならそれでもいいんじゃね。君がブラウザ用の1つ作れば
後は移植簡単そうで君がPC,スマホへの移植全部できそうだし。
073912016/09/22(木) 18:07:49.61ID:???
昨日も書いたけど負荷の問題以外にも、クライアントでプレビュー機能を入れると鯖とクライアントでマークダウンパーサーを合わせないといけないと言う問題がある
それが一番の問題なんだけど、他のサービスはどう実装しているんだろう
そこがクリア出来れば鯖で処理してもいいんだけど
Node使うとかかな
074012016/09/22(木) 18:13:35.48ID:???
javaにjsエンジン内臓されているみたいだからそれで変換すれば何とかなるか
そこらへん調べてみる
0741nobodyさん2016/09/22(木) 18:13:53.59ID:???
理想ばっか言い過ぎた俺が悪かったな。
Redditの場合は見た感じ、そういうAPI用意してないし、プレビューする場合はクライアント側でやってると思う。
例えばReddiestってAndroidアプリはね。だから、完璧にサーバーのマークダウンと合わせてないと
思うし、100%完璧にはやってないと思う。
074212016/09/22(木) 18:16:39.55ID:???
俺もWEB以外の事全く考えていなかった
とりあえずNashornを使う方法を考えてみる
それなら、クライアントの変換スクリプトと、サーバーの変換スクリプト同じ物を使えるし
0743nobodyさん2016/09/22(木) 18:17:45.64ID:???
まぁ、リアルタイムプレビューはサーバーの負荷的にもクライアント側でやった方がいいと思うけど。
投稿する前に「プレビュー」ボタンを押してプレビューぐらいでいいなら、
サーバー側でAPIを用意してくれれば、クライアント側ではマークダウンの細かい詳細を
意識しなくなるので楽といえば楽。
074412016/09/22(木) 18:24:27.07ID:???
リアルタイムプレビューは結構便利だし、これは絶対つけたいと考えている
0745nobodyさん2016/09/22(木) 18:46:49.59ID:???
markdownを付けるならtableを表現出来るようにあって欲しいと思う
074612016/09/22(木) 18:48:32.61ID:???
確かmarkedは出来たような
074712016/09/22(木) 22:06:50.76ID:???
javaのエンジンES6の機能使えないのかよ
074812016/09/22(木) 22:08:57.76ID:???
Babelの出番か
074912016/09/22(木) 23:09:34.97ID:???
ES6以外の問題だった
変換出来た
075012016/09/22(木) 23:13:41.02ID:???
*マークダウンの仕様

ここからDL
https://raw.githubusercontent.com/chjj/marked/master/marked.min.js

これでXSS対策
marked.setOptions({sanitize:true});

変換
var hoge=marked("変換したい文字列");
075112016/09/22(木) 23:19:20.74ID:???
mdtext要素に変換語のhtml突っ込む事にする
■ このスレッドは過去ログ倉庫に格納されています