Skip to content
Open
64 changes: 64 additions & 0 deletions src/nyc/c4q/ramonaharrison/Bot.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,14 @@

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;
import java.util.StringTokenizer;

/**
* Created by Ramona Harrison
Expand All @@ -17,7 +21,31 @@ public class Bot {
// TODO: implement your bot logic!

public Bot() {
}

public void sendHomeworkLink() {
ListMessagesResponse allResponses = Slack.listMessages("C7KE0KTM4");
List<Message> allMessages = allResponses.getMessages();
Message lastMessage = allMessages.get(allMessages.size() - 1);
String text = lastMessage.getText();
HashMap<String, String> listOfHomeworks = new HashMap<>();
listOfHomeworks.put("homework1", "https://canvas.instructure.com/courses/1218009/quizzes/2367962");
listOfHomeworks.put("homework2", "https://github.com/C4Q/AC-Android/blob/master/homework/unit-1/week-2.md");
listOfHomeworks.put("homework3", "https://github.com/C4Q/AC-Android/blob/master/homework/unit-1/Hw3");


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);
}
}

/**
Expand Down Expand Up @@ -52,6 +80,7 @@ public void listChannels() {
*
* @param channelId id of the given channel.
*/

public void listMessages(String channelId) {
ListMessagesResponse listMessagesResponse = Slack.listMessages(channelId);

Expand All @@ -75,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()) {
Expand All @@ -98,4 +129,37 @@ public void deleteMessageInBotsChannel(String messageTs) {
System.err.print("Error sending message: " + deleteMessageResponse.getError());
}
}
public static class PigLatin{
String pigMessage;
public PigLatin(String pigMessage){
this.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<String> messageToStringArray(String s){
ArrayList<String> stringArray= new ArrayList<>();
StringTokenizer pLT = new StringTokenizer(s, " ");
while (pLT.hasMoreTokens()){
stringArray.add(pLT.nextToken());
}
return stringArray;
}
public String messageToPigLatin(ArrayList<String> message){
String messageToPigLatin="";
for (String s:message){
messageToPigLatin+= (pigLatin(s) + " ");
}
return messageToPigLatin;
}

public String getPigMessage() {
return pigMessage;
}
}
}
6 changes: 5 additions & 1 deletion src/nyc/c4q/ramonaharrison/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@ 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("I speak in pigLatin now. English is totally lame");


// while (true) {
// myBot.sendHomeworkLink();
//}
}
}
163 changes: 146 additions & 17 deletions src/nyc/c4q/ramonaharrison/model/Attachment.java
Original file line number Diff line number Diff line change
@@ -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;

/**
* Created by Ramona Harrison
* on 8/26/16
Expand All @@ -13,27 +18,151 @@

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;
private String author_name;
private String author_link;
private String author_icon;
private String title;
private String title_link;
private String text;
private ArrayList<Field> 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");
}

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("author_name") != null) {
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") != null) {
this.title = (String) json.get("title");
}

if (json.get("title_link") != null) {
this.title_link = (String) json.get("title_link");
}

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<Field>();
for (int i = 0; i < fieldsArray.size(); i++) {
this.fields.add((Field) fieldsArray.get(i));
}
}

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 = (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 author_name;
}

public String getAuthorLink() {
return author_link;
}
public String getAuthorIcon() {
return author_icon;
}

public String getTitle() {
return title;
}

public String getTitleLink() {
return title_link;
}

public String getText() {
return text;
}

private ArrayList<Field> getFields() {
return fields;
}


private String getImageUrl() {
return image_url;
}

private String getThumbUrl() {
return thumb_url;
}

private String getFooter() {
return footer;
}

private String getFooterIcon() {
return footer_icon;
}

private long getTs() {
return ts;
}
}
39 changes: 39 additions & 0 deletions src/nyc/c4q/ramonaharrison/model/Field.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
Loading