Changeset 3bb445f


Ignore:
Timestamp:
Sep 5, 2005 1:26:19 AM (15 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
61b8e35
Parents:
59a80375
git-author:
jrandom <jrandom> (09/05/05 01:26:19)
git-committer:
zzz <zzz@…> (09/05/05 01:26:19)
Message:

better filtering/ignoring
ui improvements (per isamoor's suggestions)
more petname integration

Location:
apps/syndie
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • apps/syndie/java/src/net/i2p/syndie/data/ArchiveIndex.java

    r59a80375 r3bb445f  
    118118        return tags;
    119119    }
     120    public int getBlogEntryCount(Hash blog) {
     121        Set uris = new HashSet(64);
     122        for (int i = 0; i < _blogs.size(); i++) {
     123            BlogSummary summary = (BlogSummary)_blogs.get(i);
     124            if (summary.blog.equals(blog)) {
     125                uris.addAll(summary.entries);
     126                //for (int j = 0; j < summary.entries.size(); j++) {
     127                //    EntrySummary entry = (EntrySummary)summary.entries.get(j);
     128                //    uris.add(entry.entry);
     129                //}
     130            }
     131        }
     132        return uris.size();
     133    }
    120134   
    121135    /** how many 'new' blogs are listed */
     
    380394            entry = uri;
    381395        }
     396        public int hashCode() {
     397            return entry.hashCode();
     398        }
     399        public boolean equals(Object obj) {
     400            if ( (obj instanceof EntrySummary) && (((EntrySummary)obj).entry.equals(entry)) )
     401                return true;
     402            return false;
     403        }
    382404    }
    383405   
  • apps/syndie/java/src/net/i2p/syndie/web/ArchiveViewerBean.java

    r59a80375 r3bb445f  
    119119        for (int i = 0; i < index.getNewestBlogCount(); i++) {
    120120            Hash cur = index.getNewestBlog(i);
     121            String knownName = user.getPetNameDB().getNameByLocation(cur.toBase64());
     122            PetName pn = null;
     123            if (knownName != null) {
     124                pn = user.getPetNameDB().get(knownName);
     125                knownName = pn.getName();
     126            }
     127            if ( (pn != null) && (pn.isMember("Ignore")) )
     128                continue;
    121129            String blog = Base64.encode(cur.getData());
    122130            out.write("<option value=\"blog://" + blog + "\">");
    123131            out.write("New blog: ");
    124132            BlogInfo info = archive.getBlogInfo(cur);
    125             String name = info.getProperty(BlogInfo.NAME);
     133            String name = knownName;
     134            if ( (name == null) && (info != null) )
     135                name = info.getProperty(BlogInfo.NAME);
    126136            if (name != null)
    127137                name = HTMLRenderer.sanitizeString(name);
     
    132142        }
    133143       
    134         List allTags = new ArrayList();
     144        ////List allTags = new ArrayList();
    135145        // perhaps sort this by name (even though it isnt unique...)
    136146        Set blogs = index.getUniqueBlogs();
    137147        for (Iterator iter = blogs.iterator(); iter.hasNext(); ) {
    138148            Hash cur = (Hash)iter.next();
     149            String knownName = user.getPetNameDB().getNameByLocation(cur.toBase64());
     150            PetName pn = null;
     151            if (knownName != null) {
     152                pn = user.getPetNameDB().get(knownName);
     153                knownName = pn.getName();
     154            }
     155            if ( (pn != null) && (pn.isMember("Ignore")) )
     156                continue;
     157         
    139158            String blog = Base64.encode(cur.getData());
    140159            out.write("<option value=\"blog://");
     
    142161            out.write("\">");
    143162            BlogInfo info = archive.getBlogInfo(cur);
    144             String name = info.getProperty(BlogInfo.NAME);
     163            String name = knownName;
     164            if ( (name == null) && (info != null) )
     165                name = info.getProperty(BlogInfo.NAME);
    145166            if (name != null)
    146167                name = HTMLRenderer.sanitizeString(name);
     
    148169                name = Base64.encode(cur.getData());
    149170            out.write(name);
    150             out.write("- all posts</option>\n");
     171            if (info != null) {
     172                int howMany = index.getBlogEntryCount(info.getKey().calculateHash());
     173                if (howMany == 1)
     174                    out.write(" [1 post]");
     175                else
     176                    out.write(" [" + howMany + " posts]");
     177            }
     178            out.write("</option>\n");
    151179           
     180            /*
    152181            List tags = index.getBlogTags(cur);
    153182            for (int j = 0; j < tags.size(); j++) {
     
    191220                out.write("&quot;</option>\n");
    192221            }
    193         }
     222             */
     223        }
     224        /*
    194225        for (int i = 0; i < allTags.size(); i++) {
    195226            String tag = (String)allTags.get(i);
     
    200231            out.write("&quot;</option>\n");
    201232        }
     233         */
    202234        out.write("</select>");
    203235       
     
    225257        Hash blog = null;
    226258        if (blogStr != null) blog = new Hash(Base64.decode(blogStr));
     259        if ( (blog != null) && (blog.getData() == null) ) blog = null;
    227260        String tag = getString(parameters, PARAM_TAG);
    228261        if (tag != null) tag = DataHelper.getUTF8(Base64.decode(tag));
    229262       
    230263        long entryId = -1;
    231         if (blogStr != null) {
     264        if (blog != null) {
    232265            String entryIdStr = getString(parameters, PARAM_ENTRY);
    233266            try {
     
    286319                    String blogStr = selector.substring(SEL_BLOG.length());
    287320                    System.out.println("Selector [" + selector + "] blogString: [" + blogStr + "]");
    288                     blog = new Hash(Base64.decode(blogStr));
     321                    byte h[] = Base64.decode(blogStr);
     322                    if (h != null)
     323                        blog = new Hash(h);
     324                    else
     325                        System.out.println("blog string does not decode properly: [" + blogStr + "]");
    289326                } else if (selector.startsWith(SEL_BLOGTAG)) {
    290327                    int tagStart = selector.lastIndexOf('/');
    291328                    String blogStr = selector.substring(SEL_BLOGTAG.length(), tagStart);
    292329                    blog = new Hash(Base64.decode(blogStr));
     330                    if (blog.getData() == null) {
     331                        System.out.println("Blog string [" + blogStr + "] does not decode");
     332                        blog = null;
     333                        return;
     334                    }
    293335                    tag = selector.substring(tagStart+1);
    294336                    String origTag = tag;
     
    337379                    try {
    338380                        entry = Long.parseLong(entryStr);
    339                         blog = new Hash(Base64.decode(blogStr));
     381                        Hash h = new Hash(Base64.decode(blogStr));
     382                        if (h.getData() != null)
     383                            blog = h;
     384                        else
     385                            System.out.println("Blog does not decode [" + blogStr + "]");
    340386                        System.out.println("Selector [" + selector + "] blogString: [" + blogStr + "] entry: [" + entry + "]");
    341387                    } catch (NumberFormatException nfe) {}
     
    445491   
    446492    private static List pickEntryURIs(User user, ArchiveIndex index, Hash blog, String tag, long entryId, String group) {
     493        if ( (blog != null) && ( (blog.getData() == null) || (blog.getData().length != Hash.HASH_LENGTH) ) )
     494            blog = null;
    447495        List rv = new ArrayList(16);
    448496        if ( (blog != null) && (entryId >= 0) ) {
  • apps/syndie/java/src/net/i2p/syndie/web/RemoteArchiveBean.java

    r59a80375 r3bb445f  
    5252    }
    5353   
     54    private boolean ignoreBlog(User user, Hash blog) {
     55        PetNameDB db = user.getPetNameDB();
     56        String name = db.getNameByLocation(blog.toBase64());
     57        return ( (name != null) && (db.get(name).isMember("Ignore")) );
     58    }
     59   
    5460    public void fetchMetadata(User user, Map parameters) {
    5561        String meta = ArchiveViewerBean.getString(parameters, "blog");
     
    6268                Hash blog = (Hash)iter.next();
    6369                if (!localBlogs.contains(blog)) {
     70                    if (!ignoreBlog(user, blog))
     71                        blogs.add(blog);
     72                }
     73            }
     74        } else {
     75            byte h[] = Base64.decode(meta.trim());
     76            if (h != null) {
     77                Hash blog = new Hash(h);
     78                if (!ignoreBlog(user, blog))
    6479                    blogs.add(blog);
    65                 }
    66             }
    67         } else {
    68             blogs.add(new Hash(Base64.decode(meta.trim())));
     80            }
    6981        }
    7082        List urls = new ArrayList(blogs.size());
     
    97109        List tmpFiles = new ArrayList(entries.length);
    98110        for (int i = 0; i < entries.length; i++) {
    99             urls.add(buildEntryURL(new BlogURI(entries[i])));
     111            BlogURI uri = new BlogURI(entries[i]);
     112            if (ignoreBlog(user, uri.getKeyHash()))
     113                continue;
     114            urls.add(buildEntryURL(uri));
    100115            try {
    101116                tmpFiles.add(File.createTempFile("fetchBlog", ".txt", BlogManager.instance().getTempDir()));
     
    119134            for (Iterator iter = _remoteIndex.getUniqueBlogs().iterator(); iter.hasNext(); ) {
    120135                Hash blog = (Hash)iter.next();
     136                if (ignoreBlog(user, blog))
     137                    continue;
     138               
    121139                _remoteIndex.selectMatchesOrderByEntryId(matches, blog, null);
    122140                for (int i = 0; i < matches.size(); i++) {
     
    178196        for (Iterator iter = _remoteIndex.getUniqueBlogs().iterator(); iter.hasNext(); ) {
    179197            Hash blog = (Hash)iter.next();
     198            if (ignoreBlog(user, blog))
     199                continue;
    180200            _remoteIndex.selectMatchesOrderByEntryId(entries, blog, null);
    181201            for (int i = 0; i < entries.size(); i++) {
     
    487507        for (Iterator iter = remoteBlogs.iterator(); iter.hasNext(); ) {
    488508            Hash blog = (Hash)iter.next();
     509            if (ignoreBlog(user, blog))
     510                continue;
    489511            if (!localBlogs.contains(blog)) {
    490512                buf.append("<option value=\"" + blog.toBase64() + "\">" + blog.toBase64() + "</option>\n");
     
    503525        for (Iterator iter = remoteBlogs.iterator(); iter.hasNext(); ) {
    504526            Hash blog = (Hash)iter.next();
     527            if (ignoreBlog(user, blog))
     528                continue;
    505529            buf.setLength(0);
    506530            int shownEntries = 0;
  • apps/syndie/jsp/addresses.jsp

    r59a80375 r3bb445f  
    2929          cur.setLocation(request.getParameter("location"));
    3030          cur.setGroups(request.getParameter("groups"));
     31          names.remove(oldPetname);
     32          names.set(cur.getName(), cur);
    3133          names.store(user.getAddressbookLocation());
    3234          %><b>Address updated</b><%
Note: See TracChangeset for help on using the changeset viewer.