Skip to content

Commit

Permalink
Merge pull request #33 from shortintern2020-A-labyrinth/feature/thyme…
Browse files Browse the repository at this point in the history
…leaf_request

Feature/thymeleaf request
  • Loading branch information
nawta authored Aug 26, 2020
2 parents fa3fdb6 + 6344587 commit d03f25d
Show file tree
Hide file tree
Showing 10 changed files with 277 additions and 45 deletions.
3 changes: 2 additions & 1 deletion demo.iml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
<orderEntry type="library" name="twitter4j-core-4.0.7" level="project" />
<orderEntry type="library" name="twitter4j-examples-4.0.7" level="project" />
<orderEntry type="library" name="twitter4j-stream-4.0.7" level="project" />
<orderEntry type="library" name="Maven: com.vdurmont:emoji-java:4.0.0" level="project" />
<orderEntry type="library" name="Maven: org.json:json:20170516" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-thymeleaf:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.3.2.RELEASE" level="project" />
Expand Down Expand Up @@ -177,6 +179,5 @@
<orderEntry type="library" name="Maven: org.seasar.doma:doma:2.18.0" level="project" />
<orderEntry type="library" name="Maven: com.vdurmont:emoji-java:4.0.0" level="project" />
<orderEntry type="library" name="Maven: org.json:json:20170516" level="project" />

</component>
</module>
14 changes: 12 additions & 2 deletions docker/pg/1-createTable.sql
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,16 @@ insert into users(name, mail, filterlevel) values
('pinapple.chocomint', '[email protected]', 3)
;

insert into emolog(userid, friendid, name, latestemolog)
values (1, 2, 'hoge', 'emojihoge')
insert into friend(userid, friendid, name, latestemolog) values
(1, 2, 'hoge', 'emojihoge'),
(2, 1, 'Trump', ':smile:'),
(1, 3, 'kim jyoung-un', ':sad:')
;

insert into emolog(userid, friendid, create_at, contents) values
(1, 2, current_timestamp, ':mountain:'),
(2, 1, current_timestamp, ':hotel:'),
(1, 3, current_timestamp, ':gorilla:'),
(3, 1, current_timestamp, ':space:')
;

74 changes: 74 additions & 0 deletions src/main/java/com/example/demo/controller/HtmlController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package com.example.demo.controller;

import com.vdurmont.emoji.EmojiManager;
import org.springframework.ui.ModelMap;
import com.vdurmont.emoji.EmojiParser;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import twitter4j.TwitterException;

import java.util.ArrayList;
import java.util.List;


