Картинка дня bing.com на фон

Картинка дня bing.com на фон

Postby andlommy » 25 May 2013, 17:11

Чтобы наработка которую делал для себя не пропала даром, выложу тут, авось кому-нибудь пригодится.
Тестировано на прошивке iNext от ув. Farvoice 9981 R3 (только squashfs менял на yaffs2 чтобы можно было файлы системные ковырять)
Изменения файла /usr/local/bin/home_menu/scripts/HomeMenu.rss
под строками
Code: Select all
redrawDisplay();
-->
</getWeatherInfo>

добавить
Code: Select all
<script>
img_refresh=1;
</script>

<getImgData>
gettingnewimg="true";
img_baseurl="http://www.bing.com/HPImageArchive.aspx?format=xml&amp;idx=0&amp;n=1&amp;mkt=en-US";
img_filename_def="/tmp/cached/bing_pic.xml";
getURL(img_baseurl,"async",img_filename_def);
</getImgData>

под строками
Code: Select all
if (serviceEnabled("accuweather") != null)
   {
      weathertimer_counter = (weathertimer_counter-1);
      if(weathertimer_counter == 0)
      {
         weathertimer_counter = 3600;
         executeScript("getWeatherInfo");
      }
   }

добавить
Code: Select all
            
   img_refresh=img_refresh-1;
   
   if (img_refresh==0)
   {
      test = readStringFromFile("/tmp/cached/bing_pic.xml");
      if (test == null)
      {
         executeScript("getImgData");
         img_refresh=1;
      }
      else
      {
         img_refresh=1;         
         if(gettingnewimg=="true")
         {
            completed=getURLCompleted(img_baseurl);
            if(completed == "TRUE")
            {
               img_refresh=3600;               
               imgurlXML=loadXMLFile(img_baseurl);
               if (imgurlXML != null)
               {
                  startdate=getXMLText("images","image","startdate");
                  enddate=getXMLText("images","image","enddate");
                  imgurl=getXMLText("images","image","url");
                  imgurlbase=getXMLText("images","image","urlBase");

                  timeDate = getTimeDate();
                  year   = getStringArrayAt(timeDate , 0);
                  month  = getStringArrayAt(timeDate , 1);
                  day    = getStringArrayAt(timeDate , 2);
                  if ( month &lt; 10 ) {month="0"+month;}
                  if ( day &lt; 10 ) {day="0"+day;}
                  ymd=year+month+day;
                  if(ymd==startdate)
                  {
                     test=ReadStringFromFile("/usr/local/etc/dvdplayer/picofday.jpg");
                     if(test==null)
                     {
                        getUrl("http://www.bing.com"+imgurl,"async","/usr/local/etc/dvdplayer/picofday.jpg");   
                        picofday="/usr/local/etc/dvdplayer/picofday.jpg";   
                     }
                  }
                  else
                  {
                     
                     getUrl("http://www.bing.com"+imgurl,"async","/usr/local/etc/dvdplayer/picofday.jpg");   
                     picofday="/usr/local/etc/dvdplayer/picofday.jpg";
                  }
               }
            }
         
         }
      }
   }


кусок с
Code: Select all
            BG_image = GetUserBackgroundImg();
               if ( "false" == BG_image) {
                  BG_image = "./i_image/main_screen/image_5.jpg";
               }
               BG_image;
   

заменить на
Code: Select all
         
            test=ReadStringFromFile("/usr/local/etc/dvdplayer/picofday.jpg");
            if (test!=null)
            {
               bingimage="/usr/local/etc/dvdplayer/picofday.jpg";
               bingimage;
            }
            else
            {
               BG_image = GetUserBackgroundImg();
               if ( "false" == BG_image) {
                  BG_image = "./i_image/main_screen/image_5.jpg";
               }
               BG_image;
            }
            
   


Это мой первый более-менее значимый опыт с RSS-ом и толковой документации особо не нашел, поэтому делал по образу и подобию.
Если кто подскажет как завернуть это в модуль, то можно попробовать сделать модуль.
Выглядит красиво - раз в час скрипт провряет не поменялась ли картинка дня на bing.com и если поменялась - ставит ее на фон.
Xtreamer Sidewinder 3 Fw: inext_hd1_v2.9_moS_r0)
andlommy
 
Posts: 18
Joined: 05 Jan 2012, 17:53

Re: Картинка дня bing.com на фон

Postby Pokrass » 25 May 2013, 17:15

В этой прошивке установлен модуль inextmenu, и HomeMenu.rss маунтится из моса.
Это намного проще изменять, чем перепаковывать прошивку. А потом просто все переименовать и собрать отдельный модуль (хотя если для себя - можно и не переименовыавть).
Кидать картинки в /usr/local/etc/dvdplayer/ - так же неверно - эта папка часто бекапится при обновлении прошивки. В результате там скапливается мусор. Опять же, если делать в рамках модуля - все картинки лежат в его папке.
А как собрать - написано в соответствующей теме (ссылку не дам - пишу с телефона)
IconBIT HDS7L Fw: AMP_r12 GUI: VRT
iNeXT HD1 W Fw: X3D_Series_V4.0.2b160406
User avatar
Pokrass
 
