예제 #1
0
 public TweetSlideEvent(String slide, Tweet tweet) {
   this.slide = slide.replace(" ", "_");
   this.createdAt = tweet.getCreatedAt().toString();
   this.id = tweet.getId();
   this.userId = tweet.getUserId();
   this.text = tweet.getText().replaceAll("\\s+", " ");
 }
    /** creates marker for tweet and its to map */
    private void addTweet(Tweet t) {
      if (t.getText() == null) {
        // ignore tweets without text
        return;
      }
      GeoCoordinate gc = t.getUserCoordinate();
      boolean addTweet = true;

      cleanOldest();
      if (map.getZoomLevel() > 0) {
        GeoBoundingBox gbb =
            new GeoBoundingBox(
                map.pixelToGeo(new Point(0, 0)),
                map.pixelToGeo(new Point(map.getWidth(), map.getHeight())));

        addTweet = gbb.contains(gc);
      }
      if (addTweet) {
        MapStandardMarker msm =
            mapFactory.createStandardMarker(gc, 100, "", MapStandardMarker.BALLOON);

        msm.setColor(MARKER_COLOR);
        map.addMapObject(msm);
        addedTweets.addData(msm, t);
        tweetAge.put(msm, new Long(t.getCreatedTime()));
        repaint();
      }
    }
    /** Shows current tweet dialog and downloads user image */
    private void showTweet() {
      String text = current_tweet.getText();

      if (text != null) {
        String from = current_tweet.getFromUser();
        Alert a = new Alert("" + from, text, null, AlertType.INFO);

        a.setTimeout(Alert.FOREVER);
        display.setCurrent(a, this);
        String url = current_tweet.getProfileImageUrl();

        if (url != null) {
          // download and set user image to visible alert
          Image img;
          InputStream is = null;

          try {
            is = Connector.openInputStream(url);
            img = Image.createImage(is);
            a.setImage(img);
          } catch (Throwable t) { // do not show errors if image
            // download fails
          } finally {
            try {
              if (is != null) {
                is.close();
              }
            } catch (Throwable e) {
            }
          }
        }
      }
    }
예제 #4
0
  public List<Map<String, Object>> getTwitter(String url, Context context) {
    ArrayList<Map<String, String>> json = this.JSON(url, context);
    List<Map<String, Object>> tweets = new ArrayList<Map<String, Object>>();
    Map<String, Object> data;
    if (json.get(0).get("internet").equals("true")) {
      for (int i = 0; i < json.size(); i++) {
        try {
          data = new HashMap<String, Object>();
          Log.i("JSON Lista Recebida", i + " -> " + json.get(i).toString());
          Tweet tweet =
              new Tweet(
                  json.get(i).get("texto"),
                  json.get(i).get("autor"),
                  json.get(i).get("imagem"),
                  json.get(i).get("date"));

          data.put("internet", true);
          data.put("text", tweet.getText());
          data.put("author", tweet.getAuthor());
          data.put("image", tweet.getImage());
          data.put("datetime", tweet.getDate());

          tweets.add(data);
        } catch (Exception e) {
          Log.e("JSON - Tweets", e.getMessage() + " " + e.getStackTrace());
        }
      }
    } else {
      data = new HashMap<String, Object>();
      data.put("internet", false);
      tweets.add(data);
    }
    return tweets;
  }
  public void grab(Date timeLimit) {
    log.info("Twitter grabber started...");
    Twitter twitter = new TwitterFactory().getInstance();

    List<Brand> brandList = handler.getBrandProvider().getAllBrands();
    ArticleProvider articleProvider = handler.getArticleProvider();

    for (Brand b : brandList) {
      Query query = new Query(b.getName());
      query.setRpp(PAGE_SIZE);
      query.setLang("ru");
      query.setResultType(Query.MIXED);

      List<Tweet> resultTweets = new LinkedList<Tweet>();
      QueryResult queryResult;
      int pageNumber = 1;

      try {
        do {
          query.setPage(pageNumber);
          queryResult = twitter.search(query);
          resultTweets.addAll(queryResult.getTweets());
          pageNumber++;
          log.info(pageNumber);
        } while (ISSUANCE_SIZE > resultTweets.size());
      } catch (TwitterException e) {
        throw new RuntimeException(e);
      }
      log.info("tweets in da111y: " + resultTweets.size());
      twitter = null;
      twitter = new TwitterFactory().getInstance();

      for (Tweet t : resultTweets) {
        articleProvider.writeArticleToDataStore(
            new Article(-1, b.getId(), 2, "", t.getText(), "", getSimpleTime(t.getCreatedAt()), 1));
      }
    }
    log.info("twitter grabber finished succesful.");
  }