Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
201 changes: 168 additions & 33 deletions src/nyc/c4q/ramonaharrison/Bot.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,187 @@

import nyc.c4q.ramonaharrison.model.Channel;
import nyc.c4q.ramonaharrison.model.Message;
import nyc.c4q.ramonaharrison.network.*;
import nyc.c4q.ramonaharrison.network.Giphy;
import nyc.c4q.ramonaharrison.network.Memes;
import nyc.c4q.ramonaharrison.network.Slack;
import nyc.c4q.ramonaharrison.network.UrbanDictionary;
import nyc.c4q.ramonaharrison.network.response.*;

import java.net.URL;
import java.util.List;

/**
* Created by Ramona Harrison
* on 8/26/16
*
*/

public class Bot {
// TODO: implement your bot logic!

Slack myBot;

public Bot() {

}

public void addReaction() {
Response reaction = Slack.addReaction();
System.out.println(reaction);
}

/**
* Sample method: prints up to the last 100 messages from a given channel. Prints an error message on failure.
* or failure.
*
* @param channelId id of the given channel.
*/
public void listMessages(String channelId) {
ListMessagesResponse listMessagesResponse = Slack.listMessages(channelId);

if (listMessagesResponse.isOk()) {
List<Message> messages = listMessagesResponse.getMessages();
System.out.println("\nMessages: ");
for (Message message : messages) {
System.out.println();
System.out.println("Timestamp: " + message.getTs());
System.out.println("Message: " + message.getText());
System.out.println("User: " + message.getUser());
}
} else {
System.err.print("Error listing messages: " + listMessagesResponse.getError());
}
}

public void respondGreeting(String channelId) {

ListMessagesResponse listMessagesResponse = Slack.listMessages(channelId);

if (listMessagesResponse.isOk()) {

List<Message> messages = listMessagesResponse.getMessages();

myBot = new Slack();

String whatDidYouSay = messages.get(0).getText();
Message userMessage = messages.get(0);

if (whatDidYouSay.contains("@U2ADRJVK9") || whatDidYouSay.contains("messybot")) {
if (userMessage.getUser() != null) {
myBot.sendMessage("Hello " + myBot.userInfo());
}
myBot.sendMessage("I am " + myBot.getUSERNAME());
myBot.sendMessage(":poop::poop::poop:");
myBot.sendMessage("You asked for " + whatDidYouSay);
}
} else {
System.err.print("Error listing messages: " + listMessagesResponse.getError());
}
}

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

if (listMessagesResponse.isOk()) {
List<Message> messages = listMessagesResponse.getMessages();

myBot = new Slack();
UrbanDictionary urbanDictionary = new UrbanDictionary();
Memes memes = new Memes();
Giphy giphy = new Giphy();

for (Message message : messages) {
String word = message.getText();

if (word.contains("give me")) {

URL slangSearch = urbanDictionary.wordSearch();
slangSearch.toString();

URL memeSearch = memes.memeSearch();
memeSearch.toString();

String giphySearch = giphy.giphySearch();

myBot.sendMessage(slangSearch.toString());
Slack.addReaction();
myBot.sendMessage(memeSearch.toString());
Slack.addReaction();
myBot.sendMessage(giphySearch);
Slack.addReaction();
}
}
} else {
System.err.print("Error listing messages: " + listMessagesResponse.getError());
}
}

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

if (listMessagesResponse.isOk()) {
List<Message> messages = listMessagesResponse.getMessages();

myBot = new Slack();
UrbanDictionary urbanDictionary = new UrbanDictionary();

for (Message message : messages) {
String word = message.getText();

if (word.contains("ud")) {
URL slangSearch = urbanDictionary.wordSearch();
slangSearch.toString();
myBot.sendMessage(slangSearch.toString());
}
}
} else {
System.err.print("Error listing messages: " + listMessagesResponse.getError());
}
}

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

