From 4b5efd41a31988d61edcc501653239a2d22d2543 Mon Sep 17 00:00:00 2001 From: Amirah Oxendine Date: Wed, 18 Oct 2017 13:21:24 -0400 Subject: [PATCH 1/8] changed channel id --- src/nyc/c4q/ramonaharrison/Main.java | 3 ++- src/nyc/c4q/ramonaharrison/network/Slack.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/nyc/c4q/ramonaharrison/Main.java b/src/nyc/c4q/ramonaharrison/Main.java index 933e92b..31387b6 100644 --- a/src/nyc/c4q/ramonaharrison/Main.java +++ b/src/nyc/c4q/ramonaharrison/Main.java @@ -18,7 +18,8 @@ public static void main(String[] args) { //myBot.sendMessage("Hello, world!"); // Post a pineapple photo to the #bots channel - //myBot.sendMessage("http://weknowyourdreams.com/images/pineapple/pineapple-07.jpg"); + myBot.sendMessageToBotsChannel("Testing name"); + } } \ No newline at end of file diff --git a/src/nyc/c4q/ramonaharrison/network/Slack.java b/src/nyc/c4q/ramonaharrison/network/Slack.java index 87521bd..a61a2e7 100644 --- a/src/nyc/c4q/ramonaharrison/network/Slack.java +++ b/src/nyc/c4q/ramonaharrison/network/Slack.java @@ -28,7 +28,7 @@ public class Slack { private static final String ENDPOINT_POST_MESSAGE = "chat.postMessage"; private static final String ENDPOINT_DELETE_MESSAGE = "chat.delete"; - public static final String BOTS_CHANNEL_ID = "C2ABKERFT"; + public static final String BOTS_CHANNEL_ID = "C7KE0KTM4"; /** * Static method to test the Slack API. From 7f27266ec6ab5541b690f0a322ad856adcc32071 Mon Sep 17 00:00:00 2001 From: Amirah Oxendine Date: Thu, 19 Oct 2017 14:45:14 -0400 Subject: [PATCH 2/8] changed as user to true in order to display bot profile on channel --- src/nyc/c4q/ramonaharrison/Main.java | 2 +- .../c4q/ramonaharrison/model/Attachment.java | 20 +++++++++++++++++++ src/nyc/c4q/ramonaharrison/network/Slack.java | 3 ++- .../network/response/SendMessageResponse.java | 2 ++ 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/nyc/c4q/ramonaharrison/Main.java b/src/nyc/c4q/ramonaharrison/Main.java index 31387b6..5f15d62 100644 --- a/src/nyc/c4q/ramonaharrison/Main.java +++ b/src/nyc/c4q/ramonaharrison/Main.java @@ -18,7 +18,7 @@ public static void main(String[] args) { //myBot.sendMessage("Hello, world!"); // Post a pineapple photo to the #bots channel - myBot.sendMessageToBotsChannel("Testing name"); + myBot.sendMessageToBotsChannel("I have a name and face now!"); } diff --git a/src/nyc/c4q/ramonaharrison/model/Attachment.java b/src/nyc/c4q/ramonaharrison/model/Attachment.java index 8b9d1ef..e642ae5 100644 --- a/src/nyc/c4q/ramonaharrison/model/Attachment.java +++ b/src/nyc/c4q/ramonaharrison/model/Attachment.java @@ -2,6 +2,8 @@ import org.json.simple.JSONObject; +import java.util.ArrayList; + /** * Created by Ramona Harrison * on 8/26/16 @@ -29,9 +31,27 @@ public class Attachment { // "footer" // "footer_icon" // "ts" + String fallback; + String color; + String pretext; + String author_name; public Attachment(JSONObject json) { // TODO: parse an attachment from the incoming json + if (json.get("fallback") != null) { + this.fallback = (String) json.get("fallback"); + } + if (json.get("color") != null) { + this.color = (String) json.get("fallback"); + } + if (json.get("pretext") != null) { + this.pretext = (String) json.get("fallback"); + } + if (json.get("author_name") != null) { + this.author_name = (String) json.get("fallback"); + } + + //private List fields = new ArrayList<>(); } // TODO add getters to access private fields diff --git a/src/nyc/c4q/ramonaharrison/network/Slack.java b/src/nyc/c4q/ramonaharrison/network/Slack.java index a61a2e7..504b9ad 100644 --- a/src/nyc/c4q/ramonaharrison/network/Slack.java +++ b/src/nyc/c4q/ramonaharrison/network/Slack.java @@ -29,6 +29,7 @@ public class Slack { private static final String ENDPOINT_DELETE_MESSAGE = "chat.delete"; public static final String BOTS_CHANNEL_ID = "C7KE0KTM4"; + public static final String asUser="true"; /** * Static method to test the Slack API. @@ -82,7 +83,7 @@ public static SendMessageResponse sendMessage(String messageText) { throw new RuntimeException(e); } - URL sendMessageUrl = HTTPS.stringToURL(BASE_URL + ENDPOINT_POST_MESSAGE + "?token=" + API_KEY + "&channel=" + BOTS_CHANNEL_ID + "&text=" + messageText); + URL sendMessageUrl = HTTPS.stringToURL(BASE_URL + ENDPOINT_POST_MESSAGE + "?token=" + API_KEY + "&channel=" + BOTS_CHANNEL_ID + "&text=" + messageText + "&as_user=" + asUser); return new SendMessageResponse(HTTPS.get(sendMessageUrl)); } diff --git a/src/nyc/c4q/ramonaharrison/network/response/SendMessageResponse.java b/src/nyc/c4q/ramonaharrison/network/response/SendMessageResponse.java index e183efd..627fcd6 100644 --- a/src/nyc/c4q/ramonaharrison/network/response/SendMessageResponse.java +++ b/src/nyc/c4q/ramonaharrison/network/response/SendMessageResponse.java @@ -21,6 +21,7 @@ public class SendMessageResponse extends Response { public SendMessageResponse(JSONObject json) { super(json); + if (json.get("channel") != null) { this.channel = (String) json.get("channel"); } @@ -32,6 +33,7 @@ public SendMessageResponse(JSONObject json) { if (json.get("message") != null) { this.message = new Message((JSONObject) json.get("message")); } + } public String getChannel() { From 73762a26dbe1ffcc9f6700ca3af60a565ccc5164 Mon Sep 17 00:00:00 2001 From: Amirah Oxendine Date: Thu, 19 Oct 2017 15:14:41 -0400 Subject: [PATCH 3/8] aj's Attachment.java TODO's completed --- .../c4q/ramonaharrison/model/Attachment.java | 67 ++++++++++++++++--- 1 file changed, 59 insertions(+), 8 deletions(-) diff --git a/src/nyc/c4q/ramonaharrison/model/Attachment.java b/src/nyc/c4q/ramonaharrison/model/Attachment.java index e642ae5..00c304a 100644 --- a/src/nyc/c4q/ramonaharrison/model/Attachment.java +++ b/src/nyc/c4q/ramonaharrison/model/Attachment.java @@ -31,10 +31,23 @@ public class Attachment { // "footer" // "footer_icon" // "ts" - String fallback; - String color; - String pretext; - String author_name; + private String fallback; + private String color; + private String pretext; + private String author_name; + private String author_link; + private String author_icon; + private String title; + private String title_link; + private String text; + private ArrayList fields = new ArrayList<>(); + private String image_url; + private String thumb_url; + private String footer; + private String footer_icon; + private String ts; + + public Attachment(JSONObject json) { // TODO: parse an attachment from the incoming json @@ -42,18 +55,56 @@ public Attachment(JSONObject json) { this.fallback = (String) json.get("fallback"); } if (json.get("color") != null) { - this.color = (String) json.get("fallback"); + this.color = (String) json.get("color"); } if (json.get("pretext") != null) { - this.pretext = (String) json.get("fallback"); + this.pretext = (String) json.get("pretext"); } if (json.get("author_name") != null) { - this.author_name = (String) json.get("fallback"); + this.author_name = (String) json.get("author_name"); + } + if (json.get("author_link") != null) { + this.author_link = (String) json.get("author_link"); + } + if (json.get("author_icon") != null) { + this.author_icon = (String) json.get("author_icon"); + } + if (json.get("title_link") != null) { + this.title_link = (String) json.get("title_link"); + } + if (json.get("title") != null) { + this.title = (String) json.get("title"); + } + if (json.get("text") != null) { + this.text = (String) json.get("text"); + } + if (json.get("fields") != null) { + this.fields = (ArrayList) json.get("fields"); + }//TODO research how to get fields + if (json.get("image_url") != null) { + this.image_url = (String) json.get("image_url"); } + if (json.get("thumb_url") != null) { + this.thumb_url = (String) json.get("thumb_url"); + } + if (json.get("footer") != null) { + this.footer = (String) json.get("footer"); + } + if (json.get("footer_icon") != null) { + this.footer_icon = (String) json.get("footer_icon"); + } + if (json.get("ts") != null) { + this.ts = (String) json.get("ts"); + } + } - //private List fields = new ArrayList<>(); + private class Field{ + String title; + String value; } + + // TODO add getters to access private fields } From 196d8bff10c40ba24e83646863440059e9b39321 Mon Sep 17 00:00:00 2001 From: Volha Kaleda Date: Thu, 19 Oct 2017 21:43:32 -0400 Subject: [PATCH 4/8] not final --- src/nyc/c4q/ramonaharrison/Bot.java | 27 +++ src/nyc/c4q/ramonaharrison/Main.java | 3 + .../c4q/ramonaharrison/model/Attachment.java | 165 ++++++++++++++++++ 3 files changed, 195 insertions(+) diff --git a/src/nyc/c4q/ramonaharrison/Bot.java b/src/nyc/c4q/ramonaharrison/Bot.java index 6a52dd4..6664e04 100644 --- a/src/nyc/c4q/ramonaharrison/Bot.java +++ b/src/nyc/c4q/ramonaharrison/Bot.java @@ -2,9 +2,12 @@ import nyc.c4q.ramonaharrison.model.Channel; import nyc.c4q.ramonaharrison.model.Message; +import nyc.c4q.ramonaharrison.model.User; import nyc.c4q.ramonaharrison.network.*; import nyc.c4q.ramonaharrison.network.response.*; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -17,7 +20,31 @@ public class Bot { // TODO: implement your bot logic! public Bot() { + } + + public void sendHomeworkLink() { + ListMessagesResponse allResponses = Slack.listMessages("C7KE0KTM4"); + List allMessages = allResponses.getMessages(); + Message lastMessage = allMessages.get(allMessages.size() - 1); + String text = lastMessage.getText(); + HashMap listOfHomeworks = new HashMap<>(); + listOfHomeworks.put("homework1", "a"); + listOfHomeworks.put("homework2", "b"); + listOfHomeworks.put("homework3", "b"); + + if (text.contains("homework1")) { + String link = listOfHomeworks.get("homework1"); + Slack.sendMessage(link); + } + else if (text.contains("homework2")) { + String link = listOfHomeworks.get("homework2"); + Slack.sendMessage(link); + } + else if (text.contains("homework3")) { + String link = listOfHomeworks.get("homework3"); + Slack.sendMessage(link); + } } /** diff --git a/src/nyc/c4q/ramonaharrison/Main.java b/src/nyc/c4q/ramonaharrison/Main.java index 933e92b..b7d1108 100644 --- a/src/nyc/c4q/ramonaharrison/Main.java +++ b/src/nyc/c4q/ramonaharrison/Main.java @@ -20,5 +20,8 @@ public static void main(String[] args) { // Post a pineapple photo to the #bots channel //myBot.sendMessage("http://weknowyourdreams.com/images/pineapple/pineapple-07.jpg"); + while (true) { + myBot.sendHomeworkLink(); + } } } \ No newline at end of file diff --git a/src/nyc/c4q/ramonaharrison/model/Attachment.java b/src/nyc/c4q/ramonaharrison/model/Attachment.java index 8b9d1ef..cc9468f 100644 --- a/src/nyc/c4q/ramonaharrison/model/Attachment.java +++ b/src/nyc/c4q/ramonaharrison/model/Attachment.java @@ -1,7 +1,12 @@ package nyc.c4q.ramonaharrison.model; +import org.json.simple.JSONArray; import org.json.simple.JSONObject; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.List; + /** * Created by Ramona Harrison * on 8/26/16 @@ -30,10 +35,170 @@ public class Attachment { // "footer_icon" // "ts" + private ArrayList attachments; + private String fallback; + private String color; + private String pretext; + private String author_name; + private String author_link; + private String authorIcon; + private String title; + private String titleLink; + private String text; + + private ArrayList fields; +// private String title1; these are the elements of array, shall i define them as properties? +// private String value; +// private boolean short1; + + private String imageUrl; + private String thumbUrl; + private String footer; + private String footerIcon; + private long ts; + + public class Fields { + + } + public Attachment(JSONObject json) { // TODO: parse an attachment from the incoming json + if (json.get("fallback") != null) { + this.fallback = (String) json.get("fallback"); + } + + if (json.get("color") != null) { + this.color = (String) json.get("color"); + } + + if (json.get("pretext") != null) { + this.pretext = (String) json.get("pretext"); + } + + if (json.get("authorName") != null) { + this.authorName = (String) json.get("authorName"); + } + + if (json.get("authorLink") != null) { + this.authorLink = (String) json.get("authorLink"); + } + + if (json.get("authorIcon") != null) { + this.authorIcon = (String) json.get("authorIcon"); + } + + if (json.get("title") != null) { + this.title = (String) json.get("title"); + } + + if (json.get("titleLink") != null) { + this.titleLink = (String) json.get("titleLink"); + } + + if (json.get("text") != null) { + this.text = (String) json.get("text"); + } + + if (json.get("fields") != null) { + JSONArray fieldsArray = (JSONArray) json.get("fields"); // need more explanation here + this.fields = new ArrayList(); + for (int i = 0; i < fieldsArray.size(); i++) { + this.fields.add((Field) fieldsArray.get(i)); + } + } + + if (json.get("imageUrl") != null) { + this.imageUrl = (String) json.get("imageUrl"); + } + + if (json.get("thumbUrl") != null) { + this.thumbUrl = (String) json.get("thumbUrl"); + } + + if (json.get("footer") != null) { + this.footer = (String) json.get("footer"); + } + + if (json.get("footerIcon") != null) { + this.footerIcon = (String) json.get("footerIcon"); + } + + if (json.get("ts") != null) { + this.ts = (Long) json.get("ts"); + } } // TODO add getters to access private fields + + public String getFallback() { + return fallback; + } + + public String getColor() { + return color; + } + + public String getPretext() { + return pretext; + } + + public String getAuthorName() { + return authorName; + } + + public String getAuthorLink() { + return authorLink; + } + public String getAuthorIcon() { + return authorIcon; + } + + public String getTitle() { + return title; + } + + public String getTitleLink() { + return titleLink; + } + + public String getText() { + return text; + } + + private ArrayList getFields() { + return fields; + } + +// private String getTitle1() { +// return title1; +// } +// +// private String getValue() { +// return value; +// } +// +// private boolean isShort1() { +// return short1; +// } + + private String getImageUrl() { + return imageUrl; + } + + private String getThumbUrl() { + return thumbUrl; + } + + private String getFooter() { + return footer; + } + + private String getFooterIcon() { + return footerIcon; + } + + private long getTs() { + return ts; + } } From 25085903f5c19868467222dc8591071bb06a435b Mon Sep 17 00:00:00 2001 From: Volha Kaleda Date: Thu, 19 Oct 2017 22:06:28 -0400 Subject: [PATCH 5/8] final version --- .../c4q/ramonaharrison/model/Attachment.java | 71 +++++++------------ src/nyc/c4q/ramonaharrison/model/Field.java | 39 ++++++++++ 2 files changed, 66 insertions(+), 44 deletions(-) create mode 100644 src/nyc/c4q/ramonaharrison/model/Field.java diff --git a/src/nyc/c4q/ramonaharrison/model/Attachment.java b/src/nyc/c4q/ramonaharrison/model/Attachment.java index cc9468f..8b71145 100644 --- a/src/nyc/c4q/ramonaharrison/model/Attachment.java +++ b/src/nyc/c4q/ramonaharrison/model/Attachment.java @@ -35,31 +35,25 @@ public class Attachment { // "footer_icon" // "ts" - private ArrayList attachments; private String fallback; private String color; private String pretext; private String author_name; private String author_link; - private String authorIcon; + private String author_icon; private String title; - private String titleLink; + private String title_link; private String text; - private ArrayList fields; -// private String title1; these are the elements of array, shall i define them as properties? -// private String value; -// private boolean short1; + private ArrayList fields; - private String imageUrl; - private String thumbUrl; + private String image_url; + private String thumb_url; private String footer; - private String footerIcon; + private String footer_icon; private long ts; - public class Fields { - } public Attachment(JSONObject json) { // TODO: parse an attachment from the incoming json @@ -75,24 +69,24 @@ public Attachment(JSONObject json) { this.pretext = (String) json.get("pretext"); } - if (json.get("authorName") != null) { - this.authorName = (String) json.get("authorName"); + if (json.get("author_name") != null) { + this.author_name = (String) json.get("author_name"); } - if (json.get("authorLink") != null) { - this.authorLink = (String) json.get("authorLink"); + if (json.get("author_link") != null) { + this.author_link = (String) json.get("author_link"); } - if (json.get("authorIcon") != null) { - this.authorIcon = (String) json.get("authorIcon"); + if (json.get("author_icon") != null) { + this.author_icon = (String) json.get("author_icon"); } if (json.get("title") != null) { this.title = (String) json.get("title"); } - if (json.get("titleLink") != null) { - this.titleLink = (String) json.get("titleLink"); + if (json.get("title_link") != null) { + this.title_link = (String) json.get("title_link"); } if (json.get("text") != null) { @@ -107,20 +101,20 @@ public Attachment(JSONObject json) { } } - if (json.get("imageUrl") != null) { - this.imageUrl = (String) json.get("imageUrl"); + if (json.get("image_url") != null) { + this.image_url = (String) json.get("image_url"); } - if (json.get("thumbUrl") != null) { - this.thumbUrl = (String) json.get("thumbUrl"); + if (json.get("thumb_url") != null) { + this.thumb_url = (String) json.get("thumb_url"); } if (json.get("footer") != null) { this.footer = (String) json.get("footer"); } - if (json.get("footerIcon") != null) { - this.footerIcon = (String) json.get("footerIcon"); + if (json.get("footer_icon") != null) { + this.footer_icon = (String) json.get("footer_icon"); } if (json.get("ts") != null) { @@ -144,14 +138,14 @@ public String getPretext() { } public String getAuthorName() { - return authorName; + return author_name; } public String getAuthorLink() { - return authorLink; + return author_link; } public String getAuthorIcon() { - return authorIcon; + return author_icon; } public String getTitle() { @@ -159,7 +153,7 @@ public String getTitle() { } public String getTitleLink() { - return titleLink; + return title_link; } public String getText() { @@ -170,24 +164,13 @@ private ArrayList getFields() { return fields; } -// private String getTitle1() { -// return title1; -// } -// -// private String getValue() { -// return value; -// } -// -// private boolean isShort1() { -// return short1; -// } private String getImageUrl() { - return imageUrl; + return image_url; } private String getThumbUrl() { - return thumbUrl; + return thumb_url; } private String getFooter() { @@ -195,7 +178,7 @@ private String getFooter() { } private String getFooterIcon() { - return footerIcon; + return footer_icon; } private long getTs() { diff --git a/src/nyc/c4q/ramonaharrison/model/Field.java b/src/nyc/c4q/ramonaharrison/model/Field.java new file mode 100644 index 0000000..0259fff --- /dev/null +++ b/src/nyc/c4q/ramonaharrison/model/Field.java @@ -0,0 +1,39 @@ +package nyc.c4q.ramonaharrison.model; + +import org.json.simple.JSONObject; + +public class Field { + + + private String title; + private String value; + private boolean short1; + + public Field(JSONObject json) { + + if (json.get("value") != null) { + this.value = (String) json.get("value"); + } + + if (json.get("title") != null) { + this.title = (String) json.get("title"); + } + + if (json.get("short1") != null) { + this.short1 = (boolean) json.get("short1"); + } + + } + + private String getTitle() { + return title; + } + + private String getValue() { + return value; + } + + private boolean isShort1() { + return short1; + } +} From 68eac248673572fd5b0f5c2eaf7b65b80647ffaf Mon Sep 17 00:00:00 2001 From: Amirah Oxendine Date: Fri, 20 Oct 2017 23:24:58 -0400 Subject: [PATCH 6/8] ajoxe added pigLatin logic --- src/nyc/c4q/ramonaharrison/Bot.java | 30 +++++++++++++++++++ src/nyc/c4q/ramonaharrison/Main.java | 2 +- .../c4q/ramonaharrison/model/Attachment.java | 25 +--------------- 3 files changed, 32 insertions(+), 25 deletions(-) diff --git a/src/nyc/c4q/ramonaharrison/Bot.java b/src/nyc/c4q/ramonaharrison/Bot.java index 8b8b911..d4fc9f4 100644 --- a/src/nyc/c4q/ramonaharrison/Bot.java +++ b/src/nyc/c4q/ramonaharrison/Bot.java @@ -9,6 +9,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.StringTokenizer; /** * Created by Ramona Harrison @@ -79,6 +80,7 @@ public void listChannels() { * * @param channelId id of the given channel. */ + public void listMessages(String channelId) { ListMessagesResponse listMessagesResponse = Slack.listMessages(channelId); @@ -125,4 +127,32 @@ public void deleteMessageInBotsChannel(String messageTs) { System.err.print("Error sending message: " + deleteMessageResponse.getError()); } } + public class PigLatin{ + public PigLatin(String pigMessage){ + pigMessage = messageToPigLatin(messageToStringArray(pigMessage)); + } + public StringBuilder pigLatin(String s){ + StringBuilder pigLatin=new StringBuilder(s); + String igLatin=pigLatin.substring(1); + pigLatin.delete(1,pigLatin.length()); + pigLatin.insert(0, igLatin); + pigLatin.append("ay"); + return pigLatin; + } + public ArrayList messageToStringArray(String s){ + ArrayList stringArray= new ArrayList<>(); + StringTokenizer pLT = new StringTokenizer(s, " "); + while (pLT.hasMoreTokens()){ + stringArray.add(pLT.nextToken()); + } + return stringArray; + } + public String messageToPigLatin(ArrayList message){ + String messageToPigLatin=""; + for (String s:message){ + messageToPigLatin+= (pigLatin(s) + " "); + } + return messageToPigLatin; + } + } } diff --git a/src/nyc/c4q/ramonaharrison/Main.java b/src/nyc/c4q/ramonaharrison/Main.java index 7a5b54a..d98231a 100644 --- a/src/nyc/c4q/ramonaharrison/Main.java +++ b/src/nyc/c4q/ramonaharrison/Main.java @@ -18,7 +18,7 @@ public static void main(String[] args) { //myBot.sendMessage("Hello, world!"); // Post a pineapple photo to the #bots channel - myBot.sendMessageToBotsChannel("I have a name and face now!"); + myBot.sendMessageToBotsChannel(""); while (true) { diff --git a/src/nyc/c4q/ramonaharrison/model/Attachment.java b/src/nyc/c4q/ramonaharrison/model/Attachment.java index 9157088..f82397e 100644 --- a/src/nyc/c4q/ramonaharrison/model/Attachment.java +++ b/src/nyc/c4q/ramonaharrison/model/Attachment.java @@ -18,25 +18,6 @@ public class Attachment { - // TODO: implement private fields for each of the following attachment JSON keys: - // "fallback" - // "color" - // "pretext" - // "author_name" - // "author_link" - // "author_icon" - // "title" - // "title_link" - // "text" - // "fields" - // "image_url" - // "thumb_url" - // "footer" - // "footer_icon" - // "ts" - - - private String fallback; private String color; private String pretext; @@ -46,19 +27,15 @@ public class Attachment { private String title; private String title_link; private String text; - private ArrayList fields; - private String image_url; private String thumb_url; private String footer; private String footer_icon; private long ts; - - public Attachment(JSONObject json) { - // TODO: parse an attachment from the incoming json + if (json.get("fallback") != null) { this.fallback = (String) json.get("fallback"); } From b0722744edba91a8b895db7de514e02b82c250de Mon Sep 17 00:00:00 2001 From: Amirah Oxendine Date: Sat, 21 Oct 2017 11:15:03 -0400 Subject: [PATCH 7/8] ajoxe: change sendmessage method to speak in piglatin --- src/nyc/c4q/ramonaharrison/Bot.java | 11 +++++++++-- src/nyc/c4q/ramonaharrison/Main.java | 8 ++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/nyc/c4q/ramonaharrison/Bot.java b/src/nyc/c4q/ramonaharrison/Bot.java index d4fc9f4..eb428ef 100644 --- a/src/nyc/c4q/ramonaharrison/Bot.java +++ b/src/nyc/c4q/ramonaharrison/Bot.java @@ -104,6 +104,8 @@ public void listMessages(String channelId) { * @param text message text. */ public void sendMessageToBotsChannel(String text) { + PigLatin pigMessage= new PigLatin(text); + text=pigMessage.getPigMessage(); SendMessageResponse sendMessageResponse = Slack.sendMessage(text); if (sendMessageResponse.isOk()) { @@ -127,9 +129,10 @@ public void deleteMessageInBotsChannel(String messageTs) { System.err.print("Error sending message: " + deleteMessageResponse.getError()); } } - public class PigLatin{ + public static class PigLatin{ + String pigMessage; public PigLatin(String pigMessage){ - pigMessage = messageToPigLatin(messageToStringArray(pigMessage)); + this.pigMessage = messageToPigLatin(messageToStringArray(pigMessage)); } public StringBuilder pigLatin(String s){ StringBuilder pigLatin=new StringBuilder(s); @@ -154,5 +157,9 @@ public String messageToPigLatin(ArrayList message){ } return messageToPigLatin; } + + public String getPigMessage() { + return pigMessage; + } } } diff --git a/src/nyc/c4q/ramonaharrison/Main.java b/src/nyc/c4q/ramonaharrison/Main.java index d98231a..f074ad0 100644 --- a/src/nyc/c4q/ramonaharrison/Main.java +++ b/src/nyc/c4q/ramonaharrison/Main.java @@ -18,11 +18,11 @@ public static void main(String[] args) { //myBot.sendMessage("Hello, world!"); // Post a pineapple photo to the #bots channel - myBot.sendMessageToBotsChannel(""); + myBot.sendMessageToBotsChannel("I speak in pigLatin now. English is totally lame"); - while (true) { - myBot.sendHomeworkLink(); - } + // while (true) { + // myBot.sendHomeworkLink(); + //} } } \ No newline at end of file From 1dae0e9f6c1a7ac65887c0226b111b54b974763f Mon Sep 17 00:00:00 2001 From: Melina Gonzalez Date: Sat, 21 Oct 2017 13:11:17 -0400 Subject: [PATCH 8/8] first commit --- src/nyc/c4q/ramonaharrison/model/User.java | 89 +++++++++++++++++++--- 1 file changed, 79 insertions(+), 10 deletions(-) diff --git a/src/nyc/c4q/ramonaharrison/model/User.java b/src/nyc/c4q/ramonaharrison/model/User.java index bc309eb..909fc57 100644 --- a/src/nyc/c4q/ramonaharrison/model/User.java +++ b/src/nyc/c4q/ramonaharrison/model/User.java @@ -2,20 +2,14 @@ import org.json.simple.JSONObject; -/** - * Created by Ramona Harrison - * on 8/26/16 - * - * A class representing a user. - * See https://api.slack.com/types/user - * - */ public class User { + private String userInput; + // TODO: implement private fields for each of the following user JSON keys: - // "id" - // "name" + private String id; // "id" + private String pigLatin; // "name" // "deleted" // "color" // "profile" @@ -29,8 +23,83 @@ public class User { // "has_files" public User(JSONObject json) { + + // TODO: parse a user from the incoming json } + public String getUserInput() { + return userInput; + } + + public String getPigLAtin() { + return pigLatin; + } + + public String getId() { + return id; + } + + public void setUserInput(String userInput) { + this.userInput = userInput; + + } + + public void setPigLAtin(String pigLAtin) { + + this.pigLatin = pigLatin; + } + + public void translate(JSONObject json) { + if (json.get("userInput") != null) { + this.userInput = (String) json.get("userInput"); + + } + if (json.get("pigLatin") != null) { + this.pigLatin = pigLatin; + } + } + + public String wordToPigLatin(String word) { + String wordSubstring = word.substring(1); + char firstChar = word.charAt(0); + String ay = "ay"; + String nonLowerCaseResult = wordSubstring + firstChar + ay; + return nonLowerCaseResult.toLowerCase(); + } + + public String sentenceToPigLatin(String sentence) { + String[] wordArray = sentence.split(" "); + for (int i = 0; i < wordArray.length; i++) { + // v3 + String word = wordArray[i]; + String pigLatin = wordToPigLatin(word); + wordArray[i] = pigLatin; + } + + String pigLatinSentence = ""; + for (int i = 0; i < wordArray.length; i++) { + String space = " "; + pigLatinSentence += wordArray[i]; + + int lastIndex = wordArray.length - 1; + if (i != lastIndex) { + pigLatinSentence += space; + } + } + return capitlize(pigLatinSentence); + + } + + public String capitlize(String sentence) { + String firstLetter= sentence.substring(0,1); + String capFirstLetter=firstLetter.toUpperCase(); + String restOfSentence= sentence.substring(1); + return capFirstLetter+restOfSentence; + } + + // TODO add getters to access private fields } + +