code help

Put your problem here if it does not fit any of the other categories.

Postby Danuubz » Wed Jun 25, 2008 2:32 pm

Yes, cdata shouldn't be a problem...but somehow it doesn't work (maybe it is intended) :wink:

Alternately you can use the following algorhithm 'algo' and 'polish' to find the image URLs:
Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. import java.util.*;
  3.  
  4. import java.util.regex.*;
  5.  
  6. import java.net.*;
  7.  
  8. import java.io.*;
  9.  
  10.  
  11.  
  12. public class NewTube
  13.  
  14. {
  15.  
  16.         public static void main(String[] args)
  17.  
  18.         {
  19.  
  20.                 new NewTube();
  21.  
  22.         }
  23.  
  24.        
  25.  
  26.         public NewTube()
  27.  
  28.         {
  29.  
  30.                 algo("http://youtube.com/rss/global/recently_featured.rss");
  31.  
  32.         }
  33.  
  34.        
  35.  
  36.         private void algo(String str)
  37.  
  38.         {
  39.  
  40.                 ArrayList<String> list = new ArrayList<String>();
  41.  
  42.                 Pattern pat = Pattern.compile("(.*)(src)(.*)");
  43.  
  44.                 Matcher mat;
  45.  
  46.        
  47.  
  48.         try
  49.  
  50.         {
  51.  
  52.             URL urlA = new URL(str);
  53.  
  54.             BufferedInputStream bin = new BufferedInputStream(urlA.openStream());
  55.  
  56.             Scanner scan = new Scanner(bin);
  57.  
  58.             String temp;
  59.  
  60.            
  61.  
  62.             while(scan.hasNext())
  63.  
  64.             {
  65.  
  66.                 temp = scan.next() + " ";
  67.  
  68.                 mat = pat.matcher(temp);
  69.  
  70.                
  71.  
  72.                 if(mat.matches())
  73.  
  74.                 {
  75.  
  76.                         list.add(temp);
  77.  
  78.                 }
  79.  
  80.             }
  81.  
  82.             bin.close();
  83.  
  84.         }
  85.  
  86.         catch (Exception e){ }
  87.  
  88.         finally
  89.  
  90.         {
  91.  
  92.                 for(String s : list)
  93.  
  94.                 {
  95.  
  96.                         System.out.println(polish(s));
  97.  
  98.                 }
  99.  
  100.         }
  101.  
  102.         }
  103.  
  104.        
  105.  
  106.         private String polish(String str)
  107.  
  108.         {
  109.  
  110.                 String temp = "";
  111.  
  112.                
  113.  
  114.                 for(int i=str.indexOf("http");i<str.length();i++)
  115.  
  116.                 {
  117.  
  118.                         if(str.charAt(i)=='"')
  119.  
  120.                         {
  121.  
  122.                                 return temp;
  123.  
  124.                         }
  125.  
  126.                         else
  127.  
  128.                         {
  129.  
  130.                                 temp = temp + str.charAt(i);           
  131.  
  132.                         }
  133.  
  134.                 }
  135.  
  136.                 return temp;
  137.  
  138.         }
  139.  
  140. }
  141.  
  142.  
Parsed in 0.038 seconds, using GeSHi 1.0.8.4
User avatar
Danuubz
Experienced Developer
Experienced Developer
 
Posts: 78
Joined: Wed Dec 19, 2007 10:44 pm
Location: Germany

Top

Postby euromaster » Thu Jun 26, 2008 7:57 pm

^ i'll try and intergate them
euromaster
Junior Developer
Junior Developer
 
Posts: 14
Joined: Mon Jun 16, 2008 10:37 pm

Postby euromaster » Thu Jun 26, 2008 10:18 pm

