I'm not good with Regular Expressions, and Perl conventions even less
so.  If someone can piece this together, I'd be grateful:


Code:
--------------------
    
        my $outcome_txt = ($tree->look_down( "_tag", "div", "class", 
"wx-details"))[0];
        if ($outcome_txt) {
                if ($outcome_txt->as_text =~ m/Chance of \w+:(.*%)W/) {
                        $wetData{-1}{'forecastPrec'} = $1;
                        $wetData{0}{'forecastPrec'} = $1;
                }
                else {
                        $status = '-';
                        $log->warn('Error parsing current/today precip');       
                
                }
        }
  
--------------------

The HTML it's looking for is:


Code:
--------------------
    
  <div class="wx-data-part wx-first">
  <h6 class="wx-label">Past 24-hr Precip:</h6>
  <div class="wx-data">0 in</div>
  </div>
  <div class="wx-data-part">
  <h6 class="wx-label">Chance of <span class='wx-firstletter'>rain</span></h6>
  <div class="wx-data"><span class="wx-icon wx-raindrop"></span>60%</div>
  </div>
  <div class="wx-data-part">
  <h6 class="wx-label">Chance of <span class='wx-firstletter'>rain</span></h6>
  <div class="wx-data"><span class="wx-icon wx-raindrop"></span>60%</div>
  </div>
  
--------------------


If I interpret this correctly, there is a single value that it's
populating into 2 variables (even though the variable is available as 2
distinct values -- weird.  Easier?)  I think forecastPrec is looking for
the % value "60%", and not the description "rain".  The code looks like
it's looking for:
"Chance of <something>: ##%<more something>" and puts the ## characters
into $1.  if so, I'd change the code to be:

Hmm.. this is going to be tough - there are MANY <div> with the class of
"wx-data-part wx-first" as well as "wx-data".  It looks like look_down
is grabbing the first item in the array of results, so if we know WHICH
item it should be, then this is easy(-ier).  Hopefully that result array
is consistent... hmmmm...

It looks like the forecastPrec is result 3 ([2] in the array).  If we
capture that, the regular expression could be:

(from this site I'm using for testing:
http://www.solmetra.com/scripts/regex/index.php)


Code:
--------------------
    
  /<span(.*?)><\/span>(.*?)\%<\/div>/
  
--------------------


That returns an array of results, where [2] is the value we want. 
Whew...


------------------------------------------------------------------------
plympton's Profile: http://forums.slimdevices.com/member.php?userid=12955
View this thread: http://forums.slimdevices.com/showthread.php?t=14327

_______________________________________________
plugins mailing list
plugins@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/plugins

Reply via email to