Skip to content

Commit 35117f2

Browse files
committed
Code: Implement scanner
1 parent 2c30241 commit 35117f2

File tree

6 files changed

+426
-8
lines changed

6 files changed

+426
-8
lines changed

Main.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package org.duangsuse.telegramscanner;
22

3+
import org.duangsuse.telegramscanner.model.Message;
4+
import org.duangsuse.telegramscanner.scanner.Scanner;
35
import org.duangsuse.telegramscanner.scanner.Utf8LineInputStream;
46

57
import java.io.IOException;
68
import java.io.PrintStream;
9+
import java.util.Arrays;
10+
11+
import java.util.List;
712

813
/**
914
* Application main class
@@ -27,7 +32,7 @@ private Main() {}
2732
/**
2833
* Standard input
2934
*/
30-
private static PrintStream err = System.err;
35+
public static PrintStream err = System.err;
3136

3237
/**
3338
* Program entrance
@@ -36,7 +41,18 @@ private Main() {}
3641
*/
3742
public static void main(String... args) {
3843
err.print("TelegramScanner version "); err.println(VERSION);
44+
List<String> argList = Arrays.asList(args);
45+
46+
if (argList.contains("-test"))
47+
testInput();
48+
49+
for (Message<String> stringMessage : new Scanner(System.in)) {
50+
out.print(stringMessage.toString());
51+
}
52+
}
3953

54+
@SuppressWarnings("WeakerAccess")
55+
public static void testInput() {
4056
Utf8LineInputStream input = new Utf8LineInputStream(System.in);
4157
String line = "";
4258

helper/Strings.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.duangsuse.telegramscanner.helper;
22

3+
import org.jetbrains.annotations.Contract;
4+
35
/**
46
* String helper program
57
*/
@@ -11,8 +13,9 @@ public final class Strings {
1113
* @param str target string
1214
* @return if str.length greater than n, then sub-sequence str, else return str
1315
*/
16+
@Contract("_, null -> !null")
1417
public static String take(int n, String str) {
15-
if (n == 0 || str.length() == 0)
18+
if (str == null || n == 0 || str.length() == 0)
1619
return "";
1720

1821
if (str.length() > n)

model/Message.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.duangsuse.telegramscanner.model;
22

33
import org.duangsuse.telegramscanner.helper.Strings;
4+
import org.duangsuse.telegramscanner.sourcemanager.Identifiable;
45

56
import java.util.Collection;
67
import java.util.LinkedList;
@@ -17,7 +18,7 @@
1718
* <li>hashTags
1819
* </ul>
1920
*/
20-
public class Message<T> {
21+
public class Message<T> implements Identifiable {
2122
private MessageHeaderType headerType = MessageHeaderType.NORMAL;
2223
/**
2324
* Message header (name, publishedAt)
@@ -47,15 +48,21 @@ public class Message<T> {
4748
*/
4849
public Message() {}
4950

51+
public Message(MessageHead head, MessageHeaderType type, T extRef) {
52+
this.header = head;
53+
this.headerType = type;
54+
this.messageExtRef = extRef;
55+
}
56+
5057
@Override
5158
public String toString() {
5259
// count links and hashtags
5360
final StringBuilder desc = new StringBuilder();
54-
if (links.size() != 0) desc.append(links.size()).append(" links");
61+
if (links.size() != 0) desc.append(links.size()).append(" links, ");
5562
if (hashtags.size() != 0) desc.append(hashtags.size()).append(" tags");
5663

5764
final String fmt = "Message{Hd%s, Bd%s, ext=%s}[%s](%s..., %s)";
58-
return String.format(fmt, headerType, bodyType, messageExtRef.toString(), header, Strings.take(BODY_PREVIEW_LEN, messageBody), desc);
65+
return String.format(fmt, headerType, bodyType, messageExtRef.toString(), header.toString(), Strings.take(BODY_PREVIEW_LEN, messageBody), desc);
5966
}
6067

6168
@Override
@@ -87,6 +94,11 @@ public int hashCode() {
8794
return result;
8895
}
8996

97+
@Override
98+
public int getIdentity() {
99+
return System.identityHashCode(this);
100+
}
101+
90102
public MessageHeaderType getHeaderType() {
91103
return headerType;
92104
}

model/MessageHeaderType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public enum MessageHeaderType {
1212
/**
1313
* Reply to message
1414
*/
15-
RELPY,
15+
REPLY,
1616
/**
1717
* Forwarded message
1818
*/

0 commit comments

Comments
 (0)