if (listMessagesResponse.isOk()) {
List<Message> messages = listMessagesResponse.getMessages();

myBot = new Slack();
Memes memes = new Memes();

for (Message message : messages) {

String aMeme = message.getText();
if (aMeme.contains("meme")) {
URL memeSearch = memes.memeSearch();
memeSearch.toString();
myBot.sendMessage(memeSearch.toString());
}
}
} else {
System.err.print("Error listing messages: " + listMessagesResponse.getError());
}
}

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

if (listMessagesResponse.isOk()) {
List<Message> messages = listMessagesResponse.getMessages();

myBot = new Slack();
Giphy giphy = new Giphy();

for (Message message : messages) {
String aGiphy = message.getText();

if (aGiphy.contains("giphy")) {
String giphySearch = giphy.giphySearch();
myBot.sendMessage(giphySearch);
}
}
} else {
System.err.print("Error listing messages: " + listMessagesResponse.getError());
}
}

/**
* Sample method: tests the Slack API. Prints a message indicating success or failure.
*/
public void testApi() {
Response apiTest = Slack.testApi();
System.out.println("API OK: " +apiTest.isOk() + "\n");
System.out.println("API OK: " + apiTest.isOk() + "\n");
}

/**
Expand All @@ -46,29 +203,6 @@ public void listChannels() {
}
}

/**
* Sample method: prints up to the last 100 messages from a given channel. Prints an error message on failure.
* or failure.
*
* @param channelId id of the given channel.
*/
public void listMessages(String channelId) {
ListMessagesResponse listMessagesResponse = Slack.listMessages(channelId);

if (listMessagesResponse.isOk()) {
List<Message> messages = listMessagesResponse.getMessages();

System.out.println("\nMessages: ");
for (Message message : messages) {
System.out.println();
System.out.println("Timestamp: " + message.getTs());
System.out.println("Message: " + message.getText());
}
} else {
System.err.print("Error listing messages: " + listMessagesResponse.getError());
}
}

/**
* Sample method: sends a plain text message to the #bots channel. Prints a message indicating success or failure.
*
Expand Down Expand Up @@ -98,4 +232,5 @@ public void deleteMessageInBotsChannel(String messageTs) {
System.err.print("Error sending message: " + deleteMessageResponse.getError());
}
}

}
22 changes: 16 additions & 6 deletions src/nyc/c4q/ramonaharrison/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,31 @@

public class Main {

// 9/23 - retrieved username from last message. did some refactoring (deleted unused methods). changed Giphy url to read
// actual url instead of small height fixed url. continue working on respondAll() and started working
// on Yelp API integration.

public static void main(String[] args) {

Bot myBot = new Bot();

myBot.testApi();
// myBot.testApi();
// myBot.deleteMessageInBotsChannel("1474042536.000733");

myBot.listChannels();

myBot.listMessages(Slack.BOTS_CHANNEL_ID);

// Post "Hello, world!" to the #bots channel
//myBot.sendMessage("Hello, world!");
// myBot.addReaction();
myBot.respondGreeting("C2ERNHJ5D");
myBot.respondDictionary("C2ERNHJ5D");
myBot.respondMeme("C2ERNHJ5D");
myBot.respondGiphy("C2ERNHJ5D");

// myBot.listMessages(Slack.BOTS_CHANNEL_ID);
// myBot.sendMessageToBotsChannel(":poop: messybot will be under maintenance.");

// Post a pineapple photo to the #bots channel
//myBot.sendMessage("http://weknowyourdreams.com/images/pineapple/pineapple-07.jpg");
// I am working on code below.
// myBot.respondAll("C2ERNHJ5D");

}
}
35 changes: 35 additions & 0 deletions src/nyc/c4q/ramonaharrison/model/Action.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package nyc.c4q.ramonaharrison.model;

import org.json.simple.JSONObject;

public class Action {

private String name;
private String text;
private String style;
private String type;
private String value;

public Action(JSONObject json) {

if (json.containsKey("name")) {
this.name = (String) json.get("name");
}

if (json.containsKey("text")) {
this.text = (String) json.get("text");
}

if (json.containsKey("style")) {
this.style = (String) json.get("style");
}

if (json.containsKey("type")) {
this.type = (String) json.get("type");
}

if (json.containsKey("value")) {
this.value = (String) json.get("value");
}
}
}
Loading