Waraxe IT Security Portal
Login or Register
November 5, 2024
Menu
Home
Logout
Discussions
Forums
Members List
IRC chat
Tools
Base64 coder
MD5 hash
CRC32 checksum
ROT13 coder
SHA-1 hash
URL-decoder
Sql Char Encoder
Affiliates
y3dips ITsec
Md5 Cracker
User Manuals
AlbumNow
Content
Content
Sections
FAQ
Top
Info
Feedback
Recommend Us
Search
Journal
Your Account
User Info
Welcome, Anonymous
Nickname
Password
(Register)

Membership:
Latest: MichaelSnaRe
New Today: 0
New Yesterday: 0
Overall: 9144

People Online:
Visitors: 117
Members: 0
Total: 117
Full disclosure
4 vulnerabilities in ibmsecurity
32 vulnerabilities in IBM Security Verify Access
xlibre Xnest security advisory & bugfix releases
APPLE-SA-10-29-2024-1 Safari 18.1
SEC Consult SA-20241030-0 :: Query Filter Injection in Ping Identity PingIDM (formerly known as ForgeRock Identity Management) (CVE-2024-23600)
SEC Consult SA-20241023-0 :: Authenticated Remote Code Execution in Multiple Xerox printers (CVE-2024-6333)
APPLE-SA-10-28-2024-8 visionOS 2.1
APPLE-SA-10-28-2024-7 tvOS 18.1
APPLE-SA-10-28-2024-6 watchOS 11.1
APPLE-SA-10-28-2024-5 macOS Ventura 13.7.1
APPLE-SA-10-28-2024-4 macOS Sonoma 14.7.1
APPLE-SA-10-28-2024-3 macOS Sequoia 15.1
APPLE-SA-10-28-2024-2 iOS 17.7.1 and iPadOS 17.7.1
APPLE-SA-10-28-2024-1 iOS 18.1 and iPadOS 18.1
Open Redirect / Reflected XSS - booked-schedulerv2.8.5
Log in Register Forum FAQ Memberlist Search
IT Security and Insecurity Portal

www.waraxe.us Forum Index -> PHP script decode requests -> Please help with decoding
Post new topicReply to topic View previous topic :: View next topic
Please help with decoding
PostPosted: Wed Dec 09, 2009 1:25 pm Reply with quote
vladowsky
Beginner
Beginner
Joined: Dec 09, 2009
Posts: 2




Can somebody please decode this

