Ok, here is the fixed FilterDeb.cs I'll wait to hear from you on the UI stuff.
Cheers,
Kevin Kubasik
On 4/18/06, Kevin Kubasik <[EMAIL PROTECTED]> wrote:
> <SNIP>
> > > //
> <SNIP>
> > > Description = StringFu.FileLengthToString( Convert.ToInt64 (
> > > hit["fixme:size"]+"00"));
> >
> > First, it looks like your search and replace to add spaces was
> > backwards. :) But more importantly, what's with adding two zeros to the
> > end of a numeric string? If the size is off by 100x, that's a bug, and
> > we shouldn't be working around it.
>
> Ok, Its just how dpkg-deb outputs it (in kb's)
> >
> > > if(my_hit.FileInfo.Extension == ".rpm" && my_hit["dc:description"] !=
> > > null){
> > > string[] temp= new string[my_query.Text.Count];
> > > my_query.Text.CopyTo(temp,0);
> > >
> > > details.AddLabelPair("Description:",
> > > SnippetFu.GetSnippet(temp , new
> > > StringReader(my_hit["dc:description"])),3,1);
> > > return details;
> > > }
> >
> > I think what you're trying to do here is ellipsize the text of the
> > description, which might be quite long, correct? If so, this is the
> > wrong way to do it, because it calls into the daemon's private
> > assemblies. (A lot of stuff marked "public" should probably be marked
> > "internal" in there.) What you want is to create a label and then call
> > beagle-search's WidgetFu.EllipsizeLabel().
> >
>
> Forgive my ignorance, but what exactly is a Ellipsizing? I just wanted
> to get only the parts of the description that contained the words
> searched for.
>
> The whitespace changes are easy, and i'll take care of those. Do we
> just wanna scrap the UI tile?
>
> --
> Cheers,
> Kevin Kubasik
> http://blog.kubasik.net/
>
--
Cheers,
Kevin Kubasik
http://blog.kubasik.net/
//
// FilterDeb.cs: Extracts basic information from .deb archives
//
// Written By: Kevin Kubasik <[EMAIL PROTECTED]>
//
using System;
using System.IO;
using System.Diagnostics;
using Beagle.Daemon;
using Beagle.Util;
namespace Beagle.Filters {
public class FilterDeb : Beagle.Daemon.Filter {
public FilterDeb (){
AddSupportedFlavor ( FilterFlavor.NewFromMimeType
("application/x-deb"));
SnippetMode = true;
}
protected override void DoPullProperties (){
SafeProcess pc = new SafeProcess ();
pc.Arguments = new string [] { "dpkg-deb", "-I",
FileInfo.FullName};
pc.RedirectStandardOutput = true;
try {
pc.Start ();
} catch (SafeProcessException e) {
Log.Warn ( e.Message );
Error ();
return;
}
StreamReader pout = new StreamReader (
pc.StandardOutput );
string str = null;
string[] tokens = null;
string strMetaTag = null;
char[] splits = { ',' , '|' };
string[] list = null;
while ((str = pout.ReadLine ()) != null) {
strMetaTag = null;
tokens = str.Split ( ':' );
if ( tokens.Length <= 1 )
continue;
switch ( tokens[0].Trim() ) {
case "Package":
AddProp ( "dc:title" , tokens[1] );
break;
case "Maintainer":
list = tokens[1].Split( '<' );
AddProp ( "dc:author" , list[0] );
AddProp ( "fixme:author_email" ,
list[1].Replace ( '>' , ' ' ));
break;
case "Version":
AddUnsearched ( "fixme:version" ,
tokens[1] );
break;
case "Section":
AddUnsearched ( "fixme:section" ,
tokens[1] );
break;
case "Architecture":
AddUnsearched ( "fixme:arch" ,
tokens[1] );
break;
case "Depends":
list = tokens[1].Split( splits );
foreach ( string s in list )
AddUnsearched ( "fixme:dep" , s
);
break;
case "Recommends":
list = tokens[1].Split (splits);
foreach(string s in list)
AddUnsearched
("fixme:recommend",s);
break;
case "Conflicts":
list = tokens[1].Split (splits);
foreach(string s in list)
AddUnsearched ("fixme:conflict"
, s);
break;
case "Replaces":
list = tokens[1].Split (splits);
foreach(string s in list)
AddUnsearched ("fixme:replace"
, s);
break;
case "Provides":
list = tokens[1].Split (splits);
foreach(string s in list)
AddUnsearched ("fixme:provide"
, s);
break;
case "Installed-Size":
AddUnsearched ("fixme:size" , tokens[1]
+ "00" );
break;
case "Description":
AppendText (tokens[1]);
AppendStructuralBreak ();
while ((str = pout.ReadLine ()) !=
null) {
if(str.Trim() == ".")
AppendStructuralBreak
();
else
AppendText (str);
}
break;
}
}
pout.Close ();
pc.Close ();
Finished ();
}
private void AddProp (string strMetaTag, string prop)
{
AddProperty (Beagle.Property.New (strMetaTag, prop.Trim()));
}
private void AddKeyword (string strMetaTag, string word)
{
AddProperty (Beagle.Property.NewKeyword (strMetaTag,
word.Trim()));
}
private void AddUnsearched (string strMetaTag, string val)
{
AddProperty (Beagle.Property.NewUnsearched (strMetaTag,
val.Trim()));
}
}
}
_______________________________________________
Dashboard-hackers mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/dashboard-hackers