Okay, folks... sorry for the delay in getting this sent out.

Please try the attached comx.xml file (replace the one currently in Program Files\Quick Search Deskbar\searches\ ) and let me know how it works for you (a reply on this list with "it works" is sufficient). If something isn't working quite right, obviously, let me know that as well. ;)

If things seem to be in order, I'll ask Monty or Kim to commit it to trunk...

09Nov08 changes:
        o  www.comics.com restructured their site.  changed default behavior to 
accommodate.
        o  several comics no longer offered at comics.com.  removed from the 
list
        o  "Dilbert" comic now hosted at dilbert.com.  added new site, 
'dilbert' to accommodate.
        o  "Peanuts" comic no longer requires special handling from comics.com. 
 changed back to 'standard' handling method
        o  added "Boy on a Stick and Slither", "Brevity", and "Cow & Boy" 
comics.
        o  Please let me know if there are other comics.com-hosted comic strips 
you'd like added



brian wrote:
I was able to fix the problems with comics.com on my local (php) program. I'll make the appropriate changes to comx.xml and upload it here for evaluation/testing later on this afternoon or evening (I don't have a Windows computer here to test it on). If all is well, we can get it committed upstream.


Charlie Russel wrote:
Tom - there appear to be a bunch of problems with the comx search right now, I suspect at least in part because comics.com is broken.

Charlie.
http://msmvps.com/blogs/xperts64
http://mvp.support.microsoft.com/profile/charlie.russel

----- Original Message ----- From: <[EMAIL PROTECTED]>
To: <dqsd-users@lists.sourceforge.net>
Sent: Friday, October 31, 2008 4:22 AM
Subject: [DQSD-Users] comx /dilbert access denied


comx /dilbert is giving an access denied message

Tom.



