# need basic help with plugin writing

**URL:** <https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638>\
**Category:** Dev/API Corner\
**Tags:** plugin-dev\
**Created:** [February 1, 2011, 5:03pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638 "2011-02-01T17:03:04Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![hrcolb0](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hrcolb0/32/380_2.png) [@hrcolb0](https://forums.plex.tv/u/hrcolb0)\
**Post date:** [February 2, 2011, 12:19pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/21 "2011-02-02T12:19:40Z")

</div>

From this, you should at least be able to fill all of your menus from here on out. You may have specific questions if you get a hard tag, but from there site, it didn’t look too difficult. Check out another photo’s plugin to see how they handle their adding the actual photos once you get down to the actual content you want to show.

---

<div class="post-metadata">

**Author:** ![pooploser](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pooploser/32/133851_2.png) [@pooploser](https://forums.plex.tv/u/pooploser)\
**Post date:** [February 2, 2011, 12:23pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/22 "2011-02-02T12:23:27Z")

</div>

damn. not for me :S   
  
  
  
NameError: global name ‘ItemPage’ is not defined

---

<div class="post-metadata">

**Author:** ![hrcolb0](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hrcolb0/32/380_2.png) [@hrcolb0](https://forums.plex.tv/u/hrcolb0)\
**Post date:** [February 2, 2011, 12:28pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/23 "2011-02-02T12:28:25Z")

</div>

ItemPage is what you are calling your next function. Basically you’ve told Plex wherer to go, but it doesn’t exist yet. start out with just a   
  
  
  
def ItemPage(sender,pageUrl)  
  
Log(“Success!”)  
  
  
  
Then start filling it in with the stuff you learned from MainMenu(). As a note, you are passing pageUrl (a variable) to ItemPage. In the same way you used   
  
  
  
pageUrl= DEVIANTART\_CATEGORIES  
  
  
  
  
  
before, now you can use  
  
  
  
pageUrl=pageUrl  
  
  
  
and you can start parsing that page.

---

<div class="post-metadata">

**Author:** ![pooploser](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pooploser/32/133851_2.png) [@pooploser](https://forums.plex.tv/u/pooploser)\
**Post date:** [February 2, 2011, 12:33pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/24 "2011-02-02T12:33:03Z")

</div>

nevermind, menu is filled. i also done the itempage now.  
  
next would be the subsubmenu, and then the rss links.   
  
thanks so far!  
  
i’ll get back to you if i fail.

---

<div class="post-metadata">

**Author:** ![hrcolb0](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hrcolb0/32/380_2.png) [@hrcolb0](https://forums.plex.tv/u/hrcolb0)\
**Post date:** [February 2, 2011, 12:39pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/25 "2011-02-02T12:39:38Z")

</div>

Glad to see you are figuring out. Let us know how it goes.

---

<div class="post-metadata">

**Author:** ![pooploser](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pooploser/32/133851_2.png) [@pooploser](https://forums.plex.tv/u/pooploser)\
**Post date:** [February 2, 2011, 12:41pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/26 "2011-02-02T12:41:45Z")

</div>

ok……  
  
now.…  
  
main menu gets me to itemmenu. there, you should have another submenu.  
  
like this f.ex.  
  
Digital Art-\> 3D Art -\> Abstract  
  
  
  
the only problem is that in the “subsubmenu”, the class is also called “expanded selected”. how do i tell it to use the right one? the second one that is

```auto

                    <ul id="categories_art_digitalart_3d"> <li><a style="padding-left:20px;" href="http://browse.deviantart.com">All Categories</a></li> <li> <ul id="facetMenu-Category_list"><br />
                                        <li><a style="padding-left:30px;" class="expanded selected" href="http://browse.deviantart.com/digitalart/">Digital Art</a></li><br />
                                <li><a style="padding-left:40px;" class="expanded selected" href="http://browse.deviantart.com/digitalart/3d/">3-Dimensional Art</a></li><br />
                                <li><a style="padding-left:50px;" href="http://browse.deviantart.com/digitalart/3d/abstract/">Abstract</a></li><br />
                                <li><a style="padding-left:50px;" href="http://browse.deviantart.com/digitalart/3d/characters/">Characters</a></li><br />
                                <li><a style="padding-left:50px;" href="http://browse.deviantart.com/digitalart/3d/objects/">Objects</a></li><br />
                                <li><a style="padding-left:50px;" href="http://browse.deviantart.com/digitalart/3d/scenes/">Scenes</a></li><br />
                                <li><a style="padding-left:50px;" href="http://browse.deviantart.com/digitalart/3d/unsorted/">Unsorted</a></li><br />
                                <li><a style="padding-left:50px;" href="http://browse.deviantart.com/digitalart/3d/vehicles/">Vehicles</a></li><br />

```

  
  
  
my lines so far:  
  

```auto

# PMS plugin framework<br />
import re, string, datetime<br />
from PMS import *<br />
<br />
##################################################################################################ABC<br />
PLUGIN_PREFIX = "/photos/deviantart"<br />
<br />
DEVIANTART_URL = "http://www.deviantart.com/"<br />
DEVIANTART_CATEGORIES = "http://www.deviantart.com"<br />
<br />
DEVIANTART_FEED = "feed://backend.deviantart.com/rss.xml"<br />
DEBUG = False<br />
abcart ="art-default.png"<br />
abcthumb ="icon-default.png"<br />
<br />
####################################################################################################<br />
<br />
def Start():<br />
  Plugin.AddPrefixHandler(PLUGIN_PREFIX, MainMenu, "Deviantart","icon-default.jpg", "art-default.jpg")<br />
  Plugin.AddViewGroup("InfoList", viewMode="InfoList", mediaType="items")<br />
  <br />
  MediaContainer.art =R(abcart)<br />
  DirectoryItem.thumb =R(abcthumb)<br />
<br />
####################################################################################################<br />
#def MainMenu():<br />
# dir = MediaContainer(mediaType='items') <br />
# dir.Append(Function(DirectoryItem(all_shows, "Categories"), pageUrl = DEVIANTART_CATEGORIES))<br />
# return dir<br />
    <br />
####################################################################################################<br />
def MainMenu():<br />
    pageUrl= DEVIANTART_CATEGORIES<br />
    dir = MediaContainer(mediaType='items')<br />
    content = XML.ElementFromURL(pageUrl, True)<br />
    Log(content.xpath('//div[@class="sliding-menu "]/ul/li/ul/li/a'))<br />
    for item in content.xpath('//div[@class="sliding-menu "]/ul/li/ul/li/a'):<br />
        Log(item)<br />
        title=item.text <br />
        titleUrl = item.get('href') <br />
<br />
        Log(title)<br />
        Log(titleUrl)<br />
        dir.Append(Function(DirectoryItem(ItemPage, title), pageUrl = titleUrl))<br />
    return dir<br />
####################################################################################################<br />
def ItemPage(sender, pageUrl):<br />
    dir = MediaContainer(title2=sender.itemTitle)<br />
    Log("Success!")<br />
    pageUrl= pageUrl<br />
    dir = MediaContainer(mediaType='items')<br />
    content = XML.ElementFromURL(pageUrl, True)<br />
    Log(content.xpath('//div[@class="expanded selected"]/li/a'))<br />
    for item in content.xpath('//div[@class="expanded selected"]/li/a'):<br />
        Log(item)<br />
        title=item.text <br />
        titleUrl = item.get('href') <br />
<br />
        Log(title)<br />
        Log(titleUrl)<br />
        dir.Append(Function(DirectoryItem(ItemPage2, title), pageUrl = titleUrl))<br />
    return dir<br />
####################################################################################################<br />
def ItemPage2(sender, pageUrl):<br />
    dir = MediaContainer(title2=sender.itemTitle)<br />
    Log("Success!")<br />
    pageUrl= pageUrl<br />
    dir = MediaContainer(mediaType='items')<br />
    content = XML.ElementFromURL(pageUrl, True)<br />
    Log(content.xpath('//div[@class="expanded selected"]/li/a/li/a'))<br />
    for item in content.xpath('//div[@class="expanded selected"]/li/a/li/a'):<br />
        Log(item)<br />
        title=item.text <br />
        titleUrl = item.get('href') <br />
<br />
        Log(title)<br />
        Log(titleUrl)<br />
        dir.Append(Function(DirectoryItem(ItemPage2, title), pageUrl = titleUrl))<br />
    return dir<br />

```

---

<div class="post-metadata">

**Author:** ![pooploser](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pooploser/32/133851_2.png) [@pooploser](https://forums.plex.tv/u/pooploser)\
**Post date:** [February 2, 2011, 1:17pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/27 "2011-02-02T13:17:30Z")

</div>

ok figured this out, too.  
  
the menu’s are finished.

```auto

# PMS plugin framework<br />
import re, string, datetime<br />
from PMS import *<br />
<br />
##################################################################################################ABC<br />
PLUGIN_PREFIX = "/photos/deviantart"<br />
<br />
DEVIANTART_URL = "http://www.deviantart.com/"<br />
DEVIANTART_CATEGORIES = "http://www.deviantart.com"<br />
<br />
DEVIANTART_FEED = "feed://backend.deviantart.com/rss.xml"<br />
DEBUG = False<br />
abcart ="art-default.png"<br />
abcthumb ="icon-default.png"<br />
<br />
####################################################################################################<br />
<br />
def Start():<br />
  Plugin.AddPrefixHandler(PLUGIN_PREFIX, MainMenu, "Deviantart","icon-default.jpg", "art-default.jpg")<br />
  Plugin.AddViewGroup("InfoList", viewMode="InfoList", mediaType="items")<br />
  <br />
  MediaContainer.art =R(abcart)<br />
  DirectoryItem.thumb =R(abcthumb)<br />
<br />
####################################################################################################<br />
#def MainMenu():<br />
# dir = MediaContainer(mediaType='items') <br />
# dir.Append(Function(DirectoryItem(all_shows, "Categories"), pageUrl = DEVIANTART_CATEGORIES))<br />
# return dir<br />
    <br />
####################################################################################################<br />
def MainMenu():<br />
    pageUrl= DEVIANTART_CATEGORIES<br />
    dir = MediaContainer(mediaType='items')<br />
    content = XML.ElementFromURL(pageUrl, True)<br />
    Log(content.xpath('//div[@class="sliding-menu "]/ul/li/ul/li/a'))<br />
    for item in content.xpath('//div[@class="sliding-menu "]/ul/li/ul/li/a'):<br />
        Log(item)<br />
        title=item.text <br />
        titleUrl = item.get('href') <br />
<br />
        Log(title)<br />
        Log(titleUrl)<br />
        dir.Append(Function(DirectoryItem(ItemPage, title), pageUrl = titleUrl))<br />
    return dir<br />
####################################################################################################<br />
def ItemPage(sender, pageUrl):<br />
    dir = MediaContainer(title2=sender.itemTitle)<br />
    Log("Success!")<br />
    pageUrl= pageUrl<br />
    dir = MediaContainer(mediaType='items')<br />
    content = XML.ElementFromURL(pageUrl, True)<br />
    Log(content.xpath('//div[@class="sliding-menu "]/ul/li/ul/li/a'))<br />
    for item in content.xpath('//div[@class="sliding-menu "]/ul/li/ul/li/a'):<br />
        Log(item)<br />
        title=item.text <br />
        titleUrl = item.get('href') <br />
<br />
        Log(title)<br />
        Log(titleUrl)<br />
        dir.Append(Function(DirectoryItem(ItemPage2, title), pageUrl = titleUrl))<br />
    return dir<br />
####################################################################################################<br />
def ItemPage2(sender, pageUrl):<br />
    dir = MediaContainer(title2=sender.itemTitle)<br />
    Log("Success!")<br />
    pageUrl= pageUrl<br />
    dir = MediaContainer(mediaType='items')<br />
    content = XML.ElementFromURL(pageUrl, True)<br />
    Log(content.xpath('//div[@class="sliding-menu "]/ul/li/ul/li/a'))<br />
    for item in content.xpath('//div[@class="sliding-menu "]/ul/li/ul/li/a'):<br />
        Log(item)<br />
        title=item.text <br />
        titleUrl = item.get('href') <br />
<br />
        Log(title)<br />
        Log(titleUrl)<br />
        dir.Append(Function(DirectoryItem(ItemPage3, title), pageUrl = titleUrl))<br />
    return dir<br />
####################################################################################################<br />
def ItemPage3(sender, pageUrl):<br />
    dir = MediaContainer(title2=sender.itemTitle)<br />
    Log("Success!")<br />
    pageUrl= pageUrl<br />
    dir = MediaContainer(mediaType='items')<br />
    content = XML.ElementFromURL(pageUrl, True)<br />
    Log(content.xpath('//div[@class="sliding-menu "]/ul/li/ul/li/a/'))<br />
    for item in content.xpath('//div[@class="sliding-menu "]/ul/li/ul/li/a/'):<br />
        Log(item)<br />
        title=item.text <br />
        titleUrl = item.get('href') <br />
<br />
        Log(title)<br />
        Log(titleUrl)<br />
        dir.Append(Function(DirectoryItem(PhotoPage, title), pageUrl = titleUrl))<br />
    return dir<br />
####################################################################################################<br />

```

  
  
now to the most important bit. every (sub)category has its own rss page.   
how do i create a link there?  
  
the website sourcecode bit is (for example):  

```auto

<link rel="alternate" type="application/rss+xml" title="deviantART: Newest Classic Portraits" href="http://backend.deviantart.com/rss.xml?q=in%3Aphotography%2Fpeople%2Fportraits+sort%3Atime&type=deviation&offset=0" /><script type="text/javascript"><br />

```

---

<div class="post-metadata">

**Author:** ![nerpissad](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/nerpissad/32/438_2.png) [@nerpissad](https://forums.plex.tv/u/nerpissad)\
**Post date:** [February 2, 2011, 1:28pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/28 "2011-02-02T13:28:25Z")

</div>

seems you’re progressing nicely pooploser. keep it up! 🙂

---

<div class="post-metadata">

**Author:** ![pooploser](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pooploser/32/133851_2.png) [@pooploser](https://forums.plex.tv/u/pooploser)\
**Post date:** [February 2, 2011, 1:31pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/29 "2011-02-02T13:31:28Z")

</div>

yea but i am stuck now, so close before the main thing ☹

---

<div class="post-metadata">

**Author:** ![hrcolb0](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hrcolb0/32/380_2.png) [@hrcolb0](https://forums.plex.tv/u/hrcolb0)\
**Post date:** [February 2, 2011, 1:36pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/30 "2011-02-02T13:36:48Z")

</div>

First, let’s talk about how Plex handles functions. Once you call

```auto

content = XML.ElementFromURL(pageUrl, True)

```

within ItemPage, you are essentially navigating to the pageUrl page.You are no longer on the page that you parsed with MainMenu(). So, when trying to figure out what code you need in ItemPage function, examine the source code for the new page. For the case of “Digital Art”, this would be [http://browse.devian…om/digitalart/.](http://browse.deviantart.com/digitalart/.)  
  
  
  
Now, let’s talk definitions. Earlier I mentioned

 tags. These are a specific, and explicit, item. You can see it in the page’s source code. In your ItemPage function you use:  
  
  

```auto

Log(content.xpath('//div[@class="expanded selected"]/li/a'))

```

  
  
In the webpage you are now searching, [http://browse.devian...com/digitalart/](http://browse.deviantart.com/digitalart/) , there is no 
 Instead, you have an . Since you want to grab the entire list with the xpath (there are other ways, but let's use what you have) you would want to use the following code:  
   
 

```auto

for item in content.xpath('//div[@class="tt-a"]/span'):

```

   
   
This will grab all of the information that you want for each image, including the image source, image name, and the image subcategory. Once you have the surrounding tag wrapper (note it is not always div. Sometimes it's - , 
 or even sometimes a custom tag) you want to parse what is inside of the wrapper. Below is the information that corresponds to each "item" inside of "content"  
  

```auto

<span class="tt-w"><br />
 	<span class="shadow" style="background-image:url(http://sh.deviantart.net/shadow/x/150/100/logo3.png);"><br />
      	<a class="thumb" href="http://Viviphyd.deviantart.com/art/Link-195854556" title="Link by *Viviphyd, Feb 2, 2011 in Digital Art &gt; Paintings &amp; Airbrushing &gt; Illustrations &gt; Conceptual" super_img="http://fc06.deviantart.net/fs70/f/2011/033/3/a/link_by_viviphyd-d38lucc.jpg" super_w="1000" super_h="667"><i></i><img width="150" height="100" src="http://th09.deviantart.net/fs70/150/f/2011/033/3/a/link_by_viviphyd-d38lucc.jpg"></a><br />
 	</span><br />
 	<!-- ^TTT --><br />
 	<a href="http://Viviphyd.deviantart.com/art/Link-195854556" class="t" title="Link by *Viviphyd, Feb 2, 2011">Link</a><br />
 	<br><br />
 	<small> in <a title="Link by *Viviphyd, Feb 2, 2011" href="http://browse.deviantart.com/digitalart/paintings/illustrations/conceptual/">Conceptual</a></small><br />
 	<!-- TTT$ --><br />
</span>

```

  
  
With this information you can now grab the image source with   

```auto

item.xpath('//span/a/img').get('src')

```

  
and the title with   

```auto

item.xpath('//a').text

```

  
and category with  

```auto

item.xpath('//small/a').text

```

  
  
  
  
Edit: Looks like I took way to long to write that. Glad to see you're getting the hang of it.

---

<div class="post-metadata">

**Author:** ![pooploser](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pooploser/32/133851_2.png) [@pooploser](https://forums.plex.tv/u/pooploser)\
**Post date:** [February 2, 2011, 1:43pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/31 "2011-02-02T13:43:31Z")

</div>

oh dear, this is lots lol……  
  
glad you’re still here.  
  
i managed to get the main menu to work, and what you wrote just now looks VERY promising.  
  
however, would i write the last bit? i thought of using the rss page.   
  
or your idea, using super\_img as the main image.

```auto

####################################################################################################<br />
def ImagePage(sender, pageUrl):<br />
    dir = MediaContainer(title2=sender.itemTitle)<br />
    Log("Success!")<br />
    pageUrl= pageUrl<br />
    dir = MediaContainer(mediaType='items')<br />
    content = XML.ElementFromURL(pageUrl, True)<br />
    Log(content.xpath('//div[@type="type="application/rss+xml"]'))<br />
    for item in content.xpath('//div[@class="tt-a"]/span'):<br />
        Log(item)<br />
        title=item.text <br />
        titleUrl = item.get('href') <br />
<br />
        Log(title)<br />
        Log(titleUrl)<br />
        dir.Append(Function(DirectoryItem(PhotoPage, title), pageUrl = titleUrl))<br />
    return dir<br />

```

  
  
  
  
EDIT: i was hoping to use the rss feed. as it gives you up to 60 images. but there the quality isn't as good as the super\_img.   
if there is an easy way to make a login work, lets use the super\_img within the source, because not all pictures are available for non members.  
or as a workaround, for the rss you don't need a login, but the quality is slightly lower.   
your thoughts?

---

<div class="post-metadata">

**Author:** ![hrcolb0](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hrcolb0/32/380_2.png) [@hrcolb0](https://forums.plex.tv/u/hrcolb0)\
**Post date:** [February 2, 2011, 1:51pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/32 "2011-02-02T13:51:57Z")

</div>

> [@](#):
>
> now to the most important bit. every (sub)category has its own rss page.   
> how do i create a link there?  
>   
> the website sourcecode bit is (for example):  
> 
> ```auto
> 
> <link rel="alternate" type="application/rss+xml" title="deviantART: Newest Classic Portraits" href="http://backend.deviantart.com/rss.xml?q=in%3Aphotography%2Fpeople%2Fportraits+sort%3Atime&type=deviation&offset=0" /><script type="text/javascript"><br />
> 
> ```

  
  
When you set the pageUrl in ItemPage(), you can either continue to parse the page you are looking on, or you can grab the rss feed url and then parse the rss feed page. Example  
  

```auto

<br />
def ItemPage(sender,pageUrl):<br />
    dir = MediaContainer(title2=sender.itemTitle)<br />
    Log("Success!")<br />
    pageUrl= pageUrl<br />
    dir = MediaContainer(mediaType='items')<br />
    content = XML.ElementFromURL(pageUrl, isHTML=True)<br />
    i=0<br />
    for item in content.xpath('//link[@type="application/rss+xml"]'):<br />
              rssfeed=item.get('href')<br />
              content2=XML.ElementFromURL(rssfeed,isHTML=False)<br />
              for item2 in content2:<br />
                        Log("Success!")<br />
    return dir<br />
      <br />

```

  
  
Now this rssfeed uses namespaces and I have no good experience with this. Google and other plugins that use namespaces should help.

---

<div class="post-metadata">

**Author:** ![hrcolb0](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hrcolb0/32/380_2.png) [@hrcolb0](https://forums.plex.tv/u/hrcolb0)\
**Post date:** [February 2, 2011, 1:53pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/33 "2011-02-02T13:53:06Z")

</div>

I have to go plaw throu Snowmeggedon to work, so I can help you later. Once again, google and other plugins are VERY usefule.

---

<div class="post-metadata">

**Author:** ![pooploser](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pooploser/32/133851_2.png) [@pooploser](https://forums.plex.tv/u/pooploser)\
**Post date:** [February 2, 2011, 2:05pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/34 "2011-02-02T14:05:22Z")

</div>

i have to laugh at myself for knowing this little. thanks SO much for your help.  
  
i’ll try a lil more, and maybe some other kind people will also join in a little. thanks!  
  
  
  
edit: it’s probably right in front of my eyes, but i haven’t got a clue how to make it list the rss feed next.

---

<div class="post-metadata">

**Author:** ![friedflix](https://avatars.discourse-cdn.com/v4/letter/f/c2a13f/32.png) [@friedflix](https://forums.plex.tv/u/friedflix)\
**Post date:** [February 2, 2011, 3:59pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/35 "2011-02-02T15:59:23Z")

</div>

> [@](#):
>
> All I can say is this; A number of active plugin writers, myself included, knew no python, nothing about on-line video, audio, etc when we started writing plugins. We wanted to see some of our favorite content in Plex so, instead of waiting, and pleading, for other developers to do it, we looked on-line, read some articles, maybe bought a book, looked at the source code of existing plugins, and wrote them ourselves.   
>   
> It's not that hard, and if you get stuck people will help. They are just more inclined to help if you actually try first rather than just saying 'can you do it for me please'. Just look at the recent thread by MTI in this forum for a great example of just that.  
>   
> Jonny

  
any books/websites you recommend someone wanting to learn go to? Any that you used?

---

<div class="post-metadata">

**Author:** ![hrcolb0](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hrcolb0/32/380_2.png) [@hrcolb0](https://forums.plex.tv/u/hrcolb0)\
**Post date:** [February 2, 2011, 5:01pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/36 "2011-02-02T17:01:01Z")

</div>

> [@](#):
>
> i have to laugh at myself for knowing this little. thanks SO much for your help.  
> i'll try a lil more, and maybe some other kind people will also join in a little. thanks!  
>   
> edit: it's probably right in front of my eyes, but i haven't got a clue how to make it list the rss feed next.

  
  
What part are you having trouble with? Are you able to at least parse the information and have it show up in your log correctly, or are you having trouble making it display in a menu correctly?

---

<div class="post-metadata">

**Author:** ![pooploser](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pooploser/32/133851_2.png) [@pooploser](https://forums.plex.tv/u/pooploser)\
**Post date:** [February 2, 2011, 5:05pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/37 "2011-02-02T17:05:34Z")

</div>

i’m not even sure what “parse” means here lol.  
  
the menus itself are working. not even sure how to interpret the log… sorry :rolleyes:

---

<div class="post-metadata">

**Author:** ![hrcolb0](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hrcolb0/32/380_2.png) [@hrcolb0](https://forums.plex.tv/u/hrcolb0)\
**Post date:** [February 2, 2011, 5:11pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/38 "2011-02-02T17:11:47Z")

</div>

Larding is what you did for your menus. You took their info and stored it to variables. You also said you could see output in your log before. What are you trying to do, are you trying to display the pics now? What is it you want your plugin to do?

---

<div class="post-metadata">

**Author:** ![pooploser](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/pooploser/32/133851_2.png) [@pooploser](https://forums.plex.tv/u/pooploser)\
**Post date:** [February 2, 2011, 5:14pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/39 "2011-02-02T17:14:53Z")

</div>

i seem to receive the response from the right rss website, f.ex.:  
  
2/2/11 6:14:02 PM [0x0-0x59059].com.plexapp.plexmediaserver[796] 18:14:02.275294: com.plexapp.plugins.abc : (Framework) Received gzipped response from [http://backend.deviantart.com/rss.xml?q=boost%3Apopular+in%3Aphotography%2Fjournalism%2Fperforming+max\_age%3A8h&type=deviation&offset=0](http://backend.deviantart.com/rss.xml?q=boost%3Apopular+in%3Aphotography%2Fjournalism%2Fperforming+max_age%3A8h&type=deviation&offset=0)  
  
  
  
(the plugin is still called abc for now lol)…  
  
but then, the menu appears empty…  
  
  
  
i wanna display those pictures in the plugin, yes. 😃

---

<div class="post-metadata">

**Author:** ![hrcolb0](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hrcolb0/32/380_2.png) [@hrcolb0](https://forums.plex.tv/u/hrcolb0)\
**Post date:** [February 2, 2011, 5:27pm UTC](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638/40 "2011-02-02T17:27:14Z")

</div>

For right now, see if you can grab all of the pertinent info from the rss feed. Use Log(variable name) and check your log in Console the same way you have been. If you can grab all of the info, then we’ll work on displaying it properly when I have Plex in front of me.

[Previous page](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638.md?page=1)

[Next page](https://forums.plex.tv/t/need-basic-help-with-plugin-writing/7638.md?page=3)