@Controller
@RequestMapping(path = "/")
public class HtmlController {
@RequestMapping(path = "/", method = RequestMethod.GET)
public String index() {
return "index";
}

@RequestMapping(path = "/enter", method = RequestMethod.GET)
public String crawling(
ModelMap modelMap
) throws Exception {

List<String> keyword_tweets = new ArrayList<String>();
List<String> keyword_images = new ArrayList<String>();

keyword_tweets = ViewController.get_NLU_keywords("CNN", 100000);
keyword_images = ViewController.get_image_keywords("CNN", 100000);

List<String> emojiList = new ArrayList<String>();

// TODO: ここでDBアクセスかなんかlook upする??。->つかささんのやつくっつける。

// 文字列整形の方(テキトーに::をつける方)
for( String keyword : keyword_tweets){
try{
String tmp = EmojiParser.parseToHtmlDecimal(":" + keyword + ":");
emojiList.add(tmp);
}
catch (NullPointerException ignored){}
}

for( String keyword : keyword_images){
try{
String tmp = EmojiParser.parseToHtmlDecimal(":" + keyword + ":");
emojiList.add(tmp);
}
catch (NullPointerException ignored){}
}

// で、:hoge:みたいなんが得られたらEmologにパースして、それをaddAttributeする.->データがdbに入っていないとThymeleaf側で取り出せん模様。
// modelMap.addAttribute("emologs", emojiList);


// emojiList : ["&#128515", "&#128515", "&#128515"] みたいな感じ。
// emojiListから一つの文字列に直す。
String emolog = String.join("", emojiList);


//TODO: ここで得られたemologをdbに登録する処理…
// emolog(userid, friendid, create_at, contents)
// userid = 1, friendid = 2, create_at = TIMESTAMP??, contents = emolog





return "friendlist";
}
}
46 changes: 43 additions & 3 deletions src/main/java/com/example/demo/controller/ViewController.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public class ViewController {
@Autowired
JdbcTemplate jdbcTemplate;


@RequestMapping(path = "/users", method = RequestMethod.GET)
public String index() {
List<Map<String, Object>> list;
Expand Down Expand Up @@ -94,7 +95,7 @@ public List<String> collect_image_keywords_from_tweets(

// コントローラは関数として呼び出すのはキツイっぽいのでとりま関数として取り出してる。。
//TODO: TwitterControllerやNLUControllerから共通部分を分離して別クラスとして保持。
private QueryResult search_user(String username, long tweet_id) throws TwitterException {
private static QueryResult search_user(String username, long tweet_id) throws TwitterException {
// 初期化
Twitter twitter = new TwitterFactory().getInstance();
Query query = new Query();
Expand All @@ -106,7 +107,7 @@ private QueryResult search_user(String username, long tweet_id) throws TwitterEx
return twitter.search(query);
}

private String NLU(String text) {
private static String NLU(String text) {
IamAuthenticator authenticator = new IamAuthenticator("fVfaYMA7tCh4zInWBhTBb5t69xQryK7ObKl42nampynG");
NaturalLanguageUnderstanding naturalLanguageUnderstanding = new NaturalLanguageUnderstanding("2019-07-12", authenticator);
naturalLanguageUnderstanding.setServiceUrl("https://api.jp-tok.natural-language-understanding.watson.cloud.ibm.com/instances/ac3df365-93f6-4255-beb8-620d66041251");
Expand Down Expand Up @@ -140,7 +141,7 @@ private String NLU(String text) {
}


private String ImageProcessing(String url) throws FileNotFoundException {
private static String ImageProcessing(String url) throws FileNotFoundException {

IamAuthenticator authenticator = new IamAuthenticator("8nwN0eKp7eZ73So4DLdPndp_yv-vtlI27pN1wK2TjVg1");
VisualRecognition visualRecognition = new VisualRecognition("2019-07-12", authenticator);
Expand All @@ -161,4 +162,43 @@ private String ImageProcessing(String url) throws FileNotFoundException {

}

//関数もおいちゃえ
public static List<String> get_NLU_keywords(String username, long tweet_id) throws TwitterException {
QueryResult result = search_user(username, tweet_id);
ArrayList<String> NLU_results = new ArrayList<>();

for (Status status : result.getTweets()) {
String tmp = NLU(status.getText());
if(tmp != null) {
// System.out.println(tmp);
NLU_results.add(tmp);
}
}

return NLU_results;
//TODO: 整形する必要あるかも?
}


public static List<String> get_image_keywords(String username, long tweet_id) throws Exception {
QueryResult result = search_user(username, tweet_id);
ArrayList<String> imageprocessing_results = new ArrayList<>();

for (Status status : result.getTweets()) {
if(status.getMediaEntities().length > 0) {
// System.out.println(status.getMediaEntities()[0].getMediaURL());

String tmp = ImageProcessing(status.getMediaEntities()[0].getMediaURL());
if (tmp != null) {
// System.out.println(tmp);
imageprocessing_results.add(tmp);
}
}
}

return imageprocessing_results;
// ["call center", "people", "newsreader"]みたいなんがくる。

}

}
76 changes: 65 additions & 11 deletions src/main/resources/static/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,39 @@ a:hover {
height: 100%;
background-color: #fffacd;
}

.global-nav {
height: 10%;
width: 100%;

width: 960px;
margin: 0 auto;
position: fixed;
bottom: 0;
}

.global-nav li{
background-color: #f0f8ff;
width: 33%;
float: left;
margin: 5px 1px;
text-align: center;
font-size: 20px;
list-style: none;
font-family: 'Bitter',serif;
}

.global-nav li a{
padding: 5px 5%;
}


.global-nav li a:hover{
border-bottom: 2px solid;
padding-bottom: 3px;
text-decoration: none;
}

/* chat.html 部分*/

.friend-name {
Expand All @@ -81,11 +114,11 @@ ul.header_ul{
width: 100%;
}
ul.header_ul li{
display: inline-block;
vertical-align:middle;
margin: 0;
padding: 0;
width: 45%;
display: inline-block;
vertical-align:middle;
margin: 0;
padding: 0;
width: 45%;
}

.emolog {
Expand All @@ -109,16 +142,16 @@ ul.header_ul li{
}

.emolog_ul {
width: 100%;
width: 100%;

}

.emolog_ul li {
text-align: center;
display: inline-block;
vertical-align:middle;
margin: 0;
padding: 0;
text-align: center;
display: inline-block;
vertical-align:middle;
margin: 0;
padding: 0;
}
.emolog_ul li.emolog-date-cover {
vertical-align:top;
Expand All @@ -144,3 +177,24 @@ ul.header_ul li{
font-size: 20px;
font-family: 'Bitter',serif;
}

/* emologlist.html*/
.emolog-list {
height: 90%;
background-color: #f5f5f5;
overflow: auto;
}
.emolog-list li {
border-bottom: solid 1px #000000;
list-style: none;
text-align: center;
}
.emolog-date {
float: left;
text-align: left;
margin: 5px 5px 0 0;
font-size: 18px;
font-family: 'Bitter',serif;
}

/* emologlist.html 終わり*/
2 changes: 1 addition & 1 deletion src/main/resources/templates/chat.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<div class="header">
<ul class="header_ul">
<li>
<a href="emologlist.html"> <img th:src="@{../static/images/arrow_left_24.png}" alt="backbutton"></a>
<a href="emologlist.html"> <img th:src="@{/images/arrow_left_24.png}" alt="backbutton"></a>
</li>
<li>
<div class="friend-name">
Expand Down
39 changes: 12 additions & 27 deletions src/main/resources/templates/emologlist.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,33 +22,18 @@
<div class="emolog-list">

<!-- 本当はjava でデータを取ってきてすべて表示 例を書く-->
<ul>
<li><a href="chat.html">
<p class="emolog-date">8月18日<p>
<!--相手のエモログの表示-->
<p class="emoji">&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;</p>
<img src="../static/images/arrow.png" alt="emolog_arrow">
</a>
</li>
<li>
<p class="emolog-date">8月17日<p>
<!--相手のエモログの表示-->
<p class="emoji">&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;</p>
<img src="../static/images/arrow.png" alt="emolog_arrow">
</li>
<li>
<p class="emolog-date">8月16日<p>
<!--相手のエモログの表示-->
<p class="emoji">&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;</p>
<img src="../static/images/arrow.png" alt="emolog_arrow">
</li>
<li>
<p class="emolog-date">8月15日<p>
<!--相手のエモログの表示-->
<p class="emoji">&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;&#x1f349;</p>
<img src="../static/images/arrow.png" alt="emolog_arrow">
</li>
</ul>
<ul th:each = "emolog : ${emologs}">
<!-- <div th:object="${emolog}">-->
<!-- <p class="emolog-date" th:text="*{create_at}"></p>-->
<p class="emolog-date" th:text="${emolog}"></p>
<a href="chat.html">
<!--相手のエモログの表示-->
<!-- <div class="emoji" ><p th:utext = "*{contents}"></p></div>-->
<div class="emoji" ><p th:utext = "*{emolog}"></p></div>
<img src="../static/images/arrow.png" alt="emolog_arrow">
</a>
</div>
</ul>
</div>

<!-- ナビゲーションバーを表示-->
Expand Down
Loading

0 comments on commit d03f25d

Please sign in to comment.