ok i managed to get googles data api working so i can retreive the image url now but an unspecified error is happerning in com.google.gdata.client.youtube.youtubeservice (you'll need the google data api as it's not included with android)

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. package com.Youtube;
  2.  
  3.  
  4.  
  5. import java.io.IOException;
  6.  
  7.  
  8.  
  9. import java.net.MalformedURLException;
  10.  
  11. import java.net.URL;
  12.  
  13.  
  14.  
  15. import java.util.Iterator;
  16.  
  17. import java.util.List;
  18.  
  19.  
  20.  
  21.  
  22.  
  23. import com.google.gdata.client.youtube.YouTubeService;
  24.  
  25. import com.google.gdata.data.TextConstruct;
  26.  
  27. import com.google.gdata.data.media.mediarss.MediaThumbnail;
  28.  
  29. import com.google.gdata.data.youtube.VideoEntry;
  30.  
  31. import com.google.gdata.data.youtube.VideoFeed;
  32.  
  33. import com.google.gdata.data.youtube.YouTubeMediaGroup;
  34.  
  35. import com.google.gdata.util.ServiceException;
  36.  
  37.  
  38.  
  39. import android.app.ListActivity;
  40.  
  41. import android.content.Context;
  42.  
  43. import android.graphics.Bitmap;
  44.  
  45. import android.graphics.BitmapFactory;
  46.  
  47. import android.graphics.Color;
  48.  
  49. import android.graphics.drawable.Drawable;
  50.  
  51. import android.os.Bundle;
  52.  
  53. import android.view.View;
  54.  
  55. import android.view.ViewGroup;
  56.  
  57. import android.widget.BaseAdapter;
  58.  
  59. import android.widget.ImageView;
  60.  
  61. import android.widget.LinearLayout;
  62.  
  63. import android.widget.ListView;
  64.  
  65. import android.widget.TextView;
  66.  
  67.  
  68.  
  69.  
  70.  
  71. public class Youtube extends ListActivity
  72.  
  73. {
  74.  
  75.     ListView view;
  76.  
  77.     MyListAdapter listAdapter;
  78.  
  79.      
  80.  
  81.     @Override
  82.  
  83.     public void onCreate(Bundle icicle)
  84.  
  85.     { try {
  86.  
  87.         int s = 0;
  88.  
  89.         YouTubeService youtube = new YouTubeService("AI39si6rCSE2yYRSfcanQOXWVB6C4qhTZEbk6fMrClOH4Ros364rjJhaNXwL1BGy5oxekFVSzv2U17tixifkL-E-J9YtcRe9CA");
  90.  
  91.         String Feed = "http://gdata.youtube.com/feeds/api/standardfeeds/recently_featured";
  92.  
  93.         VideoFeed videoFeed;
  94.  
  95.                
  96.  
  97.                         videoFeed = youtube.getFeed(new URL(Feed), VideoFeed.class);
  98.  
  99.         super.onCreate(icicle);
  100.  
  101.         List<VideoEntry> allVideos = videoFeed.getEntries();
  102.  
  103.         Iterator<VideoEntry> itAllVideos = allVideos.iterator();
  104.  
  105.         String[] Titles = new String[videoFeed.getEntries().size()];
  106.  
  107.         String[] Images = new String[videoFeed.getEntries().size()];
  108.  
  109.         while (itAllVideos.hasNext()){
  110.  
  111.                 s++;
  112.  
  113.             VideoEntry oneVideo  = itAllVideos.next();
  114.  
  115.             TextConstruct oneVideoTitle = oneVideo.getTitle();
  116.  
  117.             String oneVideoTitleText = oneVideoTitle.getPlainText();
  118.  
  119.             YouTubeMediaGroup mediagroup = oneVideo.getMediaGroup();
  120.  
  121.             MediaThumbnail[] thumbnails = (MediaThumbnail[]) mediagroup.getThumbnails().toArray();
  122.  
  123.             //Print titles of all videos:
  124.  
  125.             Titles[s] = oneVideoTitleText.toString();
  126.  
  127.             Images[s] = thumbnails[0].getUrl();
  128.  
  129.         }
  130.  
  131.  
  132.  
  133.         listAdapter = new MyListAdapter(this,Titles, Images);
  134.  
  135.         view = new ListView(this);
  136.  
  137.         view.setId(android.R.id.list);
  138.  
  139.      view.setBackgroundColor(Color.BLACK);
  140.  
  141.      view.setAdapter(listAdapter);
  142.  
  143.      
  144.  
  145.      setContentView(view);  
  146.  
  147.         } catch (MalformedURLException e) {
  148.  
  149.         } catch (IOException e) {
  150.  
  151.         } catch (ServiceException e) {
  152.  
  153.         }
  154.  
  155.     }
  156.  
  157.  
  158.  
  159.     class MyListAdapter extends BaseAdapter
  160.  
  161.     {
  162.  
  163.      private String[] mDialogue;
  164.  
  165.      private Bitmap[] mIcon;
  166.  
  167.    
  168.  
  169.      public MyListAdapter(Context context, String[] str, String[] image) {
  170.  
  171.             mContext = context;
  172.  
  173.             mDialogue = str;
  174.  
  175.             mIcon = getIconBitmaps(image) ;
  176.  
  177.         }
  178.  
  179.  
  180.  
  181.         private Bitmap[] getIconBitmaps(String[] Items){
  182.  
  183.                 URL url;
  184.  
  185.                 Bitmap[] result = new Bitmap[Items.length];
  186.  
  187.                 for(int n=0; n<Items.length; n++){
  188.  
  189.                         try {
  190.  
  191.                                 url = new URL(Items[n]);
  192.  
  193.                   result[n] = BitmapFactory.decodeStream(url.openStream());
  194.  
  195.                         } catch (MalformedURLException me) {
  196.  
  197.                         } catch (IOException e) {
  198.  
  199.                         }
  200.  
  201.            }
  202.  
  203.                 return result;
  204.  
  205.         }
  206.  
  207.      
  208.  
  209.         public int getCount() {
  210.  
  211.             return mTitles.length;
  212.  
  213.         }
  214.  
  215.        
  216.  
  217.         public Object getItem(int position) {
  218.  
  219.             return position;
  220.  
  221.         }
  222.  
  223.  
  224.  
  225.         public long getItemId(int position) {
  226.  
  227.             return position;
  228.  
  229.         }
  230.  
  231.  
  232.  
  233.         public View getView(int position, View convertView, ViewGroup parent) {
  234.  
  235.             MyView sv;
  236.  
  237.             if (convertView == null) {
  238.  
  239.                 sv = new MyView(mContext, mTitles[position], mIcon[position],
  240.  
  241.                         mDialogue[position]);
  242.  
  243.             } else {
  244.  
  245.                 sv = (MyView) convertView;
  246.  
  247.                 sv.setTitle(mTitles[position]);
  248.  
  249.                 sv.setDialogue(mDialogue[position]);
  250.  
  251.             }
  252.  
  253.             return sv;
  254.  
  255.         }
  256.  
  257.  
  258.  
  259.        
  260.  
  261.         private Context mContext;
  262.  
  263.  
  264.  
  265.        
  266.  
  267.         private String[] mTitles =
  268.  
  269.         {
  270.  
  271.                 "Vid One:",  
  272.  
  273.                 "Vid Two:",
  274.  
  275.                 "Vid Three:",      
  276.  
  277.                 "Vid Four:",
  278.  
  279.                 "Vid Five:",
  280.  
  281.                 "Vid Six:",  
  282.  
  283.                 "Vid Seven:",
  284.  
  285.                 "Vid Eight:"
  286.  
  287.         };
  288.  
  289.  
  290.  
  291.     class MyView extends LinearLayout
  292.  
  293.     {
  294.  
  295.         public MyView(Context context, String title, Bitmap Image, String words)
  296.  
  297.         {
  298.  
  299.             super(context);
  300.  
  301.  
  302.  
  303.             this.setOrientation(VERTICAL);
  304.  
  305.             mIcon = new ImageView(context);
  306.  
  307.             mIcon.setImageBitmap(Image);
  308.  
  309.             addView(mIcon,  new LinearLayout.LayoutParams(
  310.  
  311.                     LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
  312.  
  313.            
  314.  
  315.             mTitle = new TextView(context);
  316.  
  317.             mTitle.setText(title);
  318.  
  319.             addView(mTitle, new LinearLayout.LayoutParams(
  320.  
  321.                     LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
  322.  
  323.  
  324.  
  325.             mDialogue = new TextView(context);
  326.  
  327.             mDialogue.setText(words);
  328.  
  329.             addView(mDialogue, new LinearLayout.LayoutParams(
  330.  
  331.                     LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
  332.  
  333.         }
  334.  
  335.  
  336.  
  337.        
  338.  
  339.         public void setTitle(String title) {
  340.  
  341.             mTitle.setText(title);
  342.  
  343.         }
  344.  
  345.  
  346.  
  347.        
  348.  
  349.         public void setDialogue(String words) {
  350.  
  351.             mDialogue.setText(words);
  352.  
  353.         }
  354.  
  355.         public void setIcon(Drawable bullet) {
  356.  
  357.             mIcon.setImageDrawable(bullet);
  358.  
  359.        }
  360.  
  361.         private TextView mTitle;
  362.  
  363.         private TextView mDialogue;
  364.  
  365.         private ImageView mIcon;
  366.  
  367.     }
  368.  
  369.     }
Parsed in 0.056 seconds, using GeSHi 1.0.8.4

}
euromaster
Junior Developer
Junior Developer
 
Posts: 14
Joined: Mon Jun 16, 2008 10:37 pm

Top
Previous

Return to Other Coding-Problems

Who is online

Users browsing this forum: No registered users and 14 guests