Posts: 3154
Joined: 18 Mar 2012, 04:18
Location: Плюк. Планета № 215 в Тентуре галактики "Кин-дза-дза" в Спирали.

Re: Картинка дня bing.com на фон

Postby andlommy » 25 May 2013, 17:24

Окей, сделаю через inextmenu как только разберусь что куда.
в dvdplayer кладется один и тот же файл поэтому мусор не скопится, но вообще спс. за советы.
Xtreamer Sidewinder 3 Fw: inext_hd1_v2.9_moS_r0)
andlommy
 
Posts: 18
Joined: 05 Jan 2012, 17:53

Re: Картинка дня bing.com на фон

Postby Pokrass » 25 May 2013, 17:26

Если говорить о создании модуля - то надо делать по уму. Один там, один здесь и в результате куча мусора. По этому фразы "это всего один файл" - по сути самообман и лучше сразу отбросить.
IconBIT HDS7L Fw: AMP_r12 GUI: VRT
iNeXT HD1 W Fw: X3D_Series_V4.0.2b160406
User avatar
Pokrass
 
Posts: 3154
Joined: 18 Mar 2012, 04:18
Location: Плюк. Планета № 215 в Тентуре галактики "Кин-дза-дза" в Спирали.

Re: Картинка дня bing.com на фон

Postby andlommy » 25 May 2013, 17:32

кто бы спорил. В прошивке и так куча мусора такая, что страшно разгребать...все само на себя залинковано 3 раза...ща переделаю в модуль и выложу.
Понять бы только как патчить на лету Homescreen.rss
Xtreamer Sidewinder 3 Fw: inext_hd1_v2.9_moS_r0)
andlommy
 
Posts: 18
Joined: 05 Jan 2012, 17:53

Re: Картинка дня bing.com на фон

Postby Pokrass » 25 May 2013, 17:34

Дык посмотрите куда модуль ложиться - он в юзерской-же области. Маунтится при старте иизменять надо уже его.
А мусор если есть (а тут еще пойми что мусор) - то лишний создавать - потом лопатой не разгрести :)
IconBIT HDS7L Fw: AMP_r12 GUI: VRT
iNeXT HD1 W Fw: X3D_Series_V4.0.2b160406
User avatar
Pokrass
 
Posts: 3154
Joined: 18 Mar 2012, 04:18
Location: Плюк. Планета № 215 в Тентуре галактики "Кин-дза-дза" в Спирали.

Re: Картинка дня bing.com на фон

Postby andlommy » 25 May 2013, 17:41

правильно ли я понимаю что мне надо написать sh код, который будет открывать homescreen.rss в inextmenu, находить в нем нужные места куда надо вставлять код и вставлять его?

и в pm/installed выглядеть должно примерно так?:
Code: Select all
[inextmenu]
   revision = 1
   title = "Background replacement"
   role = patch
   init = "S40bingbkg.sh"
   files = "etc/init/S40bingbkg.sh"
   size = 1856
Last edited by andlommy on 25 May 2013, 17:45, edited 1 time in total.
Xtreamer Sidewinder 3 Fw: inext_hd1_v2.9_moS_r0)
andlommy
 
Posts: 18
Joined: 05 Jan 2012, 17:53

Re: Картинка дня bing.com на фон

Postby Pokrass » 25 May 2013, 17:43

Нет. inextmenu - это HomeMenu.rss и GuideMenu.rss они монтируются при старте.
лежит все оно в /data/etc/mos/inextmenu/
Вот этот HomeMenu.rss и изменять.

Для пущей важности - я бы еще поменял все названия папок и т.д. и сделал свой отдельный модуль.
IconBIT HDS7L Fw: AMP_r12 GUI: VRT
iNeXT HD1 W Fw: X3D_Series_V4.0.2b160406
User avatar
Pokrass
 
Posts: 3154
Joined: 18 Mar 2012, 04:18
Location: Плюк. Планета № 215 в Тентуре галактики "Кин-дза-дза" в Спирали.

Re: Картинка дня bing.com на фон

Postby andlommy » 25 May 2013, 17:46

Что такое Inextmenu уже понял и что редактировать тоже. Осталось нагуглить как shным скриптом пропатчить файл в нужных местах.
Last edited by andlommy on 25 May 2013, 17:58, edited 1 time in total.
Xtreamer Sidewinder 3 Fw: inext_hd1_v2.9_moS_r0)
andlommy
 
Posts: 18
Joined: 05 Jan 2012, 17:53

Re: Картинка дня bing.com на фон

Postby Pokrass » 25 May 2013, 17:50

А руками внести все то же что вы внесли в оригинальный файл никак?
Ну что ж... пляшите со скриптами. По моему, вы не совсем поняли суть вопроса и слишком рано начали пересобирать прошивку.
Но все равно это игрушки, которые положительно на производительности не скажутся...
IconBIT HDS7L Fw: AMP_r12 GUI: VRT
iNeXT HD1 W Fw: X3D_Series_V4.0.2b160406
User avatar
Pokrass
 
Posts: 3154
Joined: 18 Mar 2012, 04:18
Location: Плюк. Планета № 215 в Тентуре галактики "Кин-дза-дза" в Спирали.

Next

Return to Разработка

Who is online

Users browsing this forum: No registered users and 15 guests

cron