Code:
$slk_evc='+jEb4SdZmf0hnAtiQuScJkylU8hS48qBQjXOQR8U/pcb4fHBRZH=rp66/RBVyyDL/2oxpLoxJL0WAk+lyOlX08BS/ZBSXkDLrj+O0y+7XpEHQu+lRiE=Jk+6UREvEpzHQkzfpUd=JD0SXkzpJUqDANw6U8CSQkqgyiyX0flKpssGJp8gJUm=J3ziRsHo4NV7CL8gXksiApEo4kqB4goZJLo2Ai8ZC8oHQks+JksiADEbQUEg0jm+0SXVUREArUygpUmZykV1/k0SppDLyi8X0S+VXpEHQu+lRiE+HjmwRfqaCk8Nm3zEyNDSA2wWAksgJUm+J3Jk/ym6Qusgp9oXJ2m2AD0SCNzHQkqg0LoxJpEoXk8gJUm+JksaAUS6m8DKmum0yNs7Xsc=4fHBAZH=JSXSUR+24kl9m3cv4flKpssGJp8gJUm+JksiApEH43yBpim04Ro2ADE=C3BKRi+XJLyHApcu4fNKX3VxHUdPRN0z4SqpX3lxySwSASELvpEiJUm+JksiApEoXkqgQuSZJLo2AREUryDLpi88JSsq/DCV4fNKEulxySw6ApH2QNSpARy+JLyHADEMrsDLRZmJpUdoApEoXk8gJUm+JSsWUpELmNSgHR+nrZoxJpEoXk8g0R8gXksiApEo4UH9pZsZQZyGApc=0ywKvyEDykB6UymvQusg/2X0Hfc6R9q6UUENJRX=JLcPRNEZQDzgpUl8AsBSASELvpEi0R8gXLNVJ3mH4fXjmjXUANV7Up0WmkDLyi8X0S+VXpEH4fXjmjXUQy+LAREArUEBvUq8JSs7XDmkm8XlpiE=rRhaRi8aCD8742+JpUd=UfSimsqjyRH=ANwS/8mi4kDLrj+O0y+1UR+aCN8gH9HEJ3Eq/yHZr8qlAREv48pzRUSUQpVNpRo4yS+aRSHE0NSlHRo4yuE2RSHAQkdN/2o0pUd0X8sGADNLrj+O0y+WU8miQD8V0pyEHgo7ysEbHssgyfyXyS/WXpCV4Uy9Cgs4Hks7/Z+AQs8g09X4H3zl/ymv4sqBQjXOQpsaU8mA0yDKpZs4HkyPASELvpEi4kXcAuzaXpEaC8oHQkVfpUdop8m4ru+jX3V0rZJLRu8v0uEPvyEDykB6UymvQusg/2X/0yq=yNyUpshz/2E=r9c/AiDk4kDLrj+O0yqW/DmUmpqVrsc=r9m7XDmkm8XjRiqcJk66/RBVyyDLX38Xyk6zUfqHxSXjyfqO08+b/pEArUy90Ud=Jk66/RBVyU0KRioxp2mPASyvHp6LpiHRHkVgyfl=4kkWvpsv0NBkXUSD4DVyARXA09HJA3Si03EP4synHpXBXDyApkVbXuVcH3WKUDyA4y+jAimny9c+Rfl4vs0WpZ8R0NpLX8yZCNlR42oxrOCTgJqqXOhcXiyP/2HqQ3VYX9cqC2HL=MmLQulYXjEZ+KDqgJqTgJqfmUVZmu8GQOoLQulYXjEZ=MHLmjBqgJqTgJw+XfdK=MHqnRtT+uDIC2HKQuyP=MHLmjBqvKHq=KbqgJw+rWk=MJDDQ2+DBgkhQ2+D=jES/iEkCOhDC2HKxMHqxgNq=RbEMhD++uc8rMtdBMcLmj+qQfCqC2yOC2HK=MCW0MCb0MWKx9EkCfz8QOcLmj+KX9/wXuyZ4uy6=MHGCfJq=ADqxfH8/3c8rMhDQ2+D=RbEMhD++uc8rMtdBMCWrMCPC2yOC2HK=MCW0MCb0MWKx9EkCfz8QOcLmj+KX9/w+uc8rMDq=AVLmj+KX9/w+uc8rMDTgJw+MAHD/9HcBM6dBuEwCOcwX9cDXU0w+uc8rMDqvWk=M9kEMh8KX9HSCf6w+uHcmuNqvWk=YJk=YJk=X9XcQMcLQulYXjEZ=u+cC3p3EsdDXUEGXupw+jEb4SdZmf0q=ADT';$slk_dvc='ZXZhbChiYXNlNjRfZGVjb2RlKHN0cnJldignPT13T3BrU0tuVURialJEVkJCbGE2aGxXekpUYm01RU96OFdTV0YyWkxSMFYySW5RTTlrU1oxekxGdHlVb05FTVJGelJWaGtSMGxUZHUxRWN4ZHphU2xHZTJWbVkzUldlbnd5SlY5R2VEcFVQUEJGYmtkbVlvaGtWWmxuWjBRVmM1VWpRVFozUjBWMmFqZGpUM0pUVXcxMmNCSm5XNlowVllGalVFdEVPdTlTWTJrbWFNVlhSd3N5TUoxMEpzY2lOcDFtUTRJblNQWkdSUmhIZFpwWGJMUkVTcVJXTUdsalV2RmphMGtVY09semNHdHlWWlJXVzBGRGFYbGplb0ZIVnZFekt6OUdTdEZXYzZobmN4SjNWUGRUYXdjV2M0MG1keFprUzBJbFJ4Wm1lWHRDVFNGRk1ZOVNNNGxtZUk1RVozRXpLWGxFWlhKMk4yNWtkbkZuZHlkV2E1d2tVMmxsVXhFalNHcG5kT2hWVnk1V2N4aEZlMkYzYjVrV2N4cGtUcVpuYjJkV2FhZDFieEJqY1hGWGM1b21acUIxWks1V002RlZXQ05uZXhWMWJ4cG1kU2hrZHhjalJ0MTJOUWRWUnh4V09ubDBWdVJuZVhGWGExaDBWS2R6YnFaWFN2WlhVeEZYYzZkVmNPWm5hMnBXV3h3V08xRmxSWjFXV0tGWFR6aDBLeGxVY3VKVld4aG5ZeEFWYzJWVlV4RjNaeGduUjZkVk9qOUNPT2hHTng1V2JTZFZXeGxVY3haMExJcFVPeHAwS3FWMlVyVW5jcDFXUXZZbmR4OVNjdWwyTnZabmRxRkhNWnBuZG5OMk5ScG1kdkZGZTBGemJ4TjJMMkZYYm5sbWEyZHpiWGQxWnhwMk14dzJWeHBHYTVjbFVwWm5SWjlXU2k5Q094cFhaa0YzY3ZFWFdrZG1lSmxsZUlkRmJxWlhjMmRHVTJSWE12WkhOMVpYY3VWVmF1bFZXUnR5U3ZGWFNDSkZTWDlpYUlGM1R4RURlaWRqZUtKMFpwRjNOM0luYktSVVU0UjFOSTVXY25kbFMxbEhTeFozY3hnSGRaaFdPRHBIU1g1MkxwcEdaRWRsYng4aWVxTlVTNmQxTHpoV094RjNVblozTjZGblk2WlVjbk5uWnhsbFVHZFdjNmRsYnlkVmFYaDFMUlpIWnhoVGJ4Y0RhS05tYXhkbFpxeFdPdGRET3hkVlM2RlhkaVozWmhwR1pyMFdjNDBtVTZKblNDRlhheGR6TlJaM2NTWjBaRzlpZXVKMlpwNTBVbkZ6SzJGSFdyWVVWUkZuY0o5MlZIVm1TeGxGUlJ0U2NxRlhjaWQyVks5a2FHdHlWMzhtUzJkalJ3VVVXS1pIVzFabmJaVm5Sd0kxTnhva2RKOW1UamRUTXFaM1pSaEhkNmRWT2pGbmVLaDFaeHNTYkpoRmVVZFdjMk5UWlFkVll4bzBLWFZHT3RaMFo2ZDFNbmxXY1ZGWGE1d1VTeGtFV3hoRU1ERjNWS1ZuYm81bWRaUldXMEZqZUtaMExJZGxTbjltYWs5U000UjFaNnBtWW5kMVp6cEdhNW9VV3BwRVczZ1dTMWRWTXhobVR4cFdXeFlFZXNSVE13Y3pacDUwVG5kbGJuOUNaYVIxTjJGSE4xaDJWek0wVnVOWFc0MFdVdkVqZEc5Q09PUlhNc3AyYnhCbGRpZGpkT1owTktGWGR6aFdjekYzYnhGVGMybGxkSmxXY0tkamV1WjNaeHNTVXhnV08yRm5jT05XTXNsVFdKUldiT2wwYndjVGN4RVhPVmxXT2tOSFpYWjNONkZYZDlvVWMyZFRVMk5YZElGblIzWWtTR1ZIU3hobGFHNVdjM2dUY1hGblJ4bDJacFpIYTFoa2FabEZVMnRrYTZoWGE2WjNaaEZIYnFOWFZwRlhkVXBYY2lObmV4WldXbXBXV3paVU8wbDBid01tZTI1RVdxaDBLWGREVzVzVVd2bHpRSkpuVDZOa2N4eFVWUnR5U0pwWFNGSmxkT1ozTnhzU2N2OG1TU0ZEYUtKVWQyWjNObFJtYXpGRFNYSldNNjVXZFhsbVRZOVNNMkYzTGtabmRuOW1TcGRXTXhWbGFLcG1TM2ttYWg5bWVxcFhQc2RWWWxoektLRkhaak5EVjZwa1FscGtkNlZHWng5V2N4Y1djNmxtYnhvSFNYTjFja3R5WnhoRmV4cDJiMlZIZVJkMlR4b2thWmRHVzU0VVN2bDFNMVpYYzBVVmE1YzFOdmRWZFVwblN6b0hheFowY0daM1p6RnpaMnBYYVpObWVJRlhSVmwyS2s5MmIyUlhNSWxETlNaWGN6RWxTcVpIUkd0U1RwRlhieWxVY25kVlprdFNjeFFXVzBGRFNYWjBMa1pYVGxoVGNYVm5SNFIyTjZsVVJuZGxTa1ZIYXVkVmNwcG1SNmRWYzVJbGRYTjJMcDVtZEVsbWFZOVNjdEowWjZGbmRxWlhjWmxGVUtKMU5vRlhiWnBrZG5WR1p4ZGxVR2RHZEpGRGVqZERVWE5rVW9GWE94RkRlaWREUzVrV2M2ZEZhMVFXY1pGalI0NTBaeEZuUTFoa1N6ZFRhNTBXY3ZkRldaRm5UR2xrZXhWM2NtRjNZVkZGZVNGWE0yVjNWcEZuU3ZrV2M1b0dPeEZXTXZselE2aFdjemNXY3UxbVVHaG5ZSnBYU25GM2J4TldWcGxqU3ZnRmVHZG1lNTBXTUtaSFd4TmxicGQyYnhSM1p4bDBNeG9rU3pkV2FxWjNjUmhIZHg4bWQ1VUhTWDFFTnlwbVNaZGxieHBXY3dRblUycDBUM0VuYTVFSE94WjBadnAyTXpsV2N4RW5TcWxWVlJsRVd4aGtTemNtY3hwMExYRlhPM2dWT0xkVGN4WlhjcDVFYU9kMUt6ZFdhdEYxWngxbVF4RjNaS3BHT3VsV2NUdFNkUmhXY2lkelV4UlZjS0ZYY3Zna1NobDFiWlpYTVFkbFpTaG1ibmxVYXRGek5JcDBZcWxtVERwMlV1MVdaS2xWY25GamRHcFdjbjUwY29samFuOTJWU0ZEYXFKVWNwRm5SelIyS3pWVlU0SlZjeGtUYXhBVmNHOXlicllYV1lsRFp4cFhPMkZYYU9aWFZ5cG1TU2xtV0hkbWV4bFRjUmQyY3FabWFaZG1TdVIzWjZ0aVJ4QVZjNkZIYjVrR1JwZGxkcTltYnRsa2NYTjNMcHBtZHpsMlZMRm5kNU0yWjZwME1uOW1iMmxWTXdRMkx2cFdPU2hrU1hGSFV1eDBja0ZYZE9wWGJDbGxTMkozTDZsemJWRkZlTGRXTXVWM1Z2Rm5aSmhtYm5OWGFxZDBaNnBVYW45MlZtcDNWdVpIUklwbVJucG5hemNXTXg5eWNvbHpWemxtYVlsbGVhMVdXS0YzUkVaMEt0ZDJieEoyWng1bWFKOVdjeXBGU3hsemN2MW1SM2dtU3RWSFNYUlZWcDUyY3h3MktzcFZjcUowWnY1VU8za0dNcGRqU1pOVFVHbGxRbmxXY3hVbGN4OTBjeDVtVW5GbmJpRmpTS1IyTjY1Mlp2RkZlMXBGUzVvbmNvZEZhT2xXYzJsRVpaRm5hdkZYYVZaMFppRm5TcmMxY210U2R5Sm5XelVuZDJGM0x4cFdhejltZDBGemJLVm5ZSTUwVW5kMUtrZFdNblJWY0dGWE8xaDBWWWR6YnVOWFNSbFVNbkZYYnpFRFVYbGpha3RDWnY5V2JZbDFidE56Y3ZGblJuRm5hWkZEU3FGMUx4a1RkWGxXY1BWSFN4ZDFia3BXVVZkVmMwY21jT0ZYTUtwV2JKbG1haDlXTTJSemN4ZG1UelIyS1g5eWJLUjJOR2xsY2xwVWN4OVNNdWwyYklkbFIzWUVlamREVVh0V2NzRkhaelJtZHhkV2M1UVRkR0YzWXY4V2NNVjJVcnNVYzZoWGQ5TTFaajlTTXIwV1d2MUdXSnBuUzBjalMyZEVSb2x6VnY4MlYycFhhdUZYTVFGM1FKWldjazlHV1pGbmV5cFVheGRsVHNOa2NxMVdTUnRDYnA5R014SWxSbkoyWnhGWFczb1VjMUpuY1hKMEwyWlhNdkUxS3BwV001RVRXSUZYYkpKM1Z6TkhheFozY3ZwRVZ4WmtkNkpIYVhabWFUNW1kSmRWV2s5bWVxUlRTWDVVV25sV090OW1aT1ozTkkxMll2Z1djbTltZTVFWGN2ZGxZcUZqYkNkRFV4cFhVeHBXT3g5bWR4RkRTeGxUY3k1RWFVRnpLemwwYjJkMVo2bFVaVlpuU09wbVpxOTJMNGNGVzNnbWFEcG5keGRXY1Q1R1VxRkRlU2xWYzRsV2RJNWtTM0VqZGtsRk94RmplUmxqUXZZVWN0ZFRhcVozTHhrelN2RlhiMWRWYUtaM1p4cDJieEZ6SzFKWGE0RjBMR0ZIV3pSMktNRlhNNVFuYXhvMFk2WjNaamRUVXhaM2JZbFZjeEZUYzZoWGN4SlhVc2xUV1NaRWUwOVdNSlJ6Y3BGM1RsUjJLMk5IU0tKVmNvRm5lWDlXYzJwbVIyOTJMR2xFVzNnMlZDbGtjWE5YTUtGbmRuQlZiMnBXY3hsalVvRkhWVmxtYXRSVWFYVjNWNnBtZFNablNQZG1lNW8wYlk1Mk15SjNWQ0ZEVXhoMUw2bFRjcTkyVjJwWFU1TW1lSTVrU2xoVmI1TTNiWEpWU3g1MFlxRjNWeTUwYngxV1NSbGpVcUZuYXRkalNLOWlhMkZYV3hCbFNTRkRhWDFXVjJaWFZ4OUdNcGQyYnFkVk14azFZSkozVlA5MlV1ZDJjcFpYTW5GVGMwSUZhWHQyWnZGbmRTbFdjWHBXYzRaa2F4RjNZcWhrYXZkbVNaRm5leXBVYlpwVWNOZFdhd0FWV3hnblV4OUdNdGRXYXg5a2FtbFRjdkZEZXo0bVJ4Sm5lb0ZuZXpZbmIyZDJieGRWU3ZsRk5KRm5UelZWYTVvMk52Rm5ZeGhtUzFkVk14ZDBiWDUyVjNFelpHRm5SdUpVU3ZGSFdxaFdPa2QyVTVRV2N2cDBZdllVYzZkMVV1WjNjWTUyTVg5V2Mwb0hTS0YyY2t0Q1puQlZiMmRXTVpOVGRvRm5adkZYY3ZOblI0UjJOeEJqYTFoMFZzOVNNeGxUV2tsVk02SlhPeXBIYXhwbmFJcEdUM0VGZUxkV2NxbGpVMnBrU3Y4V2N0OUNacUoxTjZwMVFKbG1kbjlpYzVvRVJSbERkeEVEZTJsVWFPaDFjbzUyWnhRbWJ4b1hVNU1UVklkRmJEbG1iemxFV254MlY2RlhPU2hXY3FwR1N4MW1hUWRsVTNvSGVwRm5leEpYWjRFM2N2Z1Vjem9sZHdRWGQyNTBheHdXT1hsVU01Z2xhMjUwWW5GMVpzTjBWdVpuVXBaM1Z2cG5hQk5YYXhkMWNHdENaSkZGZWlwM1ZaRjNjdkZYTW5GVmN6SmxkdUoxTnZwa1E2Wm5TeTVVYXhaWFNtZEdaVkozVnRWbmR4VlZWWHRTV0psV2MxbFdNMk5qVTJGSGRxWlhjUGxGVUsxRVZ4QWphejlXY0c5U01yRTNiSWRsWTNvM0syRmpTS2hWZG9GWE8zZ2pXTEZUY1hsMlp4cDBZM0V6S005U1U0dGthdnAyTXhGblR0TkhTeHBVU201a1kzb25XMUptZHhWWGNLRjNWcUZUU1lkamR1Sm5ZMjVrU3ZjbGIyTlhhMkZ6WjZkRk4xaFdjMFVWYXh4VWNUTkdaSnBYYzZKR1NLTlhaWTEyY2xoamFHZERhcjBXVm9GM1FaaG1hdlJVVUpoVmNHaG5ZeG9rVEdWSFN3RTNaWGxGZFo5V2M1VUhTWE56WnhzaWRWRlZPc2xXTXRKMFpwNVVidjhtYTVjalNLMVVVSXRpWXZZVWN4OFNheHgwTHZwV1l4RWpTMmQyYnhoMU52dGlkeGhWT05wRlNYWjNaeTVVVFhsV2MyRkRTYUZXU3hra2U5TTFaMGRqZTVFM1pRcEVXWnBuU3pVbVMyZHpMWEYzVmxGelppbDFiWE56Wnhwa1psWm1iMmxGWlpOalR2bHpRNlozVktkVGN1TlhTcHBFVm5GVGI2ZDFiS05uYW9salN2Z3pWTkZGYXFKWGN4RW5kdkVuYXpSVWEyRnpOSXBrWXhBVmNrcG1aNVkzY2taWGN4WW5UNUUzVk90Mlp4c3liWkZEZVNwV010WjBMR2RXY3Foa2F2bEVadEoxTjI1VU92Z1djb1ZEYXhGSFJSbEVXeGgwVnBkbWNYWjJjNDRXY3pGVE9rRlhjT1JUZElGSGI5UW1idEoxVnVGelp4RlhkaVowWmpkV1VxTjNMWWhYZE9GRE0wZGpTMlowY281bVNuRnpaeHAzVkpKVVNwRkhXbkpYYzJOblpyWVhTeGxqZHhKblRhVm5kdU5uYUs1Mk1YcEhlMGNEYk9aM054c1NjeEJWYkdkbWVYbFRjNkZIYnZFWGNYbFZNd0lWTXZwa2QxWm5TREpGYXFselp4a3pTM0VqZHRGM1ZPRjNMeHNDVFNsV2JHZFdjdEYwY3ZGWGNuRm5hdk5uUnJJV01vZGxZSjlXY2tOSGFxbFdjdmRGZEo5V1dDcEhTWHBrYWtGSFp2Um1keGNXTXhSVGRvRkhXbkZuYjJKbFI0Vm5UNmhuZVhGblRqZFRNclFXWlRkbVkzb1hPamxsUzJWM0x4RjNieFkwWjBsVk1xSldkMmQyVGxoektubFVNNTBrV0dGM1FKbG1UeDl5VnVOWFM0b0dXbkZUYkNkV2NPcDFaeHBXV25CbFcyZFdNWkpVYzZGSFpuRm5hdlZWYXhKMk52cGtkM0ExVmpkVGE1YzFaUkJUVHVoMFY1VW5SeDVVVlh0eWNFbFdiMXAxYnFSemN4WlhZeHdXY0twR1VLWjBaNmRWVjRsV2NZOXlWeFozWnhjbVlaOW1iMEZqU09OWFpZdHlaSmRWV3pvMWI1WTBMMmRsU2xSbWJabEZPcWRVY3hobmVYcFhjdm9HYTVZWFZSdGlSNkpuYXlWR1V4cFhkb2xUV0VsMlYwZFdjdU5rWUlkMVRuSm5iMmxVYTJGbmE2cGtRcWQxWmpkV2N1bGxVcEZYWXFGVGJHOUNheEYzTnBsRFpKUldjMmRXTXdnVFNwWlhNbFJXY3ZkV001UVhXeDRXYm45MlZzRmpTcVpYU1JsRFp2OVdjR3AyVk9OM0xYNTJjbmgxS09sMGI0bFRjeEVIWmxSMkt0TkhaeFozWnZGSE56RlRjc0ZuU3FsMmN2RjNNYVpYVzNjMmJPOTBaeXBXT3hkVld4cFdjeGxXY3BaWFRVRnpLdlZsUjV3bVR2cG1Sdmd6VnpkMmJ4bFZNWWRtWTNnMlYyVmxSeDUwWnhwV1d4WVVPMGxsZXFwbllJZFZSMVprZDI5V2F0SldXSXBFTjFaM1Z6RTFVdTFtVXBaWGNucFhjNUVYY25sek54c1NiSlIyVjE1VU13Y1RkR0ZIYU9GVmNuSmxSbkZqZVJsMU1uOTJWeWxHYnFaWFNwcEdkcWhVTzZKblJ4TldNS3BtZFNkbGJ6NFVNSkYwTFlkMlkzOFdjWGxFWktoVld2WjNNWnBrZEg5V2N4ZFZjdmRGZDNFVGJqbGtjWE5WTUtwbWR4aFZTU3BuY0taWGNwNWthdklYYzJsRVdKTmpUeHBtZVhGVGMwY1RhNTAyTktkbFJacFhTaWxVTXhKWFZ5cDJZSjlXYlJwWGF1VjNWeHAwVW5sbWJubGtaSlJXV3hsRE5TaDJWT1ZuUnI4V1ZwcDFWdkZETTRrMFZPRjJMUkZYV2xoalNTZGplWGx6YzZGblpKaG1iS1ZuZHVKbGF4QWpjWDkyVnlSVFV4ZDFMazFtZHFGWGNwVkhTWHAwTng1bWRTRjFaVWQyYnFWRmV4cGtUeG8wS0tWbVNLMVVVb0ZuZG5GVGMyZFdVcWxXY3hjV2NFZEZlR2RXYXhOMGJ2QnpadlFtV0xkalI1a21VR0ZYVHlsbWFNOVNNNXNVU3gwMk1TWm5TT2R6YnhkMU5RWm5SM2dtV0NGWGF4UjFOdnR5Y3g5MlZ4Rm5lSmwxTks1a2NVOTJLbjltWm5SbWF4NVVPbnBYY3lsbVNxMVdXeGdIZHZGVFMwTVhheFJtYWt0U2JFaFVjMTVVY1psVldLWm5SelpVYmpWSFN4VlhVb2xVTTNBMVZQOVNVdWRXU2twbFRxOW1TQ3AyVkt4V1VzbGpkSlJtYnhsMGJ3UTNaeGRHZHZFbmFNZFdNcllVU3ZwRU56RlhjT2RXY3FsbGF2Wm5ZM0VUYmpkMmJPdFdabXBXT25GVE9McG1kNVFqVTJkVmN4TmxidFZWYWFGMmI2RjNRSmxXY0twR091eDBaUUZuWTM4V1NCOWlSeFZWTXZsemJ2WUVNU2xVY3dvbWVJRkhXdmsyS1hGWGN1Um5hSXBVYW5GVGNWcG1TeDEyY2twbVlxRlRidGREVXhsemNrdGlhSlIyVjFGbFJaMVdXS0ZYVG5GVmNwOUdTMkoyTnZwa1lubG1UQk5uUjJkVlNrcFdVcWhVYzBFRFVPcFhVeDVXYkpGekt4cFdNMkowWng1VWNuRm5hdkpWYUtoMU5vcFZkaVpuZFJWblJxTldjdlpuWTNFWFcxSm1kblowTnBsRFpuQjFWa3BtZHhsV2N4cGtTMzhtYnpsVWN1RjNMeGtFTlZaM1Z4ZFdjcUJWWjRvV2RPOVdPMnBtZXgxMGNJdHlidmdVYzFwRlNaSlVTdkYzY3ZCbGJuZFdVNTRVY0lGWGJTaDJWS2QyYnhaM2NrWjNSeEZYU0dkV2NLbHpjR3RpUzNvVWJOUmxlcUoyYzZGM1JTWm5hWlJVVW5GVGNJZDFZNmgwVlA5U011ZFdjNG9GYnVwblNqcG1jTzFrY1J0eWMzZ2phaDlXTXROVFpUZEdkbFIyS1hWMVZaUjNOb3BrUWxwVWN5VkdPeEZYY3ZaSGRxRkRNWnBuZE9wVWNzRlhjcWhGZXhGM2I1VUhleHBVT25GbmJ0Tm5aNTBVYTZwV1F6ZGxTaFZHWnIwbVVwZEZaMzhHZWk5aWR4MTBOUlozVlNaRU1ZbGxSS0pVU3hwMFRxWmtibmRET2FkVlZwcFVRcWQxWnpWR09xbFZXUVpuVHZGSGUyRjNWS1IzTHhwR1R2Z2xiekluY3RKWFpLWkhXM0VsZHpsVk01SVdTdkJqZTlBMVZtOVNVeFJXU3ZaSGRaOW1TcFZIU1hOV01zbFRXdmttV2hsMGJ3QVZTeHBrVHpSMktYTjNiS2gxTm9wbFFuOVdjSFJFU3hGWE1HbGpSM1lITXpJR1NPcFVaWXRpZEpsbVdVZFdjeGxUY3A1RVZWZGxiemwwVloxVWF4MG1SdlkyVjJOSGE1b1dWUmhYZFJaVVdwTjNieGhHTlJ0eWNFRjFaeHBYYXVaVU1RRm5jMVlXYzVNM1Z1Um5leXBVYXhGMVoxZFdVcllIUnBwbVRKcFhTbWwwYnhkbGFJcDJjWmxXYzFKbmNyTXpjcFpuVDNFM0trUlVhdGQxTnhsRmJscGtTQjlTVXFsVFNYbFZjeGcwVjBjbWVYVm5jeUZYYko5MlZMcFdjd29XU3hGSFozb1hPdEZEWlpSWE1vZGxRbHBVY3hFM1V1cEVSWDVHWlpGWFd0RkRVWE56TW9GWGNKOVdjeG9YVTJablVJZEZidmttYU1sVlVuNTBaeEFUWnpGVGMycEdTcWx6TlFkbFl4Wm5UMmQyYng1VWNUNTJjcUZUU2twWFU0MTJadmRsY3pZWGM1YzJieFprZVJGWGF4TTFabzVVTXI4V00yNVdjdm9IZUNWSFNLWjNMeHNpYXg5V2NrZERhS05UY3BGWE16aFdja2xWTTRKVmN4WW5ZMVpuU3Q5U00yZDJicDFXY3Y5V082Sm5keGx6THA1V2J2a21hWGxrZUpoemNwRkhOeEJsYno5R1pYVkhWeGxGZFZaWGNzOWllNU0yY3ZablkzRVhTR2REVVh0MlpYNVdjWmhqZHhGRFNLRmthWGQyVFZKbmFabFVVclExTHhaM01TaDJWemRUYTVvVVdRZGxZMzhtZDBNWGF4NTBMeHBXYVZkbGJTcG1lYUYwWnlGSGF6aDBLeE5YTTRORFZJWjNRSkYzVnk1VU1yMEdSMjVXY25GamRpOUNaS1ozY0d0aVNsaGpTa2REYVhKMFp2RjNadkVsYnBkMmJ0RlZXMjVXV245V2NtVkdPcWx6TGtwbFR4aFdjNmhYY1hWbGFLcFdiRWhVYlhkV2NxWjBMNEVIZHpabWFRVlhheEptZXlwRU4zb2tkTmRUTTJOV01HZEdkWkZqYWpkRFVYeFdOSXRpZHhSV1d6b2xkS0YwTG9GbmVhWm5ienAyVTRSMlp4cDJNU1pYY3hOSFN4cFVjUXBrVTZKWFMyOWlSeHBYWmtGSFQzODJWaXBtZTQxV01RZDFUdm9YT245V001UW1heEVYT25GWGNWbEZTcTFXVlJ0eVJ2Rm5kelUyVW5SM2MyRlhjcXAwWXpRbGV0SjBaNkYzUnZkVmN2OW1SNVlYV3ZsbGR4QVZjS1ZtWnhSV1N4bFZjcWhXY3pNWE14Wm1lWDVtZFNoVWJpZFdjcVpYY3hwVU96WjBLeGRHT3FaVVM2bGtZWk5WY09WbmR4OTJadlpuWTNvbmI2Sm1kT1pVWlkxbWR6OW1kMEZYTVhsbVVvZDFVM0V6S3RGalI0UjJaeEZuUTFoMFZPcEdTeGxWVzQwbWRuRlRXcGxsU3hWM052NUdVekZuYlNkV011bFZTWHBFWnhwMEt4bDBicUZqZVhsVE9uZGxUajlpY3ExV1NSaFhjdkZUYkdwV2NuTjJaUnBXT0VaWFd6UWxlcklXVjJablRuRmxhdjlDU3RGVmNHWm5kSmxtVFlkV2F4WlhTbWxrVTZKM1ZwZFdjSzFFTng1V2JKUm1kT3BtZUpGamF4WjNWcVptYU1sRlV0VlhVR2xsY2xwa2RtOVdNcncwYkdoSFZ2RWpiNWNXYVgxMmNJdHlWdmxXYmlWMVY1a2pVMmRGYnhvVWNaSmxSblJYU3ZsRk5KcFhjMGRXY3V4MGJrZFZUUlpuVGlwSGF4eFdWWHR5YnZZVVNZRm5kdWxWZElGSFdsUldjeDlDWjJaWGNJRm5keEZuU0ZkemJxcFVTWDUyTU9GWFN6RVhNeEoyWnZwR1RaOW1TMmQyYktKV1ZHRlhNMWhVY1psVmN1aDFMdjVtUTNBMVZEVjJVdUZYY1lobllWZGxUQnBXYU9GekxwRm5kbmhqV0g5MmJ3Y2pVMmRtWXFoV09YTlhhS2gxTklaSE5acGtkeDhTVXJrMmJHQmpVeDhtUzVFalNPTlVNeDBXY25GRE1OUkZTWGx6WnhFSGF6WW5iemRET2FkMWJ4MG1laVozVno5U01yUUdSUnRpUko5MlZpTlhheFowY0cxR1RTaDBWMGR6YlgxMlp2ZEZaMWgwS1hsRlp1UlhjMkZITlNaM1ZzVmxjeDEyY2taM1J2cEhlemNXY3hGbmEycFdPM0FsYVlsMWJhRmtheEVuWnZGWGNubDBiMkZ6TklCalJuOVdjbzlTVXhSMlpRMW1ZM1lYYzVJbGRYeFdVS3BtZEpGRmVzbFdjdHBYUFFkMVluRnpLa0ZIVUtabmVwcFZicXBYYzZWSFNxOW1VSXBrZEVGbFNwZFdhWDkwTlJGM1pKbFdiMEZ6YnhOMkxrNWtjWHBrYU1sMFZ1RlhTNmhuUXg5V2MwOWllNW8yY0lwVVR5bG1XRzlpZDJoVmNUNW1TdllFZUxsVmNKTldTdmRGYlVsV09YTlhVNFJYTTI1MFl4cG5TelZWVXIwV1NSdHlTbjlHZXBWbGRuOWthMnAyYzM4V2NpZGplWGxUWktaM1J2RmxiS04zYlhKbWF2cGtkbmRsUzFsbmRyRVhTdkZYY1ZGbGRwRlhjSzUyWnhzU1dWbFdiaHBtZXFOVVN2Rm5kbkZuYVFWV01ySVdjb2RsWUpGWGM2Rm5TcU4zWnYxV1VaWm5ieUpHU09KMFpSRlhjeEZYV3o0bWV4Vm5jb2RWYnhwVWN0SlZVNFJtYXZCamNYZDFaNVVtWnhkVlNrMW1kM1lVV3RsbFN4cDNOcHR5Y1NoMFZpRm5lWEoyWlhwRVdsaHpLWEZIWlpSWE02RlhieGxtZEhkVE1yMEdScHAxVko5R01uVkhTT1J6THhwMmNsQmxkaWRqZWFKa2E2RjNadkUxS0tGM2J4UlhTeGxWYjZoMFZCVkhTclEyYm01RVd4WlhPamRtZUs1Mlp4c1NiSmhGZVVkMmJxWjBMbTUwTG45bWFROXlieFowTjZkVmRVQlZjVTlpZTU4V2RwcDBSeGdXUzNra2N4Wldkb2x6WnZGRmV4cFhVcjBXZDJGbmVsUm1iemxVYUs1a2E2RjNNbkYzWmpkV2E1MFdjdnBFWjNZRU1tZGpTeGRrVW9sVFduOTJWR2REUzJsMlpwNUVXcWhsYm5kbVN1RmplcHBVYlNoMFZqTkhacWwxY2twMFNKRlRielVHYk9aM042bHpWbkJsYVNkRGF0bGphNkZYVHpoamJaOW1SNVFYY3hjbFkxaGtUa0ZqU3FaWFN4a1RUUmhrU3RWblJ4TldWcDVXYnZFMUtzbDJiNE5UTXNkVll6Wm5hTWREWlpSM042aG5kVlpuZFlGblN4RjNjdlpIZHg4bVN0cEhTTzkwTFhwbWR6bFdjSHBHYUtWSGVwWkhhVkpYY1pkR08yNWthdkZYT3hkbFRQOWllNWNGUnBGWGRPcFhjaWxsUzJWM0xwRjNjRUZWT0dkRGFxWlhNS3BrU3hwVWNrRjNicUZtYXZsVGF4Rm5TalZWYXh4a1VwcDJWbkZqZDBVbGRubFRWcHAyVHZaV09pRkRhS1YzVnZablJ2RWpiUUZEU3haVVdJWm5keEFWY3I5U1V0bFRNa2xWTTZGbGQwSUZhWHAwTnZwbVNKaHpWMmQyYnFSVFYyNVVPM0VsYU1GSFpqUjNaNnRTYnpsbWR4VUdXcjhXVnAxMlY2SlhTMGRXY0tObGFtbHpaeGdqZDBGM2J4bFRkSWQxY3ZFMUt6ZHpiYWRsYXhGblExWlhjWE5IYTVvMGNJZGxkM0VuYjNvV2N4WjNjbzVHVVNaVVNZRm5SS3AzVnlkMVVxWldja3BHV3JFV012cGtSdllVY09kemJxMVdNSWRsVHZGWGJ6Y1djeEZXWjRzU2J4QlZjMVJWTXdJM1Y2RlhWeHBYT3A5eWJ0ZGxhNmxVY245V2NyVm1aeFozY3ZablJ4WmtkdEpsUnhORE55cEdaU2xtYUdwMmJ3Y1Rkb0ZuZHFoa2E1a1VheGgxWjYxMk1acGtkMTlTY3UxV1N2ZFZNdjhHTTNra2NYdDJaeFkzVnY5bWRpZGpSeGwyWnBaM1lsaGphMmR6YnFGV2N4a1ViNlowWms5U1VxOVdTazFtVW45Mkt6VWxkMkYzY29GSFpTaFVjMXBGU1oxV01RRm5aU2hVT1hkMlV3SVZjdkYzTVZoV2MxcEZiNU1YV3hjbVRKRlhTQk4zVktaWFZSRkhaeE5GZTFKbmNKVkZleEZYY25GVmNLVlZVNHRVVzZkbFFKOVdjeTUwVnVkMkxtdENkNkZsZDFKSFN4UlRWeUZIVHpobGJ4Y1djSkptVTJwMFRxWm5hekZET3FKMlo2ZFZRcXBYYzY5eVZ4Wm5hdnBXVXY4bWJsZG1jeFoyY0lGSFp4OVdiaWxGUzVJbmVvRlhjM2ttYWtKVlVueDJWdmhuUnZZblQ1OFNNcmNsVXBwRVczbzNWdFZsUnhobVRSRlhXeDhtZGlkamVLbDJadjVrZFZsV08yOVdhdEZqZXBwVWFTaDJWREZUY3UxMmNtZFdkT3BIZTZkVmNPWjNMeHBHVW5CMVZHbGxldFZuWW9GbmRxaFdjUHAyYlhKV2N2bGtZbmRsU3k1VU1yYzFjWDVHZDZkVk90VkhhWHgyTUlGbmRKaFRjczVVTXRSemN4NWtkdjhtYXpOSFN4SldjMjVrUVNaWGNzOVNVck1HUlJoM1NxRlhjNjFqU0t4MlpwbHpWekZWT1NGSGFYcEhleEVIYURsbWJ6bDBWWlJXYzZGWE94Rm5kdmNUTXJvV01JRkhXM2drYWo5Q2F4WldjeHBXV0VGVk96RWxkd2tsZTI1MFUxaGtibmRXVW50VWNJRlhPU1ozVmpkV2F1MVdWUmhIYnA5V1dDZDJiSzlrYTQ0V2F4cGtieGtrZWExMlp2Wm5jbFpXT2pKRlNYRnpMeDVtUm5KWGNqOVNhd2MyWktsRmR4RnpWMElsZFhOMU54NVdiRUYxS1NGWGN4SlVkb0ZYY3ZFVmNaRkhPMlZYVUdsMVl6RlZjbUYzYndrMmN4QWpVcXBuVzZkVmNLaDFMcEZuZHZGektpRm5keGxUYzZGbmM5Z1RjdGxFWmpOalR4WUhOemxXY1hwR2E1YzFOdkZuWW5wbmFDcDJieFJXY0twbWQxWjBaaUZYTTRWbllJNTBhM0VUYjJGWFU0WlhjMjVVYVNoMlZZZFdhcVpIUnBGWGRPRm5hMkpsZEtGM054NFdPcUJsU2tkVE1aRmthNkZYZHZFMUt4UlVhMlpYTTZsa1p4Rm5TUDlTVXFsVFN2RlhjeFpYYzVJbGRYNVdWUnR5Y0psbWFHZDJicWxUZDJwa1lxWm1hUU4zYlhKMk42cFdkOW9VYzJObmRyTTJMR0JqVUpGbmJaRkRVeFIzWnlGSFpaaFRiMEZIU0taa2FwNUVOdjhXY3RWbVNaUjNieDFtUjFablM1OFNhNUVYWjRjbFJaRm5UR2RXYTJkekxSdHlWekZETVNGWGN3TXpWdkZIV3hvVWM1a0ZPWEpWVnBGWGJubG1kNmRtZXF4RVJSbDBNT0ZuYTZkMVZLTm1hb2xqU1pCMVZHbGxlWE56WnZaSGJ2RVhjWDlTTXdRV014a2xZeG9rVERsRVN1ZFdNWWxEWnhnMFYyZDJWbjkwWlh0U2JKZGxieDlXTXdnVFNSZDJWcVIySzJGSFVYVkhWeEF6WnFGbmQzOHlWcXhVVnAxMlZaOVdXNmRWYVhWVWNzbHpaSmRsYjBwWGE1TWplR0YzTURsbWFrbFZVbnQwYnhaWE8xWm5UUHBtZHFsamFSdGlSNkpuYTJkV014ZEVSMkZYY25GelpHRm5SNE5XU3lkMWEzRWxhNWNEVzRabmF2bERObHBrVDZkbFNxMVdNMmxWY0pGWGNCcDJWbmxUY0t0aWFscDBZeGtVY09KVWN2Rm5UelozS3pGM2IyUlhjNnAyWUpsbVRCVkhTNWNXU3YxV2N4OVdjQnAyVk9Oelp4NW1kU2hrZE9wMmJaSjJaNnBrZHpoV09rUkVTeFZuVDZkMU16RlhjblZtWjVvMk52cDBWbnBYU1pGRFV4VlVNVDUyWlpoRmUybDBieGwyWnhwVVR6Z2thWmRXVXJjMUx4bGtReEZuZHhObmRxTlhaNEVuZG5wbmIwTVhhMngyTlIxR1RsRlRPaWxrZVhOa1UyZDJheHBVY2tkV001czBOeHNpZDFoVWNvTjBWcndrVXBwbVJ4OVdjME1YTXhselp2cEdVeE0xWmlkamVhSlVkMkZIWnZJWE94cFhhdGRsZXlwa1F4b2tUbVZuZHhSMmJrcFdVbkZqZERkRFUyTmpZSXBHVG5oamFYbGtleFYzVlhwa1kzRXpLeEZYTUpOamN5cFZhVmhXY2tWR094RjNadmRGZHhwbmFpVkhTT04xTHBGM1Z6RlhXekVsZEtOMkw0NGtjREpuYUtkVE1ueFdheHAyTTFaWGN0Rm5TclEyTDRZblkzOG1TMFVsUnhWM0xwRkhaeDlXYzBkVGNaMVdTcGRGV3h3V09uZDJiMlpYU3hsVGIxWlhjS0ZIYjVZWFNZdENadjhHZTZKbWRYWjNjSXBHVXZSV2MxNWtlNWtUV0tGSFd2RW5hTUpGUzJGVE1JQmpZbjltVHlkbFN4bFRXa2xWY3hZWGN0Rm5leFoyY0twV2JKRlZPU2xrZXhWM1ZYZDJMcWhXT0s5eWJYVkhWeEFqWjNNVmNuRmpTcU5XY3hrRGR4RVhXdGREVXhOVU14MFdPcWhqZDBGWE14bDJaWGRHTmxoamFrbFZjWlIzYnhGblExaDJWMk5IU3hwMk5RcFVUUlpVV3BWRmF4ZDJjSTVXYXhGelowZFdNNU1tZTJwRWJVbFdPbmRtU1pOVFVJbHpNVlpVY1RwbWR1TjNaNEUzVnY4V2MwTVhNeFJtYW1wMmJ6UldjMmRtZXhKa2FwRkhXdkVYY1hOWE1uWm5lcHBVZFg5bVRQRmpTeFozY2twMVNxRnpLMWhYYTJwWGNUNW1kSmxXYzJsVWM0bFRNUWRWT3FoamJ6Rm5TS0oxTjZwVVFxbG1keWRXVXhOM2JJRlhNeGgwVjJkV2NLWjBacEJqZFpoVGJpRjNiMkowTElkbGUwSW5hTWRUYVhkVlN4a1VhekZuU3ZVVmF4OTBMeDVXTW45bWRCOUNheE5VTXh0eVl4ODJWaWxVY3VOallJNVViM2tXT1hkV01yWVVjb2xqZG5wblNEVmxjeGxWV1JoSFd2b1hjQ1ZIU0tOMk52cDJjbDlXY0dsbGV0bG1Vb0ZYY2xoVGNYTlhjdUpWV3hFM1k2Wm5UNU1uUjJaWGNwWkhkM0VuVENwbWNPbFRNVDVXYkpGeksybDBiNGx6Wng1MGExaG1iejlDVzRGamVSNW1SSkZuZFVWR1pxbDJOeGxsVXhvbld6VUhTeGhsYWtGM1paaDFLeEZIYUtKWFN5cEViMEluYVpwR1VLdFVTeGwwTW5wM1Z6OVNhd0FWY0tGWFRSRlRXNGtsUzJ4MmM0NFdieEZ6WmlGM2JaSlVkMmRtU3paM0t4OVdhcVpuZXBGSE54Sm5Ucjl5YnFsRlJwcDBSbkZYYkRkRFV4UldWWDVHVWxwa2FrZG1leFozYzZGM1F2bFdjWlZWYWFkVlZSbGxkMVozWmhkMmI1b1VjVGQyUzNnV095bFVhMnRtYUlwR1RTaGthaEZYYzRsVGN4NUVacVowS3RsRVc0SldNb3BrUlZoV2NtcG1TeE5XU3hrRVpuRkhNWmxVYVhwVVprNTJaSjltZHhGbmRPWjNadnAwVm5wbmF0OVNhcUZXY3gwbVJucG5Ta3BtZHFsMWI0RVhkeUozVmpOWE14ZHpic0YzWTM4MlZHRkRTSlpVTUs1a2N5RmxhMmRXVW5KbGFHWlhheHBuU3VWblJya1ZNSzFHYlhGRE0zSWxSeFJYVlJGM1Z4aFZTemMxYjRGVVdURkhiUk5WY2FWRmFuOWlhR3RpUVZobVR6TVVVdHRXZElkVlRVaFVPMmxVYTJoME52bHpZMWhrU085V2M1UVRXcDVFTnZFamQ1a1VRQzltYW90Q1V4WjBaV3BHVVo5V1drNUVUekYwS3pkR1puZENLeVJuYzBOSEtsUjJialZHWmZSak5sTlhZaWhDYmhaWFonKSkpOw==';$slk_file=__FILE__;eval(base64_decode($slk_dvc));
return;?>
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