<search function="comx">
    <name>Comic Strip</name>
    <description>Displays comic strip(s) in a single window.
    <table class="helpboxDescTable">
    <tr><td colspan="2"><div class="helpboxDescLabels">Note:</div> All the comic switches can be abbreviated and multiple switches can be specified at one time.</td></tr>
    <tr><td>--</td></tr><tr><td><div class="helpboxDescLabels">Switches:</div></td></tr>
    <tr><td>9 Chickweed Lane</td><td>/9chickweed</td></tr>
    <tr><td>A Case in Point</td><td>/caseinpoint</td></tr>
    <tr><td>Adam at Home</td><td>/adamathome</td></tr>
    <tr><td>Agnes</td><td>/agnes</td></tr>
    <tr><td>Alex</td><td>/alex</td></tr>
    <tr><td>Alley Oop</td><td>/alleyoop</td></tr>
    <tr><td>Andy Capp</td><td>/andycapp</td></tr>
    <tr><td>Animal Crackers</td><td>/animalcrackers</td></tr>
    <tr><td>Annie</td><td>/annie</td></tr>
    <tr><td>Arlo and Janis</td><td>/arloandjanis</td></tr>
    <tr><td>B.C.</td><td>/bc</td></tr>
    <tr><td>Baldo</td><td>/baldo</td></tr>
    <tr><td>Ballard Street</td><td>/ballardstreet</td></tr>
    <tr><td>Ben</td><td>/ben</td></tr>
    <tr><td>Betty</td><td>/betty</td></tr>
    <tr><td>Big Nate</td><td>/bignate</td></tr>
    <tr><td>Big Picture</td><td>/bigpicture</td></tr>
    <tr><td>Big Top</td><td>/bigtop</td></tr>
    <tr><td>Boy on a Stick and Slither</td><td>/boyonastickandslither</td></tr>
    <tr><td>Boondocks</td><td>/boondocks</td></tr>
    <tr><td>Bound and Gagged</td><td>/boundandgagged</td></tr>
    <tr><td>Brenda Starr</td><td>/brendastarr</td></tr>
    <tr><td>Brevity</td><td>/brevity</td></tr>
    <tr><td>Broomhilda</td><td>/broomhilda</td></tr>
    <tr><td>Calvin and Hobbes</td><td>/calvinandhobbes</td></tr>
    <tr><td>Cats With Hands</td><td>/catswithhands</td></tr>
    <tr><td>Candorville</td><td>/candorville</td></tr>
    <tr><td>Cathy</td><td>/cathy</td></tr>
    <tr><td>Cheap Thrills</td><td>/cheapthrills</td></tr>
    <tr><td>Cleats</td><td>/cleats</td></tr>
    <tr><td>Close to Home</td><td>/closetohome</td></tr>
    <tr><td>Committed</td><td>/committed</td></tr>
    <tr><td>Cornered</td><td>/cornered</td></tr>
    <tr><td>Cow and Boy</td><td>/cowandboy</td></tr>
    <tr><td>Dick Tracy</td><td>/dicktracy</td></tr>
    <tr><td>Dilbert</td><td>/dilbert</td></tr>
    <tr><td>Dinosaur Comics</td><td>/dinosaurcomics</td></tr>
    <tr><td>Doonesbury</td><td>/doonesbury</td></tr>
    <tr><td>Drabble</td><td>/drabble</td></tr>
    <tr><td>Dr. Fun</td><td>/drfun</td></tr>
    <tr><td>Duplex</td><td>/duplex</td></tr>
    <tr><td>Fat Cats</td><td>/fatcats</td></tr>
    <tr><td>Ferdnand</td><td>/ferdnand</td></tr>
    <tr><td>Flight Deck</td><td>/flightdeck</td></tr>
    <tr><td>Flo and Friends</td><td>/floandfriends</td></tr>
    <tr><td>For Better or for Worse</td><td>/forbetterorforworse</td></tr>
    <tr><td>FoxTrot</td><td>/foxtrot</td></tr>
    <tr><td>Frank and Ernest</td><td>/frankandernest</td></tr>
    <tr><td>Frazz</td><td>/frazz</td></tr>
    <tr><td>Fred Basset</td><td>/fredbasset</td></tr>
    <tr><td>Fusco Brothers</td><td>/fuscobrothers</td></tr>
    <tr><td>Garfield</td><td>/garfield</td></tr>
    <tr><td>Gasoline Alley</td><td>/gasolinealley</td></tr>
    <tr><td>Geech</td><td>/geech</td></tr>
    <tr><td>Get Fuzzy</td><td>/getfuzzy</td></tr>
    <tr><td>Graffiti</td><td>/graffiti</td></tr>
    <tr><td>Grand Avenue</td><td>/grandavenue</td></tr>
    <tr><td>Heart of the City</td><td>/heartofthecity</td></tr>
    <tr><td>Heathcliff</td><td>/heathcliff</td></tr>
    <tr><td>Helen of the Internet</td><td>/helenoftheinternet</td></tr>
    <tr><td>Herb and Jamaal</td><td>/herbandjamaal</td></tr>
    <tr><td>Herman</td><td>/herman</td></tr>
    <tr><td>Housebroken</td><td>/housebroken</td></tr>
    <tr><td>In the Bleachers</td><td>/inthebleachers</td></tr>
    <tr><td>Janes World</td><td>/janesworld</td></tr>
    <tr><td>Jump Start</td><td>/jumpstart</td></tr>
    <tr><td>Kit N Carlyle</td><td>/kitncarlyle</td></tr>
    <tr><td>Kudzu</td><td>/kudzu</td></tr>
    <tr><td>La Cucaracha</td><td>/lacucaracha</td></tr>
    <tr><td>Liberty Meadows</td><td>/libertymeadows</td></tr>
    <tr><td>Lil Abner</td><td>/lilabner</td></tr>
    <tr><td>Lola</td><td>/lola</td></tr>
    <tr><td>Loose Parts</td><td>/looseparts</td></tr>
    <tr><td>Lost Sheep</td><td>/lostsheep</td></tr>
    <tr><td>Luann</td><td>/luann</td></tr>
    <tr><td>Lucky Cow</td><td>/luckycow</td></tr>
    <tr><td>Marmaduke</td><td>/marmaduke</td></tr>
    <tr><td>Meehan Streak</td><td>/meehanstreak</td></tr>
    <tr><td>Meg!</td><td>/meg</td></tr>
    <tr><td>Mister Boffo</td><td>/misterboffo</td></tr>
    <tr><td>Mixed Media</td><td>/mixedmedia</td></tr>
    <tr><td>Moderately Confused</td><td>/moderatelyconfused</td></tr>
    <tr><td>Momma</td><td>/momma</td></tr>
    <tr><td>Monty</td><td>/monty</td></tr>
    <tr><td>Motley</td><td>/motley</td></tr>
    <tr><td>Mullets</td><td>/mullets</td></tr>
    <tr><td>Nancy</td><td>/nancy</td></tr>
    <tr><td>Natural Selection</td><td>/naturalselection</td></tr>
    <tr><td>Nonsequitur</td><td>/nonsequitur</td></tr>
    <tr><td>Off The Mark</td><td>/offthemark</td></tr>
    <tr><td>One Big Happy Classics</td><td>/onebighappyclassics</td></tr>
    <tr><td>Over the Hedge</td><td>/overthehedge</td></tr>
    <tr><td>Overboard</td><td>/overboard</td></tr>
    <tr><td>PC and Pixel</td><td>/pcandpixel</td></tr>
    <tr><td>Peanuts</td><td>/peanuts</td></tr>
    <tr><td>Pearls Before Swine</td><td>/pearlsbeforeswine</td></tr>
    <tr><td>Pickles</td><td>/pickles</td></tr>
    <tr><td>Pluggers</td><td>/pluggers</td></tr>
    <tr><td>Pooch Cafe</td><td>/poochcafe</td></tr>
    <tr><td>Pop Culture</td><td>/popculture</td></tr>
    <tr><td>Preteena</td><td>/preteena</td></tr>
    <tr><td>Raising Duncan</td><td>/raisingduncan</td></tr>
    <tr><td>Real Life Adventures</td><td>/reallife</td></tr>
    <tr><td>Reality Check</td><td>/realitycheck</td></tr>
    <tr><td>Red and Rover</td><td>/redandrover</td></tr>
    <tr><td>Reynolds Unwrapped</td><td>/reynoldsunwrapped</td></tr>
    <tr><td>Ripleys Believe It or Not</td><td>/ripleysbelieveitornot</td></tr>
    <tr><td>Rose Is Rose</td><td>/roseisrose</td></tr>
    <tr><td>Rubes</td><td>/rubes</td></tr>
    <tr><td>Rudy Park</td><td>/rudypark</td></tr>
    <tr><td>Shirley And Son</td><td>/shirleyandson</td></tr>
    <tr><td>Shoe</td><td>/shoe</td></tr>
    <tr><td>Soup To Nutz</td><td>/souptonutz</td></tr>
    <tr><td>Speed Bump</td><td>/speedbump</td></tr>
    <tr><td>Spot The Frog</td><td>/spotthefrog</td></tr>
    <tr><td>Stone Soup</td><td>/stonesoup</td></tr>
    <tr><td>Strange Brew</td><td>/strangebrew</td></tr>
    <tr><td>Tank Mcnamara</td><td>/tankmcnamara</td></tr>
    <tr><td>Tarzan</td><td>/tarzan</td></tr>
    <tr><td>Thats Life</td><td>/thatslife</td></tr>
    <tr><td>The 5th Wave</td><td>/5thwave</td></tr>
    <tr><td>The Born Loser</td><td>/bornloser</td></tr>
    <tr><td>The Buckets</td><td>/buckets</td></tr>
    <tr><td>The Joy of Tech</td><td>/joyoftech</td></tr>
    <tr><td>The Other Coast</td><td>/othercoast</td></tr>
    <tr><td>The Sunshine Club</td><td>/sunshineclub</td></tr>
    <tr><td>User Friendly</td><td>/userfriendly</td></tr>
    <tr><td>Willy n Ethel</td><td>/willynethel</td></tr>
    <tr><td>Wizard of Id</td><td>/wizardofid</td></tr>
    <tr><td>Working Daze</td><td>/workingdaze</td></tr>
    <tr><td>Working It Out</td><td>/workingitout</td></tr>
    <tr><td>xkcd</td><td>/xkcd</td></tr>
    <tr><td>Ziggy</td><td>/ziggy</td></tr>
    <tr><td>Zits</td><td>/zits</td></tr>
    <tr><td colspan="2"><div class="helpboxDescLabels">Editorials (not published every day):</div></td></tr>
    <tr><td>All editorials for today</td><td>/editorials</td></tr>
    <tr><td>Animated Oliphant</td><td>/animatedoliphant</td></tr>
    <tr><td>Ann Telneas</td><td>/anntelneas</td></tr>
    <tr><td>Barbara Brandon</td><td>/barbarabrandon</td></tr>
    <tr><td>Ben Sargent</td><td>/bensargent</td></tr>
    <tr><td>Bill Deore</td><td>/billdeore</td></tr>
    <tr><td>Chan Lowe</td><td>/chanlowe</td></tr>
    <tr><td>Chip Bok</td><td>/chipbok</td></tr>
    <tr><td>Chuck Asay</td><td>/chuckasay</td></tr>
    <tr><td>Dana Summers</td><td>/danasummers</td></tr>
    <tr><td>Dana Wasserman</td><td>/danawasserman</td></tr>
    <tr><td>David Horsey</td><td>/davidhorsey</td></tr>
    <tr><td>Dick Locher</td><td>/dicklocher</td></tr>
    <tr><td>Dick Wright</td><td>/dickwright</td></tr>
    <tr><td>Don Wright</td><td>/donwright</td></tr>
    <tr><td>Doug Marlette</td><td>/dougmarlette</td></tr>
    <tr><td>Drew Sheneman</td><td>/drewsheneman</td></tr>
    <tr><td>Faces In The News</td><td>/facesinthenews</td></tr>
    <tr><td>Gary Varvel</td><td>/garyvarvel</td></tr>
    <tr><td>Glenn McCoy</td><td>/glennmccoy</td></tr>
    <tr><td>Jack Higgins</td><td>/jackhiggins</td></tr>
    <tr><td>Jack Ohman</td><td>/jackohman</td></tr>
    <tr><td>Jeff Danziger</td><td>/jeffdanziger</td></tr>
    <tr><td>Lalo Alcaraz</td><td>/laloalcaraz</td></tr>
    <tr><td>Matt Davies</td><td>/mattdavies</td></tr>
    <tr><td>Mike Luckovich</td><td>/mikeluckovich</td></tr>
    <tr><td>Nick Anderson</td><td>/nickanderson</td></tr>
    <tr><td>Pat Oliphant</td><td>/patoliphant</td></tr>
    <tr><td>Paul Conrad</td><td>/paulconrad</td></tr>
    <tr><td>Paul Szep</td><td>/paulszep</td></tr>
    <tr><td>Signe Wilkinson</td><td>/signewilkinson</td></tr>
    <tr><td>Steve Sack</td><td>/stevesack</td></tr>
    <tr><td>Stuart Carlson</td><td>/stuartcarlson</td></tr>
    <tr><td>Ted Rall</td><td>/tedrall</td></tr>
    <tr><td>Tom Toles</td><td>/tomtoles</td></tr>
    <tr><td>Tony Auth</td><td>/tonyauth</td></tr>
    <tr><td>Walt Handelsman</td><td>/walthandelsman</td></tr>
    <tr><td>Wayne Stayskal</td><td>/waynestayskal</td></tr>
    <tr><td colspan="2"><div class="helpboxDescLabels">Extra Switch:</div></td></tr>
    <tr><td>comx /popup</td><td>Open the comics in a popup window instead of the default browser.</td></tr>
    <tr><td colspan="2"><div class="helpboxDescLabels">Examples:</div></td></tr>
    <tr><td>comx /wiz   </td><td>(Wizard of Id)</td></tr>
    <tr><td>comx /workingit  </td><td>(Working it Out)</td></tr>
    <tr><td>comx /rip   </td><td>(Ripleys Believe it or Not)</td></tr>
    <tr><td>comx /wiz /workingit /rip</td><td>(Opens all three)</td></tr>
    <tr><td>comx /wiz /workingit /rip /popup</td><td>(Opens all three) in a popup window</td></tr>
    <tr><td>comx /dil /editorials</td><td>Opens Dilbert and all editorial cartoons for today</td></tr>
    </table>
    </description>
    <category>Fun</category>
    <script><![CDATA[

  function comx(q){
     if( q == "" || q == "?"){
        qsfind("comx /function");
        return false;
     }
     var comxoutfile = DQSDLauncher.AppDataDirectory + '\\comx.html';
     var pagebody="<html>\n<head>\n<style>h4 {color:#900000;margin:0;}img {margin-bottom:16px;}</style>\n</head>\n<body>\n";
     var fileout=1;
     //if the fileout switch was used, set the fileout flag to true and remove it from the list of comics to fetch
     if (q.search("/popup") >= 0) {
        fileout=0;
        q = q.replace("/popup", "");
     }

     var editorial_switches = new Array(
     "animatedoliphant","anntelneas","barbarabrandon","bensargent", "billdeore","chanlowe",
     "chipbok","chuckasay","danasummers","danawasserman","davidhorsey","dicklocher",
     "dickwright","donwright","dougmarlette","drewsheneman","facesinthenews","garyvarvel",
     "glennmccoy","jackhiggins","jackohman","jeffdanziger","laloalcaraz", "mattdavies",
     "mikeluckovich","nickanderson","patoliphant","paulconrad","paulszep","signewilkinson",
     "stevesack","stuartcarlson","tedrall","tomtoles","tonyauth","walthandelsman","waynestayskal"
     );

     if (q.search("/editorials") >= 0) {
        q = q.replace("/editorials", "/" + editorial_switches.join(" /"));
     }

     var args = parseArgs(q, "5thwave,9chickweedlane,agnes,alex,alleyoop,andycapp,arloandjanis,bc,\
     ballardstreet,ben,betty,bignate,boyonastickandslither,bornloser,brevity,buckets,candorville,\
     cheapthrills,committed,cowandboy,dinosaurcomics,drabble,drfun,fatcats,ferdnand,\
     flightdeck,floandfriends,forbetterorforworse,frankandernest,frazz,geech,getfuzzy,\
     graffiti,grandavenue,heathcliff,herbandjamaal,herman,\
     janesworld,jumpstart,kitncarlyle,libertymeadows,lilabner,luann,marmaduke,\
     meg,moderatelyconfused,momma,monty,motley,nancy,naturalselection,\
     offthemark,onebighappyclassics,othercoast,overthehedge,pcandpixel,\
     pearlsbeforeswine,pickles,raisingduncan,realitycheck,redandrover,\
     ripleysbelieveitornot,roseisrose,rubes,rudypark,shirleyandson,souptonutz,\
     speedbump,spotthefrog,strangebrew,sunshineclub,tarzan,thatslife,\
     wizardofid,workingdaze,workingitout,peanuts,dilbert,animalcrackers,adamathome,annie,\
     baldo,bigpicture,bigtop,boondocks,boundandgagged,brendastarr,broomhilda,calvinandhobbes,\
     catswithhands,cathy,cleats,closetohome,cornered,dicktracy,doonesbury,duplex,foxtrot,fredbasset,\
     fuscobrothers,garfield,gasolinealley,heartofthecity,helenoftheinternet,housebroken,\
     inthebleachers,joyoftech,kudzu,lacucaracha,lola,looseparts,lostsheep,luckycow,meehanstreak,\
     middletons,misterboffo,mixedmedia,mullets,nonsequitur,overboard,pluggers,poochcafe,popculture,\
     preteena,reallife,reynoldsunwrapped,shoe,stonesoup,tankmcnamara,userfriendly,willynethel,xkcd,ziggy,\
     zits" + editorial_switches.join(','));

     if ( args.switches.length > 0 ){
        //get the current date
        var dat = new Date();
        for (i=0; i < args.switches.length; i++){
           var site=null;
           var endurl=null;
           var imgtitle=null;
           var imgkey=null;
           var urlstart=null;
           var endurl=null;
           var urlcat=null;
           var urldir=null;
           var editorial=false;

           //default regex for finding the image in the page source..
           var rx = /img\ssrc=\"(.+)\.full\.gif\"/i;
           switch( args.switches[i].name ){
              case "9chickweedlane": endurl="9_chickweed_lane/";break;
              case "agnes": endurl="agnes/";break;
              case "alleyoop": endurl="alley_oop/";break;
              case "andycapp": endurl="andy_capp/";break;
              case "arloandjanis": endurl="arlo&janis/";break;
              case "bc": endurl="bc/";break;
              case "ballardstreet": endurl="ballard_street/";break;
              case "ben": endurl="ben/";break;
              case "betty": endurl="betty/";break;
              case "bignate": endurl="big_nate/";break;
              case "boyonastickandslither": endurl="boy_on_a_stick_and_slither/";break;
              case "bornloser": endurl="the_born_loser/";break;
              case "brevity": endurl="brevity/";break;
	      case "buckets": endurl="the_buckets/";break;
              case "candorville": endurl="candorville/";break;
              case "cheapthrills": endurl="cheap_thrills/";break;
              case "committed": endurl="committed/";break;
	      case "cowandboy": endurl="cow&boy/";break;
              case "dilbert": site="dilbert";break;
              case "drabble": endurl="drabble/";break;
              case "fatcats": endurl="fat_cats_classics/";break;
              case "ferdnand": endurl="ferdnand/";break;
              case "flightdeck": endurl="flight_deck/";break;
              case "floandfriends": endurl="flo&friends/";break;
              case "frankandernest": endurl="frank&ernest/";break;
              case "frazz": endurl="frazz/";break;
              case "geech": endurl="geech_classics/";break;
              case "getfuzzy": endurl="get_fuzzy/";break;
              case "graffiti": endurl="graffiti/";break;
              case "grandavenue": endurl="grand_avenue/";break;
              case "heathcliff": endurl="heathcliff/";break;
              case "herbandjamaal": endurl="herb_and_jamaal/";break;
              case "herman": endurl="herman/";break;
              case "janesworld": endurl="janes_world/";break;
              case "joyoftech": imgtitle="The Joy of Tech";site="joyoftech";imgkey="jot";break;
              case "jumpstart": endurl="jump_start/";break;
              case "kitncarlyle": endurl="kit_n_carlyle/";break;
              case "libertymeadows": endurl="liberty_meadows/";break;
              case "lilabner": endurl="lil_abner_classics/";break;
              case "luann": endurl="luann/";break;
              case "marmaduke": endurl="marmaduke/";break;
              case "meg": endurl="meg_classics/";break;
              case "moderatelyconfused": endurl="moderately_confused/";break;
              case "momma": endurl="momma/";break;
              case "monty": endurl="monty/";break;
              case "motley": endurl="motley_classics/";break;
              case "nancy": endurl="nancy/";break;
              case "naturalselection": endurl="natural_selection/";break;
              case "offthemark": endurl="off_the_mark/";break;
              case "onebighappyclassics": endurl="one_big_happy_classics/";break;
              case "othercoast": endurl="the_other_coast/";break;
              case "overthehedge": endurl="over_the_hedge/";break;
              case "pcandpixel": endurl="pc_and_pixel/";break;
              case "peanuts": endurl="peanuts/";break;
              case "pearlsbeforeswine": endurl="pearls_before_swine/";break;
              case "pickles": endurl="pickles/";break;
              case "raisingduncan": endurl="raising_duncan_classics/";break;
              case "realitycheck": endurl="reality_check/";break;
              case "redandrover": endurl="red&rover/";break;
              case "ripleysbelieveitornot": endurl="ripleys_believe_it_or_not/";break;
              case "roseisrose": endurl="rose_is_rose/index.html";break;
              case "rubes": endurl="rubes/";break;
              case "rudypark": endurl="rudy_park/";break;
              case "shirleyandson": endurl="shirley_and_son_classics/";break;
              case "souptonutz": endurl="soup_to_nutz/";break;
              case "speedbump": endurl="speed_bump/";break;
              case "spotthefrog": endurl="spot_the_frog/";break;
              case "strangebrew": endurl="strange_brew/";break;
              case "sunshineclub": endurl="the_sunshine_club/";break;
              case "tarzan": endurl="tarzan_classics/";break;
              case "thatslife": endurl="thats_life/";break;
              case "wizardofid": endurl="wizard_of_id/";break;
              case "workingdaze": endurl="working_daze/";break;
              case "workingitout": endurl="working_it_out/";break;
              // comics from ucomics.com
              case "5thwave": imgtitle="The 5th Wave";site="ucomics";imgkey="fw";break;
              case "animalcrackers": imgtitle="Animal Crackers";site="ucomics";imgkey="tmani";break;
              case "adamathome": imgtitle="Adam at Home";site="ucomics";imgkey="ad";break;
              case "annie": imgtitle="Annie";site="ucomics";imgkey="tmann";break;
              case "baldo": imgtitle="Baldo";site="ucomics";imgkey="ba";break;
              case "bigpicture": imgtitle="Big Picture";site="ucomics";imgkey="bi";break;
              case "bigtop": imgtitle="Big Top";site="ucomics";imgkey="bt";break;
              case "boondocks": imgtitle="Boondocks";site="ucomics";imgkey="bo";break;
              case "boundandgagged": imgtitle="Bound and Gagged";site="ucomics";imgkey="tmbou";break;
              case "brendastarr": imgtitle="Brenda Starr";site="ucomics";imgkey="tmbre";break;
              case "broomhilda": imgtitle="Broom Hilda";site="ucomics";imgkey="tmbro";break;
              case "cathy": imgtitle="Cathy";site="ucomics";imgkey="ca";break;
              case "catswithhands": imgtitle="Cats With Hands";site="ucomics";imgkey="tmcat";break;
              case "cleats": imgtitle="Cleats";site="ucomics";imgkey="cle";break;
              case "closetohome": imgtitle="Close to Home";site="ucomics";imgkey="cl";break;
              case "cornered": imgtitle="Cornered";site="ucomics";imgkey="co";break;
              case "dicktracy": imgtitle="Dick Tracy";site="ucomics";imgkey="tmdic";break;
              case "doonesbury": imgtitle="Doonesbury";site="ucomics";imgkey="db";break;
              case "duplex": imgtitle="Duplex";site="ucomics";imgkey="dp";break;
              case "foxtrot": imgtitle="Foxtrot";site="ucomics";imgkey="ft";break;
              case "fredbasset": imgtitle="Fred Basset";site="ucomics";imgkey="tmfba";break;
              case "forbetterorforworse": imgtitle="For Better Or For Worse";site="ucomics";imgkey="fb";break;
              case "fuscobrothers": imgtitle="Fusco Brothers";site="ucomics";imgkey="fu";break;
              case "garfield": imgtitle="Garfield";site="ucomics";imgkey="ga";break;
              case "gasolinealley": imgtitle="Gasoline Alley";site="ucomics";imgkey="tmgas";break;
              case "heartofthecity": imgtitle="Heart of the City";site="ucomics";imgkey="hc";break;
              case "helenoftheinternet": imgtitle="Helen of the Internet";site="ucomics";imgkey="tmhel";break;
              case "housebroken": imgtitle="Housebroken";site="ucomics";imgkey="tmhou";break;
              case "inthebleachers": imgtitle="In the Bleachers";site="ucomics";imgkey="bl";break;
              case "kudzu": imgtitle="Kudzu";site="ucomics";imgkey="tmkud";break;
              case "lacucaracha": imgtitle="La Cucaracha";site="ucomics";imgkey="lc";break;
              case "lola": imgtitle="Lola";site="ucomics";imgkey="tmlol";break;
              case "looseparts": imgtitle="Loose Parts";site="ucomics";imgkey="tmloo";break;
              case "lostsheep": imgtitle="Lost Sheep";site="ucomics";imgkey="lost";break;
              case "luckycow": imgtitle="Lucky Cow";site="ucomics";imgkey="luc";break;
              case "meehanstreak": imgtitle="Meehan Streak";site="ucomics";imgkey="tmmee";break;
              case "middletons": imgtitle="Middletons";site="ucomics";imgkey="tmmid";break;
              case "misterboffo": imgtitle="Mister Boffo";site="ucomics";imgkey="mb";break;
              case "mixedmedia": imgtitle="Mixed Media";site="ucomics";imgkey="tmmix";break;
              case "mullets": imgtitle="Mullets";site="ucomics";imgkey="mul";break;
              case "nonsequitur": imgtitle="Nonsequitur";site="ucomics";imgkey="nq";break;
              case "overboard": imgtitle="Overboard";site="ucomics";imgkey="ob";break;
              case "pluggers": imgtitle="Pluggers";site="ucomics";imgkey="tmplu";break;
              case "poochcafe": imgtitle="Pooch Cafe";site="ucomics";imgkey="poc";break;
              case "popculture": imgtitle="Pop Culture";site="ucomics";imgkey="pop";break;
              case "preteena": imgtitle="Preteena";site="ucomics";imgkey="pr";break;
              case "reallife": imgtitle="Real Life";site="ucomics";imgkey="rl";break;
              case "reynoldsunwrapped": imgtitle="Reynolds Unwrapped";site="ucomics";imgkey="rw";break;
              case "shoe": imgtitle="Shoe";site="ucomics";imgkey="tmsho";break;
              case "stonesoup": imgtitle="Stone Soup";site="ucomics";imgkey="ss";break;
              case "tankmcnamara": imgtitle="Tank Mcnamara";site="ucomics";imgkey="tm";break;
              case "willynethel": imgtitle="Willy n Ethel";site="ucomics";imgkey="wes";break;
              case "ziggy": imgtitle="Ziggy";site="ucomics";imgkey="zi";break;
              case "calvinandhobbes": imgtitle="Calvin And Hobbes";site="ucomics";imgkey="ch";break;
              // misc
              case "userfriendly": imgtitle="User Friendly";site="userfriendly";imgkey="uf";break;
              case "zits": imgtitle="Zits";site="seattlepi";imgkey="Zits";break;
              case "drfun": imgtitle="Dr. Fun"; site="drfun";imgkey="df";break;
	      case "alex": imgtitle="Alex";site="alex";imgkey="ax";break;
	      case "xkcd": imgtitle="xkcd";site="xkcd";imgkey="xk";break;
	      case "dinosaurcomics": imgtitle="Dinosaur Comics";site="dino";imgkey="dino";break;
	      // editorials from ucomics.com
              case "animatedoliphant": imgtitle="Animated Oliphant";site="ucomics";imgkey="oa";editorial=true;break;
              case "anntelneas": imgtitle="Ann Telneas";site="ucomics";imgkey="tmate";editorial=true;break;
              case "barbarabrandon": imgtitle="Barbara Brandon";site="ucomics";imgkey="bb";editorial=true;break;
              case "bensargent": imgtitle="Ben Sargent";site="ucomics";imgkey="bs";editorial=true;break;
              case "billdeore": imgtitle="Bill DeOre";site="ucomics";imgkey="bd";editorial=true;break;
              case "chanlowe": imgtitle="Chan Lowe";site="ucomics";imgkey="tmclo";editorial=true;break;
              case "chipbok": imgtitle="Chip Bok";site="ucomics";imgkey="crcbo";editorial=true;break;
              case "chuckasay": imgtitle="Chuck Asay";site="ucomics";imgkey="crcas";editorial=true;break;
              case "danasummers": imgtitle="Dana Summers";site="ucomics";imgkey="tmdsu";editorial=true;break;
              case "danawasserman": imgtitle="Dana Wasserman";site="ucomics";imgkey="tmdwa";editorial=true;break;
              case "davidhorsey": imgtitle="David Horsey";site="ucomics";imgkey="tmdho";editorial=true;break;
              case "dicklocher": imgtitle="Dick Locher";site="ucomics";imgkey="tmdlo";editorial=true;break;
              case "dickwright": imgtitle="Dick Wright";site="ucomics";imgkey="tmdiw";editorial=true;break;
              case "donwright": imgtitle="Don Wright";site="ucomics";imgkey="tmdow";editorial=true;break;
              case "dougmarlette": imgtitle="Doug Marlette";site="ucomics";imgkey="tmdma";editorial=true;break;
              case "drewsheneman": imgtitle="Drew Sheneman";site="ucomics";imgkey="tmdsh";editorial=true;break;
              case "facesinthenews": imgtitle="Faces in the News";site="ucomics";imgkey="kw";editorial=true;break;
              case "garyvarvel": imgtitle="Gary Varvel";site="ucomics";imgkey="crgva";editorial=true;break;
              case "glennmccoy": imgtitle="Glenn McCoy";site="ucomics";imgkey="gm";editorial=true;break;
              case "jackhiggins": imgtitle="Jack Higgins";site="ucomics";imgkey="jh";editorial=true;break;
              case "jackohman": imgtitle="Jack Ohman";site="ucomics";imgkey="tmjoh";editorial=true;break;
              case "jeffdanziger": imgtitle="Jeff Danziger";site="ucomics";imgkey="jd";editorial=true;break;
              case "laloalcaraz": imgtitle="Lalo Alcaraz";site="ucomics";imgkey="la";editorial=true;break;
              case "mattdavies": imgtitle="Matt Davies";site="ucomics";imgkey="tmmda";editorial=true;break;
              case "mikeluckovich": imgtitle="Mike Luckovich";site="ucomics";imgkey="crmlu";editorial=true;break;
              case "nickanderson": imgtitle="Nick Anderson";site="ucomics";imgkey="wpnan";editorial=true;break;
              case "patoliphant": imgtitle="Pat Oliphant";site="ucomics";imgkey="po";editorial=true;break;
              case "paulconrad": imgtitle="Paul Conrad";site="ucomics";imgkey="tmpco";editorial=true;break;
              case "paulszep": imgtitle="Paul Szep";site="ucomics";imgkey="crpsz";editorial=true;break;
              case "signewilkinson": imgtitle="Signe Wilkinson";site="ucomics";imgkey="wpswi";editorial=true;break;
              case "stevesack": imgtitle="Steve Sack";site="ucomics";imgkey="tmssa";editorial=true;break;
              case "stuartcarlson": imgtitle="Stuart Carlson";site="ucomics";imgkey="sc";editorial=true;break;
              case "tedrall": imgtitle="Ted Rall";site="ucomics";imgkey="tr";editorial=true;break;
              case "tomtoles": imgtitle="Tom Toles";site="ucomics";imgkey="tt";editorial=true;break;
              case "tonyauth": imgtitle="Tony Auth";site="ucomics";imgkey="ta";editorial=true;break;
              case "walthandelsman": imgtitle="Walt Handelsman";site="ucomics";imgkey="tmwha";editorial=true;break;
              case "waynestayskal": imgtitle="Wayne Stayskal";site="ucomics";imgkey="tmwst";editorial=true;break;
              default:endurl=null;imgkey=null;break;
           }//switch

           //default to www.comics.com
           switch(site){
              case "altcomics": //not yet implemented
				break;
              case "drfun": imgurl = "http://www.ibiblio.org/Dave/Dr-Fun/latest.jpg";break;
              case "seattlepi":
                 if (typeof wgetExe == "undefined") {
                    pagebody += '<br><h4>' +imgtitle+'</h4><br>This comic requires <a href="http://xoomer.virgilio.it/hherold/";>wget</a> and uses WScript.Shell to invoke it.  Please set wgetExe in your localprefs.js file to the location of your wget.exe. For example:<br><br>wgetExe="c:\\\\bin\\\\wget";';
                    imgurl = "";
                 } else {
                    var mday = dat.getDate();
                    var month = dat.getMonth()+1;
                    var year = dat.getYear();
                    if (mday<10) mday= '0'+mday;
                    if (month<10) month= '0'+month;

                    imgurl = "http://pst.rbma.com/content/"; + imgkey + "?date=" + year + month + mday;
                    var output_file = DQSDLauncher.AppDataDirectory + '\\' + imgkey + '.gif';
                    var cmd = '"' + wgetExe + '" --referer="http://seattlepi.nwsource.com/fun/"; --output-document="' + output_file + '" "' + imgurl + '"';
                    var shell = new ActiveXObject("WScript.Shell");
                    shell.Run(cmd, 0, true);
                    imgurl = "file:///"+output_file;
                }
                break;
              case "joyoftech":
                 var sUrl="http://www.geekculture.com/joyoftech/index.html";;
                 var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
                 xmlHttp.open("GET", sUrl, false);
                 xmlHttp.send();

                 //get the response content from the remote site
                 var sBody = xmlHttp.responseText;

                 // what I'm looking for
                 //<img src="joyimages/555.png" height="431" width="485" border="0">
                 var pattern = /joyimages\/\S+.[jpg|png|gif]" alt="The Joy/ig;
                 var result = sBody.match(pattern)[0];
                 var imgurl = "http://www.geekculture.com/joyoftech/"+result;
                 break;

              case "userfriendly":
                 var urlstart="http://ars.userfriendly.org/cartoons";;
                 // format the date param for today's comic
                 var mday = "0" + dat.getDate().toString();
                 var month = "0" + (dat.getMonth()+1);
                 var year = dat.getYear();

                 var sUrl=urlstart;
                 var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
                 xmlHttp.open("GET", sUrl, false);
                 xmlHttp.send();

                 //get the response content from the remote site
                 var sBody = xmlHttp.responseText;

                 // what I'm looking for
                 //<IMG ALT="Latest Strip" height="219" WIDTH="576" BORDER=0 SRC="http://www.userfriendly.org/cartoons/archives/04may/xuf006703.gif";>
                 var pattern = /http\:\S+userfriendly\.org\/cartoons\/\S+\.gif/ig;
                 var result = sBody.match(pattern);
                 var imgurl = result[0];
                 break;

              //http://www.telegraph.co.uk/money/graphics/2006/07/21/calex21.gif
              case "alex":
                 var urlstart="http://www.telegraph.co.uk/money/graphics";;

                 //no comic is available for Sat or Sun.. default to Friday on these occasions
                 var dow=dat.getDay();

                 //get a new instance of the date object to play with
                 var today=new Date();

                 //day is Sunday - set the date object back two days
                 if (dow == 0) {
                     today.setDate(today.getDate()-2);
                 }
                 //Day is Saturday - set the date object back one days
                 if (dow == 6) {
                    today.setDate(today.getDate()-1);
                 }
                 // fetch the date elements from the local date object
                 var mday = today.getDate();
                 var month = today.getMonth()+1;
                 var year = today.getYear();

                 if (mday<10) mday= '0'+mday;
                 if (month<10) month= '0'+month;

                 var sUrl=urlstart;
                 var imgurl = urlstart+'/'+year+'/'+month+'/'+mday+'/calex'+mday+'.gif';
		 break;

	      case "xkcd":
		 var sUrl="http://www.xkcd.com";
                 var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
                 xmlHttp.open("GET", sUrl, false);
                 xmlHttp.send();

                 //get the response content from the remote site
                 var sBody = xmlHttp.responseText;

                 // what I'm looking for
		 //<img src="http://imgs.xkcd.com/comics/image_name.png"; title="Constantly stopping [...]" alt=
		 // 21May07 - BSD: sometimes, half (or more) of the humor is in the pop-up text on the image, so
		 //           I've expanded the regex pattern to include the title text...
                 var pattern = /comics\/\S+.[jpg|png|gif]\" title=\".*\" alt=/ig;
                 var result = sBody.match(pattern)[0];
		 var imgurl = "http://imgs.xkcd.com/"+result+"\"";;
		 break;

	      case "dino":
	         var sUrl="http://www.qwantz.com";
		 var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
		 xmlHttp.open("GET", sUrl, false);
		 xmlHttp.send();

		 //get the response content from the remote site
		 var sBody = xmlHttp.responseText;

		 // what I'm looking for
		 // <img src="http://www.qwantz.com/comics/image_name.gif"; title="blah blah blah [...]" border=0
		 // 22May07 - BSD:  what?? this one, too?  am I sensing a trend?  anyway, updated regex
		 // var pattern = /comics\/S+.[jpg|png|gif]/ig;
		 var pattern = /comics\/\S+.[jpg|png|gif]\" width=\".*\" height=\".*\" title=\".*\" border=\"0\"/ig;
		 var result = sBody.match(pattern)[0];
		 var imgurl = "http://www.qwantz.com/"+result;
		 break;

              case "ucomics":
                 var urlstart="http://images.ucomics.com/comics/";;
                 if (editorial) {
                    urlstart="http://picayune.uclick.com/comics/";;
                 }
                 //get the other date parameters for the ucomics image urls
                 var mday = dat.getDate();
                 var month = dat.getMonth()+1;
                 var year = dat.getYear();
                 var subyear = year.toString();
                 subyear = subyear.substr(2,2);
                 if (mday<10) mday= '0'+mday;
                 if (month<10) month= '0'+month;

                 var imgurl = urlstart+imgkey+"/"+year+"/"+imgkey+subyear+month+mday+".gif";
                 if (editorial) {
                    var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
                    var tries = 1;  // 1 == just try today's comic, > 1 look for previous days comics
                    var status = -1;
                    var cur_mday = mday;
                    while (status != 200 && tries > 0) {
                       imgurl = urlstart+imgkey+"/"+year+"/"+imgkey+subyear+month+cur_mday+".gif";
                       xmlHttp.open("HEAD", imgurl, false);
                       xmlHttp.send();
                       status = xmlHttp.status;
                       if (status == 200) {
                          // found it
                          break;
                       }
                       // none for today try previous day
                       imgurl = "";
                       tries--;
                       cur_mday--;
                       // should be smarter here and go to end of previous month
                       if (cur_mday < 1)
                          break;
                       if (cur_mday<10) cur_mday= '0'+cur_mday;
                    }
                 }
                 break;
	      dilbert:
		 // 09Nov08 - BSD 
		 // dilbert comic is now at http://dilbert.com
		 // ..and everything is ever-so-slightly different than comics.com, so...

		 var sUrl="http://dilbert.com";;
	         var rx = /img\ssrc=\"\/dyn\/str_strip(.+)\.gif/i;
		 
		 var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
		 xmlHttp.open("GET", sUrl, false);
		 xmlHttp.send();

		 var relativeImgUrl = '';
		 var imgmatch = rx.exec(sBody);
		 if (imgmatch != null)
		 {
		    relativeImgUrl = imgmatch[1];
		 }
		 var imgurl = "http://dilbert.com/dyn/str_strip"+relativeImgUrl+".gif";;

		 break;
              default:
		 // 09Nov08 - Brian S Dunworth <[EMAIL PROTECTED]>
		 // new site layout at comics.com as of Nov 03, 2008... thus, new parsing required
		 // 
                 var urlstart="http://www.comics.com/";;

                 var sUrl=urlstart+endurl;

                 var xmlHttp = new ActiveXObject("Microsoft.XmlHttp");
                 xmlHttp.open("GET", sUrl, false);
                 xmlHttp.send();

                 //run the regex to parse out the image url
                 var relativeImgUrl = '';
                 var imgmatch = rx.exec(sBody);
                 if (imgmatch != null)
                 {
                    relativeImgUrl = imgmatch[1];
                 }

                 var imgurl = relativeImgUrl+".full.gif";

//                 if (imgtitle==null) {
//                    //regex for finding the image title in the page source..
//                    var tx = /<title>(.+)<\/title>/i;
//                    var imgtitle = tx.exec(sBody)[1];
//                 }
                 break;
           }// switch on "site"

           //put up the window
           if (imgurl != ""){
                pagebody += '<h4>'+imgtitle+'</h4>\n<img src="' +imgurl +'">\n';
           }//if imgurl
        }// for i <...
     }else{
           setSearchWindowText("Bad Comic Name..  try 'comx ?' to see a list");
           setTimeout("setSearchWindowText('comx ')", 2000);
           return;
     }//else
     pagebody += '\n</body>\n</html>';

     if (fileout == 1) {
        writeFile(comxoutfile, pagebody);
        openSearchWindow("file://" + comxoutfile);
     }else{
        myWindow = window.open("", "comx", 'resizable,scrollbars,width=1000,height=700')
        myWindow.document.write(pagebody)
     }

  } //function

  ]]></script>
</search>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
To unsubscribe visit:
https://lists.sourceforge.net/lists/listinfo/dqsd-users
DQSD-Users@lists.sourceforge.net
http://sourceforge.net/mailarchive/forum.php?forum_id=8601

Reply via email to