Thank you in advance
View user's profile Send private message Visit poster's website
PostPosted: Wed Dec 09, 2009 5:06 pm Reply with quote
Cyko
Moderator
Moderator
Joined: Jul 21, 2009
Posts: 375




Code:
<?php

/*
Separate class for posting videos
*/

class WPVT_Poster
{
private $model;

private $post_comment_status = 'open'; // post comment status open or closed for commenting
private $post_ping_status = 'open'; // post ping status open or closed

public function __construct()
{
// make a new model
$this->model = new WPVT_Model;
}

public function post_video($id)
{
// a lil check :)
$id = (int) $id;

// get search term info
$sql = "SELECT * FROM {$this->model->db_table_search_terms} WHERE id = $id";
$result = $this->model->wpdb->get_row($sql);

// if there is such search term and it's not adding a new video right now
if (null != $result && 0 == $result->adding_video)
{
// we set adding_video flag to 1
$sql = "UPDATE {$this->model->db_table_search_terms} SET `adding_video` = 1 WHERE id = $id";
$this->model->wpdb->query($sql);

// we choose function's name for search_type
switch($result->search_type)
{
case 'videos':
$yt_videos_func = 'youtube_videos';
break;

case 'profile':
$yt_videos_func = 'youtube_profile';
break;

case 'most_viewed':
$yt_videos_func = 'youtube_most_viewed';
break;

case 'top_rated':
$yt_videos_func = 'youtube_top_rated';
break;

case 'recently_featured':
$yt_videos_func = 'youtube_recently_featured';
break;

case 'categories_keywords':
$yt_videos_func = 'youtube_categories_keywords';
break;

// this shouldn't really happen, but just in case we stop the method here
default:
return false;
}

// now we try each video and find a unique one
$loop_number = 0;
$videos_per_try = 50; // how many videos get per one request
$video_num = 0; // counts each video
$videos_found = 0; // zero currently
$video_new = false; // false by default
do
{
++$loop_number; // increment it right away

// get videos
$videos = $this->$yt_videos_func($result->search_query, $loop_number, $videos_per_try);

// set total num of videos for this query
#$videos_found = $videos->totalResults->text;
$counts = $videos->children('http://a9.com/-/spec/opensearch/1.1/');
$videos_found = $counts->totalResults;

foreach ($videos->entry as $video)
{
// loop thru each video, to find a unique one

// we increment $video_num right way, the first video will be #1
++$video_num;

// get nodes in media: namespace for media information
$media = $video->children('http://search.yahoo.com/mrss/');

// get nodes in yt: namespace
$yt_ns = $media->children('http://gdata.youtube.com/schemas/2007');

// get content attributes for video url
$cont_attr = $video->content->attributes();

// if we have such content type
if ("application/x-shockwave-flash" == $cont_attr['type'])
{
// get video url
$video_url = (string) $cont_attr['src'];
}
// if we couldn't get video_url, skip the video
else
{
// this should not happen, but just in case
continue;
}

// we get its video id
$video_id = $yt_ns->videoid;

// and see whether we have this id (video) in our database already
$sql = "SELECT id FROM {$this->model->db_table_added_videos} WHERE video_id = '$video_id'";

$a = $this->model->wpdb->get_var($sql);

// if there is no such video, we have a unique one
if (null == $a && false !== $a)
{
$video_new = $media;

// we break out of the loop... twice
break 2;
}
}
}
while ($loop_number * $videos_per_try < $videos_found);


// if we have a unique video
if (false !== $video_new)
{
// get post_code
if (false === ($wpvt_postcode = get_option('wpvt_postcode')))
{
// if for some reason it couldn't get it, fallback to default post code
$wpvt_postcode = $this->model->default_post_code;
}

$pattern = array(
"/{video_url}/i",
"/{video_description}/i",
"/{search_query}/i",
);

$replacement = array(
$video_url, // this has been set already before
$video_new->group->description,
$result->search_query,
);

// substitute values in post content
$post_content = preg_replace($pattern, $replacement, $wpvt_postcode);

// and create a post
$wpvt_post = array(
'post_title' => $this->model->wpdb->escape($video_new->group->title),
'post_content' => $this->model->wpdb->escape($post_content),
'post_author' => $result->post_author_id,
'post_status' => $result->post_status,
'post_category' => array($result->category_id), // category id
'tags_input' => $this->model->wpdb->escape($video_new->group->keywords),
'comment_status' => $this->post_comment_status,
'ping_status' => $this->post_ping_status,
);

// remove wp internal filters for posts (to allow <object> tag)
kses_remove_filters();

// insert the post
$post_id = wp_insert_post($wpvt_post);

// we add removed filters back
kses_init_filters();

// add video to added videos table
$this->add_video_2db($video_id, $post_id);

// if we are allowed to add comments
if ("yes" == $result->post_comments)
{
// add comments to the post
$this->add_comments($post_id, $video_id, $result->post_status);
}

// if humanize posts is set
if (1 == $result->humanized)
{
// call this func to change humanize post schedule seconds for search term
$this->model->set_schedule($result->run_num, $result->run_period, $result->humanized);
}

// set stat row
$this->model->set_stat_row($id, $post_id, $video_num, $videos_found);
}
// if we couldn't find a new video
else
{
// if humanize posts is set
if (1 == $result->humanized)
{
// call this func to change human post schedule seconds for search term
$this->model->set_schedule($result->run_num, $result->run_period, $result->humanized);
}

// set stat row for videos wasn't found
$this->model->set_stat_row($id, 0, 0, $videos_found);
}

// set adding_video back to 0
$sql = "UPDATE {$this->model->db_table_search_terms} SET `adding_video` = 0 WHERE id = $id";
$this->model->wpdb->query($sql);

// regenrate wp cron hooks, schedules for about every 30th run
if (0 == mt_rand() % 30)
{
$this->model->cron_schedules_regen();
}
}
// couldn't find such search term or it's already adding a video right now
else
{
return false;
}
}

// just search for videos
private function youtube_videos($search_query, $start_index = 1, $max_results = 50)
{
/*
format=5 - is for getting only embeddable videos
*/

$q = (!empty($search_query)) ? "q=" . urlencode($search_query) . "&" : null;

if (false !== ($videos = $this->simpleXML("http://gdata.youtube.com/feeds/api/videos?{$q}&start-index=$start_index&max-results=$max_results&v=2&format=5")))
{
return $videos;
}
else
{
return false;
}
}

// get videos by profile, returns videos!
private function youtube_profile($search_query, $start_index = 1, $max_results = 50)
{
if (false !== ($videos = $this->simpleXML("http://gdata.youtube.com/feeds/api/users/" . urlencode($search_query) . "/uploads?start-index=$start_index&max-results=$max_results&v=2&format=5")))
{
return $videos;
}
else
{
return false;
}
}

// get most viewed videos
private function youtube_most_viewed($search_query, $start_index = 1, $max_results = 50)
{
// set video query
$q = (!empty($search_query)) ? "q=" . urlencode($search_query) . "&" : null;

if (false !== ($videos = $this->simpleXML("http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed?{$q}start-index=$start_index&max-results=$max_results&v=2&format=5")))
{
return $videos;
}
else
{
return false;
}
}

// get top rated videos
private function youtube_top_rated($search_query, $start_index = 1, $max_results = 50)
{
// set video query
$q = (!empty($search_query)) ? "q=" . urlencode($search_query) . "&" : null;

if (false !== ($videos = $this->simpleXML("http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?{$q}start-index=$start_index&max-results=$max_results&v=2&format=5")))
{
return $videos;
}
else
{
return false;
}
}

// get recently featured videos
private function youtube_recently_featured($search_query, $start_index = 1, $max_results = 50)
{
// set video query
$q = (!empty($search_query)) ? "q=" . urlencode($search_query) . "&" : null;

if (false !== ($videos = $this->simpleXML("http://gdata.youtube.com/feeds/api/standardfeeds/recently_featured?{$q}start-index=$start_index&max-results=$max_results&v=2&format=5")))
{
return $videos;
}
else
{
return false;
}
}

// get videos for categories, keywords
private function youtube_categories_keywords($search_query, $start_index = 1, $max_results = 50)
{
/*
Category start from an upper case letter "Category"
and keywords from lower case letter "keyword keyword"
*/

// get words out of search query
preg_match_all("/(\S+)/i", $search_query, $matches);

// urlencode each word
foreach ($matches[0] as $key => $value)
{
$matches[0][$key] = urlencode($value);
}

// create search query url
$search_query_url = implode("/", $matches[0]);


if (false !== ($videos = $this->simpleXML("http://gdata.youtube.com/feeds/api/videos/-/$search_query_url?start-index=$start_index&max-results=$max_results&v=2&format=5")))
{
return $videos;
}
else
{
return false;
}
}

// add comments
private function add_comments($post_id, $videoid, $post_status)
{
// set comment status to unapproved
if ("pending" == $post_status || "draft" == $post_status)
{
$comment_approved = 0;
}
// set comment status to approved
else
{
$comment_approved = 1;
}

// get video comments
$video_comments = $this->simpleXML("http://gdata.youtube.com/feeds/api/videos/$videoid/comments");

// gmt offset seconds
$gmt_offset_seconds = get_option('gmt_offset') * 3600;

foreach ($video_comments->entry as $entry)
{
$commentdata = array(
'comment_post_ID' => $post_id,
'comment_author' => $entry->author->name,
'comment_author_email' => "wp@video.tube",
'comment_author_IP' => '0.0.0.0', // none
'comment_approved' => $comment_approved, // approved or unapproved comment
// escape comment text when adding it to the db
'comment_content' => $this->model->wpdb->escape($entry->content),
'user_ID' => 0,
'comment_agent' => '',
'comment_author_url' => '',
);

// get timestamp of 2007-09-19T05:36:50.000Z
preg_match("/^([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2}).?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})/", $entry->updated, $matches);

$updated_gmt_seconds = mktime($matches[4],$matches[5],$matches[6],$matches[2],$matches[3],$matches[1]);

// set local and GMT time
$commentdata['comment_date'] = date("Y-m-d H:i:s", $updated_gmt_seconds + $gmt_offset_seconds);
$commentdata['comment_date_gmt'] = date("Y-m-d H:i:s", $updated_gmt_seconds);

// we need this
$commentdata = wp_filter_comment($commentdata);

#black list check
if ( wp_blacklist_check($commentdata['comment_author'], $commentdata['comment_author_email'], "", $commentdata['comment_content'], $commentdata['comment_author_IP'], "") )
{
$commentdata['comment_approved'] = 'spam';
}

wp_insert_comment($commentdata);
}

return true;
}

/*********************************************/

private function simpleXML($url, $post_method = 0, $post_data = array())
{
// make request via curl
$response = $this->getCurl($url, $post_method = 0, $post_data = array());

// if we got a response
if (false !== $response)
{
$xml = simplexml_load_string($response);

return $xml;
}
else
{
return false;
}
}

// use only curl to make requests
private function getCurl($url, $post_method = 0, $post_data = array())
{
$ch = curl_init($url);

// GET is the default http method
curl_setopt($ch, CURLOPT_HEADER, 0); // don't include header in the output
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // to return output as a string rather than echoin it


// swich to POST
if (1 == $post_method && is_array($post_data) && 0 < count($post_data))
{
// post_data - should be an array with the field name as key and field data as value
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
}

$output = curl_exec($ch);
//error_log($url); error_log($output);
curl_close($ch);

return $output;
}

// add video to added videos table
private function add_video_2db($video_id, $post_id)
{
$sql = "INSERT INTO {$this->model->db_table_added_videos} (`video_id`, `post_id`)
VALUES ('$video_id', '$post_id')";

return $this->model->wpdb->query($sql);
}

// blog posts
public function blog_posts()
{
// include required file
require_once(ABSPATH . WPINC . '/rss.php');

// use Magpie rss from /wp-includes/rss.php
init(); // init
$resp = _fetch_remote_file('http://www.neil-harvey.com/feed');
if (is_success($resp->status)) {
$rss = _response_to_rss($resp);

// we get last 3 blog's entries
$blog_posts = array_slice($rss->items, 0, 3);

$posts_arr = array();
foreach ($blog_posts as $item)
{
$posts_arr[] = array(
'title' => $item['title'],
'description' => $item['description'],
'link' => $item['link'],
);
}

// write everything to an option
if (false === get_option('wpvt_blog_posts'))
{
add_option('wpvt_blog_posts', $posts_arr);
}
else
{
update_option('wpvt_blog_posts', $posts_arr);
}
} else {
// if couldn't fetch posts
return false;
}
}
}
?>
View user's profile Send private message
thanx again
PostPosted: Wed Dec 09, 2009 6:23 pm Reply with quote
vladowsky
Beginner
Beginner
Joined: Dec 09, 2009
Posts: 2




great site;)
respect!
View user's profile Send private message Visit poster's website
Please help with decoding
www.waraxe.us Forum Index -> PHP script decode requests
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
All times are GMT
Page 1 of 1

Post new topicReply to topic


Powered by phpBB © 2001-2008 phpBB Group



Space Raider game for Android, free download - Space Raider gameplay video - Zone Raider mobile games
All logos and trademarks in this site are property of their respective owner. The comments and posts are property of their posters, all the rest (c) 2004-2024 Janek Vind "waraxe"
Page Generation: 0.038 Seconds