external stats hack


External Stats Hack V2 - TorrentTrader Forums /* * Cascading Style Sheet(CSS 467), for Invision Power Board 2.2.0 * Author: James A. Mathias, admin@leihu.com, http://www.1lotus.com * Copyright: 2005 Invision Power Services, all rights reserved * * All style attributes in alpha-numeric order starting from 0 * */ /* * ======================================== * global element styles * ======================================== */ html{ overflow-x: auto; /* fixes MSIE scrollbar bug DO NOT REMOVE, has no effect in Mozilla, or Opera */ } body{ background: #FFF; color: #222; font-family: Verdana, Tahoma, Arial, "Trebuchet MS", Sans-Serif, Georgia, Courier, "Times New Roman", Serif; font-size: 11px; line-height: 135%; margin: 0px; padding: 0px; /* required for Opera to have 0 margin */ text-align: center; /* centers board in MSIE */ } /* * ======================================== * Set up IPB table * ======================================== */ .ipbtable { width:100% } table.ipbtable, tr.ipbtable, td.ipbtable { /* required for text in tables, because tables do not inherit from body */ background: transparent; color: #222; font-size: 11px; line-height: 135%; } .ipbtable td, .divpad{ /* gives all tables faux cellpadding of 5px */ padding: 5px; } td.nopad{ /* allows some tables to have no padding on the td */ padding: 0; } /* Safari... */ th { text-align: left; } form{ display: inline; margin: 0; /* removes mystery form tag gapping */ padding: 0; /* removes mystery form tag gapping */ } img{ border: 0; /* makes sure linked images do not have a border */ vertical-align: middle; } /* * ======================================== * global hyperlink styles * ======================================== */ a:link, a:visited, a:active{ background: transparent; color: #222; text-decoration: underline; } a:hover{ background: transparent; color: #34498B; } /* * ======================================== * Main wrapper, this controls the overall width of the board in you browser view window. * ======================================== */ #ipbwrapper{ margin: 20px auto 20px auto; /* centers the box, no matter the overall width, also applies a 20px gap at the top and bottom of the board */ text-align: left; /* re_aligns text to left second part of two part MSIE centering workaround */ /* EDIT THIS TO CHANGE THE WIDTH OF THE BOARD -> 960px is a common fixed resolution size */ width: 98%; } /* * ======================================== * styles for pagination links * ======================================== */ .pagelink, .pagelinklast, .pagecurrent, .minipagelink, .minipagelinklast{ background: #F0F5FA; border: 1px solid #072A66; padding: 1px 3px 1px 3px; } .pagelinklast, .minipagelinklast{ background: #DFE6EF; } .pagecurrent{ background: #FFC9A5; } .minipagelink, .minipagelinklast{ border: 1px solid #C2CFDF; font-size: 10px; margin: 0 1px 0 0; } .pagelink a:active, .pagelink a:visited, .pagelink a:link, .pagelinklast a:active, .pagelinklast a:visited, .pagelinklast a:link, .pagecurrent a:active, .pagecurrent a:visited, .pagecurrent a:link, .minipagelink a:active, .minipagelink a:visited, .minipagelink a:link, .minipagelinklast a:active, .minipagelinklast a:visited, .minipagelinklast a:link{ text-decoration: none; } /* fake button effect for some links */ .fauxbutton{ background: #BFCDE0; border: 1px solid #072A66; font-size: 11px; font-weight: bold; padding: 4px; } .fauxbutton a:link, .fauxbutton a:visited, .fauxbutton a:active{ color: #222 !important; text-decoration: none; } .forumdesc, .forumdesc a:link, .forumdesc a:visited, .forumdesc a:active{ background: transparent; font-size: 10px; color: #666; line-height: 135%; margin: 2px 0 0 0; padding: 0; } /* =================================================================================== */ /* =================================================================================== */ /* =================================================================================== */ .searchlite { background-color:yellow; font-weight:bold; color: red; } .activeusers{ background: #FFF; border: 1px solid #072A66; color: #000; margin: 0px; padding: 1px; } .activeuserposting a:link, .activeuserposting a:visited, .activeuserposting a:active, .activeuserposting { font-style:italic; text-decoration: none; border-bottom:1px dotted black; } fieldset.search{ line-height: 150%; padding: 6px; } label{ cursor: pointer; } img.attach{ background: #808080 url(style_images/1/click2enlarge.gif) no-repeat top right; border: 1px solid #808080; margin: 0 2px 0 0; padding: 11px 2px 2px 2px; } .thumbwrap, .thumbwrapp, .fullimagewrap { border: 1px solid #072A66; margin: 2px; } .thumbwrapp{ border: 2px solid #660707; } .fullimagewrap{ background: #F5F9FD; text-align: center; margin: 5px 0 5px 0; padding: 5px; } .thumbwrap h4, .thumbwrapp h4{ background: #DDE6F2; border: 0 !important; border-bottom: 1px solid #5176B5 !important; color: #5176B5; font-size: 12px; font-weight: bold; margin: 0; padding: 5px; } .thumbwrap p, .thumbwrapp p{ background: #EEF2F7 !important; border: 0 !important; border-top: 1px solid #5176B5 !important; margin: 0 !important; padding: 5px !important; text-align: left; } .thumbwrap p.alt, .thumbwrapp p.alt{ background: #DFE6EF !important; margin: 0 !important; padding: 5px !important; text-align: left; } .thumbwrapp p.pin{ background: #EFDFDF !important; text-align: center !important; } .thumbwrap img.galattach, .thumbwrapp img.galattach{ background: #FFF url(style_images/1/img_larger.gif) no-repeat bottom right; border: 1px solid #072A66; margin: 5px; padding: 2px 2px 10px 2px; } li.helprow{ margin: 0 0 10px 0; padding: 0; } ul#help{ padding: 0 0 0 15px; } .warngood, .warnbad{ color: #0B9500; font-weight: bold; } .warnbad{ color: #DD0000; } #padandcenter{ margin: 0 auto 0 auto; padding: 14px 0 14px 0; text-align: center; } #profilename{ font-size: 28px; font-weight: bold; } #photowrap{ padding: 6px; } #phototitle{ border-bottom: 1px solid #000; font-size: 24px; } #photoimg{ margin: 15px 0 0 0; text-align: center; } #ucpmenu, #ucpcontent{ background: #F5F9FD; border: 1px solid #345487; line-height: 150%; } #ucpmenu p{ margin: 0; padding: 2px 5px 6px 9px; } #ucpmenu a:link, #ucpmenu a:active, #ucpmenu a:visited{ text-decoration: none; } #ucpcontent{ width: auto; } #ucpcontent p{ margin: 0; padding: 10px; } .activeuserstrip{ background: #BCD0ED; padding: 6px; } /* Topic View elements */ .signature{ background: transparent; color: #339; font-size: 10px; line-height: 150%; } .postdetails{ font-size: 10px; line-height:140%; } .postcolor{ font-size: 12px; line-height: 160%; } .normalname{ color: #003; font-size: 12px; font-weight: bold; } .normalname a:link, .normalname a:visited, .normalname a:active{ font-size: 12px; } .post1, .bg1{ background: #F5F9FD; } .post2, .bg3{ background: #EEF2F7; } .row2shaded, .post1shaded { background-color: #DEDBE4 } .row4shaded, .post2shaded { background-color: #E3DFE7 } .row1{ background: #DFE6EF; } .row2{ background: #E4EAF2; } .rowhighlight{ background-color: #FFF9BA; } .darkrow1{ background: #BCD0ED; color: #3A4F6C; } .darkrow3{ background: #D1DCEB; color: #3A4F6C; } /* tableborders gives the white column / row lines effect */ .plainborder, .tablefill, .tablepad{ background: #F5F9FD; border: 1px solid #345487; } .tablefill, .tablepad{ padding: 6px; } .tablepad{ border: 0 !important; } .wrapmini{ float: left; line-height: 1.5em; width: 25%; } .pagelinks{ float: left; line-height: 1.2em; width: 35%; } .desc{ font-size: 11px; color: #434951; } .lastaction { font-size: 10px; color: #434951; } .edit{ font-size: 9px; } .thin{ border: 1px solid #FFF; border-left: 0; border-right: 0; line-height: 150%; margin: 2px 0 2px 0; padding: 6px 0 6px 0; } /* =================================================================================== */ /* =================================================================================== */ /* =================================================================================== */ /* * ======================================== * calendar styles * ======================================== */ .calmonths{ background: #F0F5FA; border: 1px solid #C2CFDF; font-size: 18px; font-weight: bold; margin: 5px 0 5px 0; padding: 8px; text-align: center; } .weekday{ font-size: 14px; font-weight: bold; } .calmonths a{ text-decoration: none; } .calday, .calweekday{ background: #DFE6EF; color: #666; font-size: 11px; font-weight: bold; margin: 0; padding: 4px; text-align: right; } .calweekday{ border-right: 1px solid #AAA; color: #222; font-size: 14px; padding: 6px; text-align: center; } .celltodayshaded, .celldateshaded, .cellblank, .celldate, .celltoday, .mcellblank, .mcelldate, .mcelltoday{ background: #EEF2F7; height: 100px; margin: 0; padding: 0; vertical-align: top; } .celltodayshaded, .celldateshaded { background: #E3DFE7; } .mcellblank, .mcelldate, .mcelltoday{ height: auto; } .cellblank, .mcellblank{ background: #C2CFDF; } .celltoday, .celltodayshaded, .mcelltoday{ border: 2px solid #8B0000; } .calranged { border: 2px outset #C2CFDF; background: #C2CFDF; padding:4px; } .calitem { border-bottom: 1px dotted #C2CFDF; padding:4px; } /* * ======================================== * form styles * ======================================== */ .input-warn, .input-green, .input-checkbox, input, textarea, select{ background: #FFF; border: 1px solid #4C77B6; color: #000; font-family: verdana, helvetica, sans-serif; font-size: 11px; margin: 5px; padding: 2px; vertical-align: middle; } select { margin: 0px; } .input-checkbox { border: none; } .input-warn, .input-warn-content { border: 1px solid #C00; } .input-ok, .input-ok-content { border: 1px solid #0C0; } .input-warn-content { padding: 4px; margin: 4px; background-color: #FCC; } .input-ok-content { padding: 4px; margin: 4px; background-color: #CFC; } .input-text { color: #900; } input.button{ margin: 0; width: auto; cursor: pointer; } optgroup option{ font-family: verdana, helvetica, sans-serif; font-size: 12px; } .codebuttons{ font-family: Verdana, Helvetica, Sans-Serif; font-size: 10px; vertical-align: middle; margin:2px; } .textarea, .searchinput, .button, .gobutton{ background: #FFF; border: 1px solid #4C77B6; color: #000; font-family: Verdana, Helvetica, Sans-Serif; font-size: 11px; padding: 2px; vertical-align: middle; } .button{ background: #DFE6EF; } .gobutton{ background: transparent; border: 0; color: #072A66; margin: 0; vertical-align: middle; } .radiobutton, .checkbox, .helpbox { border: 0; vertical-align: middle; background: transparent; } /* * class.formtable * * used for tabled forms * technically tables should not be used for form display * but, in the case of IPB a table is easier to work with * for the average webmaster, who has little to no CSS knowledge. * */ .formtable{ background: transparent; } .formtable td, .pformleft, .pformleftw, .pformright{ background:#F5F9FD; border: 1px solid #C2CFDF; border-bottom: 0; border-left: 0; font-weight: bold; margin: 1px 0 0 0; padding: 6px; width: 25%; } .formtable td.wider, .pformleftw, .pformright{ width: 40%; } .formtable td.formright, .pformright{ border-right: 0px; font-weight: normal; width: auto; } .formtable td.formtitle, .formsubtitle{ background: #D1DCEB; border: 1px solid #9FB9D4; border-bottom: 0; border-left: 0; border-right: 0; font-weight: normal; } .formsubtitle{ border: 0; color: #3A4F6C; font-weight: bold; padding: 5px; } .formtable td.formstrip{ background: #DDE8F2; border: 1px solid #9FB9D4; border-left: 0; border-right: 0; font-weight: normal; } /* * ======================================== * new style quote and code wrappers MATT's DESIGN * ======================================== */ .quotetop{ background: #E4EAF2 url(style_images/1/css_img_quote.gif) no-repeat right; border: 1px dotted #000; border-bottom: 0; border-left: 4px solid #8394B2; color: #000; font-weight: bold; font-size: 10px; margin: 2px auto 0 auto; padding: 3px; } .quotemain{ background: #FAFCFE; border: 1px dotted #000; border-left: 4px solid #8394B2; border-top: 0; color: #465584; padding: 4px; margin: 0 auto 0 auto; } .codetop, .sqltop, .htmltop{ background: #FDDBCC url(style_images/1/css_img_code.gif) no-repeat right; color: #000; font-weight: bold; margin: 0 auto 0 auto; padding: 3px; } .codemain, .sqlmain, .htmlmain{ background: #FAFCFE; border: 1px dotted #000; color: #465584; font-family: Courier, "Courier New", Verdana, Arial; margin: 0 auto 0 auto; padding: 2px; } /* * ======================================== * old school quote and code styles - backwards compatibility * ======================================== */ #QUOTE, #CODE{ background: #FAFCFE; border: 1px solid #000; color: #465584; font-family: Verdana, Arial; font-size: 11px; padding: 2px; white-space: normal; } #CODE{ font-family: Courier, "Courier New", Verdana, Arial; } /* * ======================================== * All New Styles * ======================================== */ .cleared{ clear: both; } .borderwrap, .borderwrapm{ /* this will affect the outlining border of all the tables and boxes through-out the skin. */ background: #FFF; border: 1px solid #072A66; padding: 0px; margin: 0px; } .borderwrapm{ margin: 5px; } .borderwrap h3, .maintitle, .maintitlecollapse{ background: url(style_images/1/tile_cat.gif); border: 1px solid #FFF; border-bottom: 1px solid #5176B5; color: #FFF; font-size: 12px; font-weight: bold; margin: 0px; padding: 8px; } .maintitle td { color: #FFF; font-size: 12px; font-weight: bold; } .maintitlecollapse{ border: 1px solid #FFF; } .maintitle p, .maintitlecollapse p, .formsubtitle p{ background: transparent !important; border: 0 !important; margin: 0 !important; padding: 0 !important; } .maintitle p.expand, .maintitle p.goto, .maintitlecollapse p.expand, .formsubtitle p.members{ float: right; width: auto !important; } .maintitle a:link, .maintitle a:visited, .maintitlecollapse a:link, .maintitlecollapse a:visited{ background: transparent; color: #FFF; text-decoration: none; } .maintitle a:hover, .maintitle a:active, .maintitlecollapse a:hover, .maintitlecollapse a:active{ background: transparent; color: #F1F1F1; } table th, .borderwrap table th, .subtitle, .subtitlediv, .postlinksbar{ background: transparent url(style_images/1/tile_sub.gif); border-bottom: 1px solid #5176B5; color: #3A4F6C; font-size: 10px; font-weight: bold; letter-spacing: 1px; margin: 0; padding: 5px; } .subtitlediv{ border: 1px solid #FFF; border-bottom: 1px solid #5176B5; text-align: right; } .borderwrap table th a:link, .subtitle a:link, .subtitlediv a:link, .borderwrap table th a:visited, .subtitle a:visited, .subtitlediv a:visited, .borderwrap table th a:active, .subtitle a:active, .subtitlediv a:active, .borderwrap table th a:hover, .subtitle a:hover, .subtitlediv a:hover{ background: transparent; color: #3A4F6C; text-decoration: none; } .borderwrap h4{ background: #DDE6F2; border: 1px solid #FFF; border-bottom: 1px solid #5176B5; border-top: 1px solid #5176B5; color: #5176B5; font-size: 12px; font-weight: bold; margin: 0; padding: 5px; } .borderwrap p{ background: #F9F9F9; border: 1px solid #CCC; margin: 5px; padding: 10px; text-align: left; } td.formbuttonrow, .pformstrip, .borderwrap p.formbuttonrow, .borderwrap p.formbuttonrow1{ background: #D1DCEB !important; border: 1px solid #FFF; border-top: 1px solid #5176B5; margin: 0px !important; padding: 5px !important; text-align: center; } td.formbuttonrow{ border-bottom: 0; border-left: 0; border-right: 0; } .borderwrap p.formbuttonrow1{ background: #F9F9F9 !important; border: 0; border-top: 1px solid #CCC; } .bar, .barb, .barc{ background: #DFE6EF; border: 1px solid #FFF; } .barc{ border-bottom: 0; } .bar p, .barb p, .barc p{ background: transparent; border: 0; color: #222; font-size: 11px; margin: 0; padding: 5px; text-align: left; } .barb p{ text-align: right; } .bar p.over, .bar p.overs, .barc p.over, .barc p.overs{ float: right; } .barb p.over, .barb p.overs{ float: left; } .bar p.overs, .barb p.overs, .barc p.overs{ position: relative; top: 5px; } .catend{ background: #8394B2; color: #000; font-size: 1px; height: 5px; } .newslink{ background: #F0F5FA; border: 1px solid #C2CFDF; margin: 0; width: 100%; } .newslink td{ color: #222; font-size: 10px; padding: 5px 5px 5px 10px; } .newslink span{ background: transparent; color: #072A66; font-style: italic; font-weight: normal; } .newslink input{ background: #FFF; border: 1px solid #999; color: #072A66; font-size: 10px; padding: 3px; vertical-align: middle; width: auto; } .newslink input.button{ background: transparent; border: 0; color: #072A66; vertical-align: middle; } .fieldwrap{ background: #F9F9F9; border: 1px solid #CCC; border-top: 0; margin: 5px; padding: 0; text-align: left; } .fieldwrap h4{ background: #EEE; border: 1px solid #CCC; border-left: 0; border-right: 0; color: #444; font-size: 12px; font-weight: bold; margin: 0; padding: 5px; } .errorwrap { background: #F2DDDD; border: 1px solid #992A2A; border-top: 0; margin: 5px; padding: 0; } .errorwrap h4 { background: #E3C0C0; border: 1px solid #992A2A; border-left: 0; border-right: 0; color: #992A2A; font-size: 12px; font-weight: bold; margin: 0; padding: 5px; } .errorwrap p { background: transparent; border: 0; color: #992A2A; margin: 0; padding: 8px; } .ruleswrap{ background: #F2DDDD; border: 1px solid #992A2A; color: #992A2A; margin: 5px 0 5px 0; padding: 5px; } #redirectwrap{ background: #F0F5FA; border: 1px solid #C2CFDF; margin: 200px auto 0 auto; text-align: left; width: 500px; } #redirectwrap h4{ background: #D0DDEA; border-bottom: 1px solid #C2CFDF; color: #3A4F6C; font-size: 14px; margin: 0; padding: 5px; } #redirectwrap p{ margin: 0; padding: 5px; } #redirectwrap p.redirectfoot{ background: #E3EBF4; border-top: 1px solid #C2CFDF; text-align: center; } #gfooter{ background: #8394B2; margin: 5px 0 5px 0; padding: 0; width: 100%; } #gfooter td{ color: #FFF; font-size: 10px; padding: 4px; } #gfooter a:link, #gfooter a:visited{ color: #FFF; } #logostrip{ background: #3860BB url(style_images/1/tile_back.gif); border: 1px solid #FFF; height: 68px; margin: 0; padding: 0; } #logographic{ background: transparent url(style_images/1/logo4.gif) no-repeat left; height: 68px; margin: 0; padding: 0; } #submenu{ background: transparent url(style_images/1/tile_sub.gif); border: 1px solid #FFF; border-top: 0; color: #3A4F6C; margin: 0; height: 29px; text-align: right; } .ipb-top-left-link, .ipb-top-right-link { background: transparent url(style_images/1/tile_sub-lite.gif); float: right; font-size: 10px; font-weight: bold; letter-spacing: 0.5px; margin: 0px; padding: 7px 0 7px 0; width: auto; border-left: 1px solid #dce3ee; } .ipb-top-left-link { float: left; border-left: 0px; border-right: 1px solid #dce3ee; } .ipb-top-left-link a:link, .ipb-top-left-link a:visited, .ipb-top-right-link a:link, .ipb-top-right-link a:visited { background: transparent; color: #3A4F6C; padding: 0 6px 0 6px; text-decoration: none; } .ipb-top-left-link a:hover, .ipb-top-left-link a:active, .ipb-top-right-link a:hover, .ipb-top-right-link a:active { background: transparent; color: #5176B5; } #userlinks, #userlinksguest{ background: #F0F5FA; border: 1px solid #C2CFDF; margin: 5px 0 5px 0; padding: 0 5px 0 5px; } #userlinksguest{ background: #F4E7EA; border: 1px solid #986265; } #userlinks p, #userlinksguest p{ background: transparent !important; border: 0 !important; font-size: 10px; font-weight: bold; letter-spacing: 1px; margin: 0 !important; padding: 7px 0 7px 0; text-align: right; } #userlinks p, #userlinksguest p{ font-weight: normal; letter-spacing: 0; } #userlinksguest p.pcen{ text-align: center; } #userlinks p.home, #userlinksguest p.home{ float: left; } #navstrip{ background: transparent; color: #999; font-size: 12px; font-weight: bold; margin: 0 0 5px 0; padding: 14px 0px 8px 0px; } #navstrip a:link, #navstrip a:visited{ background: transparent; color: #222; text-decoration: none; } #navstrip a:hover, #navstrip a:active{ background: transparent; color: #5176B5; } .toplinks{ background: transparent; color: #000; margin: 0; padding: 0 0 5px 0; text-align: right; } .toplinks span{ background: #F0F5FA; border: 1px solid #C2CFDF; border-bottom: 0; color: #000; font-size: 10px; font-weight: bold; margin: 0 10px 0 0; padding: 5px; } .copyright{ background: #EEE; font-size: 11px; margin: 0 0 5px 0; padding: 8px; } /* * ======================================== * print page styles * ======================================== */ #print{ margin: 20px auto 20px auto; padding: 0; text-align: left; width: 85%; } #print h1, #print h2, #print h3, #print h4, #print p{ color: #036; font-size: 18px; font-weight: bold; margin: 0; padding: 8px; } #print h2, #print h3, #print p{ border-bottom: 1px solid #999; font-size: 11px; font-weight: normal; } #print h3{ background: #F5F5F5; font-size: 12px; font-weight: bold; margin: 0 0 10px 0; } #print h4{ background: #F9F9F9; font-size: 11px; } #print p{ margin: 0 0 5px 0; padding: 10px; } #print p.printcopy{ border: 0; color: #000; text-align: center; } .dny-edit-title { border:0px; padding:3px; margin:0px; background: #D1DCEB; color: #3A4F6C; } /* ======================================== */ /* TABS /* ======================================== */ .tabon { border-top:1px solid #999; border-left:1px solid #999; border-right:1px solid #999; background-color:#FFF; padding:8px; padding-bottom:9px; font-size:10px; float:left; width:auto; margin-top:3px; } .taboff { border-top: 1px solid #777; border-left: 1px solid #777; border-right: 1px solid #777; background-color: #B5C3D9; color: #333; padding: 8px; font-size:10px; float: left; width: auto; margin-top:3px; } .tabon a:link, .tabon a:visited, .tabon a:active { text-decoration:none; color: #000; } .taboff a:link, .taboff a:visited, .taboff a:active { text-decoration:none; color: #333; } .mya-back { background: #072A66; margin:1px; padding: 1px; } .mya-content { background: #FFF; padding:8px; margin: 1px; border: 1px solid #777; } .mya-content-tbl { background: #F0F5FA; border: 1px solid #777; text-align:left; font-size:10px; white-space:nowrap; margin:1px; } .mya-fieldwrap { background: transparent; margin-top: 2px; margin-bottom: 2px; padding: 4px; border: 1px solid #C5C7CD; -moz-border-radius: 5px; width: auto; display: block; } /* -------------------------------- */ /* Create PM box defaults */ /* -------------------------------- */ .iframeshim { position:absolute; display:none; background: #FFF; border:0px; width:auto; height:auto; } /* -------------------------------- */ /* Experimental */ /* -------------------------------- */ .popupmenu, .popupmenu-new { background: #F0F5FA; border: 1px solid #3A4F6C; text-align:left; font-size:10px; white-space:nowrap; /*padding:3px 5px 3px 3px;*/ /*width:300px;*/ } .popupmenu-item { padding: 5px; /*margin-top:4px;*/ white-space: nowrap; border-bottom: 1px solid #C2CFDF; color: #000000; font-weight: normal; } .popupmenu-item-last { padding: 5px; /*margin-top:4px;*/ white-space: nowrap; color: #000000; font-weight: normal; } .popmenubutton-new, .popmenubutton { width:120px; white-space:nowrap; background-color: #C2CFDF; border:1px solid #3A4F6C; color: #3A4F6C; font-weight:bold; float:right; height:18px; text-align:center; margin:0px; font-size:11px; padding:3px; } .popmenubutton-new { float:none; width:auto; text-align:left; height:auto; padding:3px; font-weight:normal; background-color:#EEF2F7; background-image: url(style_images/1/menu_action_down-padded.gif); background-repeat: no-repeat; background-position: right; } .popmenubutton-new-out { padding:4px; } .popupmenu-new { background-color: #DFE6EF; } .popmenubutton a:link, .popmenubutton a:visited, .popmenubutton-new a:link, .popmenubutton-new a:visited, .popupmenu-item a:link, .popupmenu-item a:visited, .popupmenu-item-last a:link, .popupmenu-item-last a:visited { color: #3A4F6C; text-decoration: none; } .popmenubutton a:hover, .popmenubutton-new a:hover, .popupmenu-item a:hover, .popupmenu-item-last a:hover { color: #5176B5; text-decoration: none; } .popupmenu-category { background: transparent url(style_images/1/tile_sub.gif); border-top: 1px solid #5176B5; border-bottom: 1px solid #5176B5; color: #3A4F6C; font-size: 10px; font-weight: bold; letter-spacing: 1px; margin: 0; padding: 5px; } /* -------------------------------- */ /* Loading box /* -------------------------------- */ #loading-layer-inner { width:220px; height:28px; padding:18px 10px 10px 10px; text-align:center; color: #000; border: 1px solid; border-color:#CCC #666 #666 #CCC; background-color: #FCF8C7; } /* -------------------------------- */ /* Message in a bo(x|ttle) /* -------------------------------- */ #ipd-msg-wrapper { display: none; width: 220px; } #ipd-msg-inner { width:100%; height:45px; padding: 6px 4px 4px 4px; margin: 0px; text-align:center; color: #000; border: 1px solid; border-color:#ccc #666 #666 #ccc; background-color: #FCF8C7; filter:alpha(opacity=75); opacity:.75 } #ipd-msg-title { width: 100%; height:20px; margin: 0px; padding: 6px 4px 4px 4px; background: transparent url(style_images/1/css_pp_header.gif); border: 1px solid #3A4F6C; border-bottom: 0px; color: #FFF; } .linked-image { margin: 0px; padding: 0px; border: 0px; } .resized-linked-image { margin: 1px 0px 0px 0px; padding: 0px; background-color: #000; border: 0px; color: #FFF; font-size: 10px; width: auto; -moz-border-radius-topleft: 7px; -moz-border-radius-topright: 7px; } .resized-linked-image-zoom { width: 200px; height: 30px; filter:alpha(opacity=85); opacity:.85; background-color: #FFF; padding-top: 6px; padding-left: 5px; top: 0px; left: 0px; position: absolute; display: none; } /* -------------------------------- */ /* Edit post reason /* -------------------------------- */ .post-edit-reason { background: #E7EAEF; margin-top: 9px; margin-bottom: 0px; padding: 4px; color: #333; font-size: 10px; border: 1px solid #C5C7CD; -moz-border-radius: 5px; width: auto; display: block; } /* -------------------------------- */ /* Personal Profile /* -------------------------------- */ .pp-name { background: #F0F5FA; border: 1px solid #C2CFDF; margin: 0px; padding: 10px; } .pp-name h3 { margin:0px; padding:0px 0px 5px 0px; font-size:24px; } .pp-header { background: transparent url(style_images/1/tile_sub.gif); color: #3A4F6C; font-size: 10px; font-weight: bold; margin: 0px 0px 1px 0px; padding: 5px; } .pp-title { background: url(style_images/1/css_pp_header.gif); border-bottom: 1px solid #5176B5; color: #FFF; font-size: 12px; font-weight: bold; margin: 0px; padding: 8px; } .pp-datebox { text-align: center; background: #FFFFFF; border: 1px solid #555555; padding: 4px; margin: 0px; font-size:18px; font-weight:bold; line-height: 100%; letter-spacing: -1px; float:right; width: auto; } .pp-datebox em { color: #AAA; font-weight: normal; font-style: normal; } .pp-contentbox-back { background-image: url(style_images/1/folder_profile_portal/pp-css-contentblock.gif); background-repeat: repeat-x; background-color: #ACBFD9; padding: 6px; } .pp-contentbox-entry, .pp-contentbox-entry-noheight, .pp-contentbox-entry-noheight-mod, .pp-contentbox-entry-noheight-sel { background-color: #EEF2F7; border: 1px solid #888888; line-height: 140%; padding: 8px; margin-bottom: 6px; height: 200px; overflow: auto; overflow-x: auto; } .pp-contentbox-entry-noheight-sel { background-color:#FCECCD; } .pp-contentbox-entry-noheight-mod { background-color:#FDF1DA; } .pp-contentbox-entry-noheight, .pp-contentbox-entry-noheight-mod, .pp-contentbox-entry-noheight-sel { height: auto; margin-bottom: 1px; } .pp-image-thumb-wrap, .pp-image-thumb-wrap-floatright, .pp-image-mini-wrap, .pp-image-mini-wrap-floatright { width: 52px; height: 52px; text-align: center; background: #FFFFFF; border: 1px solid #555555; padding: 4px; margin-top: auto; margin-bottom: auto; } .pp-image-mini-wrap, .pp-image-mini-wrap-floatright { width: 27px; height: 27px; margin-top: auto; margin-bottom: auto; } .pp-image-thumb-wrap-floatright, .pp-image-mini-wrap-floatright { float:right; } .pp-tiny-text { color: gray; font-size: 10px; } .pp-mini-content-entry, .pp-mini-content-entry-noheight, .pp-mini-entry-noheight-shaded { background-color: #F5F9FD; padding: 6px; border-bottom: 1px dotted #555555; clear:both; width: auto; height: 60px; } .pp-mini-entry-noheight-shaded { background-color: #E3DFE7; } .pp-mini-content-entry-noheight, .pp-mini-entry-noheight-shaded { height: auto; } .pp-tabclear, .pp-maintitle { background: url(style_images/1/css_pp_header.gif); border: 1px solid #FFF; border-bottom: 1px solid #5176B5; color: #FFF; font-size: 12px; font-weight: bold; margin: 0px; padding: 8px; } .pp-tabclear { border:0px; border-right: 1px solid #072A66; border-left: 1px solid #072A66; } .pp-tabon { border-top:1px solid #3363A1; border-left:1px solid #072A66; border-right:1px solid #072A66; background-color:#6696D6; color:#FFFFFF; padding:8px; float:left; width:auto; background-image: url(style_images/1/css_pp_tab_on.gif); background-repeat: repeat-x; background-position: left bottom; margin-top:3px; font-size:10px; } .pp-taboff, .pp-tabshaded { border-top: 1px solid #759BC7; border-left: 1px solid #759BC7; border-right: 1px solid #759BC7; background-color: #3363A1; color: #3363A1; padding:8px; float: left; width: auto; background-image: url(style_images/1/css_pp_tab_off.gif); background-repeat: repeat-x; background-position: left bottom; margin-top:3px; font-size:10px; } .pp-tabshaded { background-image: url(style_images/1/css_pp_tab_shaded.gif); background-repeat: repeat-x; background-position: left bottom; color: #516795; border-top: 1px solid #7f9BBC; border-left: 1px solid #7f9BBC; border-right: 1px solid #7f9BBC; } .pp-tabon a:link, .pp-tabon a:visited, .pp-tabon a:active { text-decoration:none; color: #FFFFFF; } .pp-taboff a:link, .pp-taboff a:visited, .pp-taboff a:active, .pp-tabshaded a:link, .pp-tabshaded a:visited, .pp-tabshaded a:active { text-decoration:none; color: #3363A1; } .pp-tabwrap { height: 34px; margin:0px; padding:0px; } @import url( "http://www.torrenttrader.org/style_images/1/folder_editor_images/css_rte.css" ); // // Features Forums SourceForge Download Premium Support Custom Services VBTT VBTT Download Help Search Members Calendar Search this forum only? More Search Options ipsmenu.register( "ipb-tl-search", 'document.getElementById("ipb-tl-search-box").focus();' ); gbl_check_search_box(); [X] My Assistant Loading. Please Wait...   Site Message (Message will auto close in 2 seconds) Logged in as: small_bigguy ( Log Out ) My Controls · View New Posts · My Assistant · My Friends · 0 New Messages  TorrentTrader Forums > TorrentTrader PREMIUM > PREMIUM Hacks & Modifications //  Posting Rules Please remember that all hacks and modifications found in the premium area are for premium members only.DO NOT DISTRIBUTE!

10 Pages    1 2 3 > »  //    External Stats Hack V2, Upload ANY torrent to your tracker! Options FLASH View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11701", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 11:40 AM Post #1 Administrator Group: Admin Posts: 2,250 Joined: 14-September 05 Member No.: 1 This should work on ALL TorrentTrader versions, I have just done a test install on a FRESH FINAL_RC2 and all worked 100% Please remember to backup any files and your DB before installing as there is a LOT of edits.If you have any other hacks installed then please double check everything!Enjoy!Import the following MYSQL via phpmyadminCODECREATE TABLE `announce` (`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,`announce_url` VARCHAR( 255 ) NOT NULL ,`status` VARCHAR( 255 ) NOT NULL ,`force` VARCHAR( 255 ) DEFAULT 'NO' NOT NULL ,PRIMARY KEY ( `id` ) ,UNIQUE (`announce_url` ),FULLTEXT (`announce_url` ));ALTER TABLE `torrents` ADD `announce` VARCHAR( 255 ) NOT NULL;ALTER TABLE `torrents` ADD `external` VARCHAR( 3 ) DEFAULT 'no' NOT NULL;create a new file with the following content called trackers.php and upload to your tracker root, overwrite the existing oneCODE<?require_once("backend/functions.php");dbconn(true);adminonly();loggedinorreturn();$announce = mysql_escape_string($_GET['announce']);$action = mysql_escape_string($_GET['action']);$value = mysql_escape_string($_POST['value']);$force = mysql_escape_string($_POST['force']);if ($force=='')$force='no';function trackers_table($res, $frame_caption) {global $announce,$action,$value; begin_frame($frame_caption, center); echo("Legend: <font color=#CCF8DD>ONLINE</font> - <font color=#FFD5AB>OFFLINE</font> - <font color=#FF8383>BANNED</font><br>"); echo("Reload this page to know the real time status of the listed trackers !<br><br>"); begin_table();?><tr><td class=alt3 align=center><font size=1 face=Verdana color=white>N°</td><td class=alt3 align=center><font size=1 face=Verdana color=white>ANNOUNCE URL</td><td class=alt3 align=center><font size=1 face=Verdana color=white>STATUS</td></tr><? $num = 0; while ($a = mysql_fetch_assoc($res)) { ++$num; unset($selected); if ($a['status'] == 'online') { $selected[0] = 'selected'; $color='#CCF8DD'; } else if ($a['status'] == 'offline') { $selected[1] = 'selected'; $color='#FFD5AB'; } else if ($a['status'] == 'banned') { $selected[2] = 'selected';$color='#FF8383';} $url = str_replace('/announce.php','/',$a['announce_url']); $url = str_replace('/announce','/',$url); echo("<tr><td class=alt1 align=center>".$num."</td><td class=alt2 align=center><a href='".$url."' target=\"_blank\">". $a['announce_url']."</a> <a href=\"trackers.php?announce=".$a['announce_url']."&action=list\"><img border=0 src='images/viewnfo.gif'></a></td>". "</td><td align=center bgcolor=".$color.">".$a['status']."</td></tr>\n"); echo("<tr><td class=alt1 align=center>".$num."</td><td colspan=2><form name=\"formulaire\" method=POST ACTION='trackers.php?announce=".$a['announce_url']."&action=set'> <u>Edit Tracker Status:</u> <select name=\"value\" style='font-family: Verdana; font-size: 8pt; border: 0px solid #000000; background-color: #FFFFE5' size=\"1\"> <option>-Status-</option> <option value=\"online\" ".$selected[0].">online</option> <option value=\"offline\" ".$selected[1].">offline</option> <option value=\"banned\" ".$selected[2].">banned</option> </select>"); if ($a['force'] =='yes') echo(" - <input type=\"checkbox\" CHECKED name=\"force\" value=\"yes\">Force Tracker Status"); else echo(" - <input type=\"checkbox\" name=\"force\" value=\"yes\">Force Tracker Status"); echo(" <input type=submit name='submit' value='Update Status'></form></td></tr>"); if ($a['announce_url'] == $announce && $action=="list") { $myres= mysql_query("SELECT * FROM torrents WHERE announce='".$a['announce_url']."' ORDER BY id DESC"); echo "<tr><td colspan=3 align=center><table width=95%><tr><td>"; torrenttable($myres); echo "</td></tr></table></td></tr>"; } } end_table(); end_frame();}if ($action=='set' && $announce!='') { switch ($value) {case "online": mysql_query("UPDATE announce SET `status`='".$value."',`force`='".$force."' WHERE announce_url='".$announce."'"); case "offline": mysql_query("UPDATE announce SET `status`='".$value."',`force`='".$force."' WHERE announce_url='".$announce."'");case "banned": mysql_query("UPDATE announce SET `status`='".$value."',`force`='".$force."' WHERE announce_url='".$announce."'"); } }stdhead("TorrentTrader Beta4 External Stats hack");$res = mysql_query("SELECT DISTINCT * FROM announce ORDER BY id ASC");trackers_table($res,"External Stats Admin panel");stdfoot();?>backend/functions.phpfind:CODErequire_once("extras.php");add after it:CODErequire_once("external-scrape.php");find:CODE$id = $row["id"];print("<tr>\n");replace withCODE$tet = mysql_query("SELECT * FROM announce WHERE announce_url='".$row['announce']."'"); $tet2= mysql_fetch_array($tet); if (!($row['external']=='yes' && ($tet2['status'] =='banned' || ($tet2['force']=='yes' && $tet2['status']=='offline')))) { $id = $row["id"]; print("<tr>\n");find:CODE print("</td></tr></table>\n"); print("</div>\n");    }replace with:CODE print("</td></tr></table>\n"); print("</div>\n");    }}in files: torrents-search.php, index.php, today.php, browse.php and torrents-details.phpfindCODEtorrents.ownerplease note do not replace the bit that says JOIN users ON torrents.owner its the one above that.and replace with CODEtorrents.external,torrents.announce,torrents.ownertorrents-details.phpfind:CODEprint("<tr><td valign=top align=right><B>" . LAST_SEEDED . ": </b>" . mkprettytime($row["lastseed"]) . " ago</td></tr>");add after:CODEif ($row['external']=='yes'){print("<tr><td valign=top align=right><b>Tracked: <font color=red>EXTERNAL</b></td></tr>");print("<tr><td valign=top align=right><b>Update: <a href=quickscrape.php?id=" . $row["id"] . ">[UPDATE EXT STATS]</A></td></tr>");}else{print("<tr><td valign=top align=right><b>Tracked: <font color=green>LOCAL</b></td></tr>");}torrents-upload.phpfind and remove:CODE function dict_check($d, $s) {if ($d["type"] != "dictionary") $message = "Not a dictionary";$a = explode(":", $s);$dd = $d["value"];$ret = array();foreach ($a as $k) { unset($t); if (preg_match('/^(.*)\((.*)\)$/', $k, $m)) { $k = $m[1]; $t = $m[2]; } if (!isset($dd[$k])) $message = "The dictionary is missing key(s)"; if (isset($t)) { if ($dd[$k]["type"] != $t) $message = "There is an invalid entry in the dictionary"; $ret[] = $dd[$k]["value"]; } else $ret[] = $dd[$k];}return $ret; }find:CODE list($dname, $plen, $pieces) = dict_check($info, "name(string):piece length(integer):pieces(string)"); if (!in_array($ann, $announce_urls, 1))$message = "Invalid announce url! It MUST be <b>" . $announce_urls[0] . "</b>";replace it with:CODE$external='no'; list($ann, $info) = dict_check($dict, "announce(string):info"); $url_ann = array(); $a=0; $announcelist = dict_get($dict, "announce-list","list"); if (isset($announcelist) && count($announcelist)) { foreach ($announcelist as $fn) { $hi = $fn["value"]; for ($i=0;$i < count($hi);$i++ ) { $url_ann[] = $hi[$i]["value"]; } } for ($j=0;$j<count($announce_urls);$j++) { for ($k=0;$k<count($url_ann);$k++) { //echo "<br>".$url_ann[$k]; // debug purposes only if ($announce_urls[$j]==$url_ann[$k]) $a+=1; } } if ($a<1) $external = 'yes'; } else { if (!in_array($ann, $announce_urls, 1)) $external='yes'; } list($dname, $plen, $pieces) = dict_check($info, "name(string):piece length(integer):pieces(string)");find:CODE $ret = mysql_query("INSERT INTO torrents (search_text, filename, owner, visible, info_hash, name, size, numfiles, type, descr, ori_descr, category, save_as, added, last_action, nfo) VALUES (" . implode(",", array_map("sqlesc", array(searchfield("$shortfname $dname $torrent"), $fname, $CURUSER["id"], "no", $hexhash, $torrent, $totallen, count($filelist), $type, $descr, $descr, 0 + $_POST["type"], $dname))) . ", '" . get_date_time() . "', '" . get_date_time() . "', $nfo)");replace with:CODE$ret = mysql_query("INSERT INTO torrents (search_text, filename, owner, visible, info_hash, name, size, numfiles, type, descr, ori_descr, category, save_as, added, last_action, nfo,announce,external) VALUES (" . implode(",", array_map("sqlesc", array(searchfield("$shortfname $dname $torrent"), $fname, $CURUSER["id"], "no", $hexhash, $torrent, $totallen, count($filelist), $type, $descr, $descr, 0 + $_POST["type"], $dname))) . ", '" . get_date_time() . "', '" . get_date_time() . "', $nfo,'".$ann."','".$external."')");find:CODE$id = mysql_insert_id();add afer it:CODEmove_uploaded_file($tmpname, "$torrent_dir/$id.torrent");then the following entry of (few lines down)CODEmove_uploaded_file($tmpname, "$torrent_dir/$id.torrent");remove or comment it.find:CODEwrite_log("Torrent $id ($torrent) was uploaded by " . $CURUSER["username"]);replace it withCODE if ($external=='yes') { $msg = "<br><br><div align=justify>The tracker has detected that you have uploaded an external torrent with the following announce url :<b> ".$ann."</b><br><br>"; if (url_validate($ann)) $status = "online"; else $status = "offline"; $ret = mysql_query("INSERT INTO announce (`announce_url`, `force`, `status`) VALUES ('".$ann."','no','".$status."')"); if (!$ret) { // we can't insert, because it already exists ! then we update ! // echo "<br>2)Mysql Error: ".mysql_errno(). "-".mysql_error(); if (mysql_errno() == 1062) { mysql_query("UPDATE announce SET status='".$status."' WHERE announce_url=".$ann." AND force='no' "); } else { $id = mysql_insert_id(); $msg.="This is the first time one torrent is coming from this tracker. Please allow some time for the site to scrape this tracker !</div><br>"; } } if ($status=="online") $msg .= "<br><center><u>Tracker Status:</u> <font color=green size=4>ONLINE</font></center><br>"; else $msg .= "<br><center><u>Tracker Status:</u> <font color=red size=4>OFFLINE</font></center><br>"; //do a quick scrape on externals that are uploaded,comment out next 2 lines if not needed    require_once("quickscrape-func.php");    quickscrape($id);    //end quickscrape } write_log("Torrent $id ($torrent) was uploaded by " . $CURUSER["username"]);find:CODEtr("" . ANNOUNCE . "", "$announce_urls[0]\n", 1);replace with:CODEtr("" . ANNOUNCE . "", "$announce_urls[0]\n<BR>This tracker now accepts ALL external torrents also!", 1);create a new file called external-scrape.php with the following content and upload it to /backend/CODE<?require_once("functions.php");require_once("benc.php");function file_ungzip($fromFile){    $zp = @gzopen($fromFile, "r");    while(!@gzeof($zp)) { $string .= @gzread($zp, 4096); }    @gzclose($zp);    return $string;}function url_validate( $link ){    $url_parts = @parse_url( $link );    if ( empty( $url_parts["host"] ) ) return( false );    if ( !empty( $url_parts["path"] ) ){ $documentpath = $url_parts["path"];    }else{ $documentpath = "/";    }    if ( !empty( $url_parts["query"] ) ){ $documentpath .= "?" . $url_parts["query"];    }    $host = $url_parts["host"];    $port = $url_parts["port"];    if (!isset( $port ) ) $port = "80"; $socket = @fsockopen( $host, $port, $errno, $errstr, 5 );    if (!$socket){ return(false);    }else{ fclose( $socket ); return(true);    }}//End Funcfunction dict_check($d, $s) {    if ($d["type"] != "dictionary") $message = "Not a dictionary";    $a = explode(":", $s);    $dd = $d["value"];    $ret = array();    foreach ($a as $k) {    unset($t);    if (preg_match('/^(.*)\((.*)\)$/', $k, $m)) { $k = $m[1]; $t = $m[2];    }    if (!isset($dd[$k])) $message = "The dictionary is missing key(s)";    if (isset($t)) { if ($dd[$k]["type"] != $t)     $message = "There is an invalid entry in the dictionary"; $ret[] = $dd[$k]["value"];    }    else $ret[] = $dd[$k];    }    return $ret;}//End Funcfunction doexternal() {set_time_limit(0);ignore_user_abort(1);// we check external torrents nowunset($data);$res1 = mysql_query("SELECT * FROM announce WHERE status !='banned'");echo "External Scrape log:<br><hr>Step 1 - Trackers Status Checking<hr>";while ($row1 = mysql_fetch_array($res1)) {//Check if each announce url is online    $tracker=str_replace("/announce.php","/scrape.php",$row1['announce_url']);    $tracker=str_replace("/announce","/scrape",$row1['announce_url']);    if (url_validate($tracker)){ if ($row1['force']=='no') mysql_query("UPDATE announce SET `status` = 'online' WHERE announce_url = '".$row1['announce_url']."'"); echo "<li>".$row1['announce_url']." is [<font color=green>ONLINE</font>]</li>";    }else{ if ($row1['force']=='no') mysql_query("UPDATE announce SET `status` = 'offline' WHERE announce_url = '".$row1['announce_url']."'");; echo "<li>".$row1['announce_url']." is [<font color=red>OFFLINE</font>]</li>";    }}//end online checkecho "<hr>Step 2 - Torrents Scraping<hr>";$res1 = mysql_query("SELECT * FROM announce WHERE status = 'online' ");while ($row1 = mysql_fetch_array($res1)) {//now scrape every torrent    $tracker=str_replace("/announce.php","/scrape.php",$row1['announce_url']);    $tracker=str_replace("/announce","/scrape",$row1['announce_url']);    echo "<br><font color=blue><b>($tracker)</b></font><br>";    $res2=mysql_query("SELECT info_hash FROM torrents WHERE external='yes' AND announce='".$row1['announce_url']."'");    while ($row2=mysql_fetch_array($res2)) {//do the scrape $infohash = $row2['info_hash']; if (!@file_exists("cache/".$infohash))     touch("cache/".$infohash); $fp = @fopen("cache/".$infohash, "w+"); $scrape = @file_get_contents($tracker."?info_hash=".urlencode(hex2bin($infohash))); @flock($fp, LOCK_EX); @rewind($fp); @ftruncate($fp, 0); @fwrite($fp, $scrape); @flock($fp, LOCK_UN); @fclose($fp); $data[$infohash] = file_ungzip("cache/".$infohash); unset($dict); $dict = @bdec($data[$infohash]); $torrentseeds = $dict["value"]['files']["value"][hex2bin($infohash)]["value"]['complete']["value"]; $torrentpeers = $dict["value"]['files']["value"][hex2bin($infohash)]["value"]['incomplete']["value"]; $dltimes = $dict["value"]['files']["value"][hex2bin($infohash)]["value"]['downloaded']["value"]; echo "<li>$infohash - (Seed: $torrentseeds, Leech: $torrentpeers, Compl: $dltimes)"; if ($dict["value"]['files']["value"][hex2bin($infohash)]["value"]['complete']["value"] !== NULL)     mysql_query("UPDATE torrents SET leechers='".$torrentpeers."', seeders='".$torrentseeds."',times_completed='".$dltimes."',last_action= NOW(),visible='yes' WHERE info_hash='".$infohash."'"); else echo " - No data received";     }//end do the scrape}//end scrape every torrenrecho "<hr>End of scrape log";}//end doexternal() func?>create a file in your tracker folder called quickscrape-func.phpCODE<?require_once("backend/BDecode.php");function quickscrape($id){    $res2=mysql_query("SELECT info_hash,announce FROM torrents WHERE id='$id' ");    while ($row2=mysql_fetch_array($res2)) {//do the scrape $tracker=str_replace("/announce.php","/scrape.php",$row2['announce']); $tracker=str_replace("/announce","/scrape",$row2['announce']); $infohash = $row2['info_hash']; if (!@file_exists("cache/".$infohash))     touch("cache/".$infohash); $fp = @fopen("cache/".$infohash, "w+"); $scrape = @file_get_contents($tracker."?info_hash=".urlencode(hex2bin($infohash))); @flock($fp, LOCK_EX); @rewind($fp); @ftruncate($fp, 0); @fwrite($fp, $scrape); @flock($fp, LOCK_UN); @fclose($fp); $data[$infohash] = file_ungzip("cache/".$infohash); unset($dict); $dict = @bdec($data[$infohash]); $torrentseeds = $dict["value"]['files']["value"][hex2bin($infohash)]["value"]['complete']["value"]; $torrentpeers = $dict["value"]['files']["value"][hex2bin($infohash)]["value"]['incomplete']["value"]; $dltimes = $dict["value"]['files']["value"][hex2bin($infohash)]["value"]['downloaded']["value"]; if ($dict["value"]['files']["value"][hex2bin($infohash)]["value"]['complete']["value"] !== NULL)     mysql_query("UPDATE torrents SET leechers='".$torrentpeers."', seeders='".$torrentseeds."',times_completed='".$dltimes."',last_action= NOW(),visible='yes' WHERE info_hash='".$infohash."'");     }//end do the scrape}?>create a file in your tracker folder called clean.phpCODE<?include("backend/external-scrape.php");set_time_limit(0);dbconn();doexternal();?>open backend/cleanup.php and replace all the content with:CODE<?require_once("functions.php");function docleanup() {    global $torrent_dir, $signup_timeout, $max_dead_torrent_time, $autoclean_interval;    set_time_limit(0);    ignore_user_abort(1);    do { $res = mysql_query("SELECT id FROM torrents WHERE external = 'no'"); $ar = array(); while ($row = mysql_fetch_array($res)) {     $id = $row[0];     $ar[$id] = 1; } if (!count($ar))     break; $dp = @opendir($torrent_dir); if (!$dp)     break; $ar2 = array(); while (($file = readdir($dp)) !== false) {     if (!preg_match('/^(\d+)\.torrent$/', $file, $m)) continue;     $id = $m[1];     $ar2[$id] = 1;     if (isset($ar[$id]) && $ar[$id]) continue;     $ff = $torrent_dir . "/$file";     //unlink($ff); } closedir($dp); if (!count($ar2))     break;//DELETE OLD TORRENTS AND CLEAN PEERS TABLE $delids = array(); foreach (array_keys($ar) as $k) {     if (isset($ar2[$k]) && $ar2[$k]) continue;     $delids[] = $k;     unset($ar[$k]); } if (count($delids))     mysql_query("DELETE FROM torrents WHERE id IN (" . join(",", $delids) . ")"); $res = mysql_query("SELECT torrent FROM peers GROUP BY torrent"); $delids = array(); while ($row = mysql_fetch_array($res)) {     $id = $row[0];     if (isset($ar[$id]) && $ar[$id]) continue;     $delids[] = $id; } if (count($delids))     mysql_query("DELETE FROM peers WHERE torrent IN (" . join(",", $delids) . ")");    } while (0);//CLEANUP TORRENTS THAT ARE OVER THE DEADTIME/*    $deadtime = deadtime();    mysql_query("DELETE FROM peers WHERE last_action < FROM_UNIXTIME($deadtime)");*/$timenow = "NOW() - 21600";$res = mysql_query("DELETE FROM peers WHERE last_action < $timenow ORDER BY last_action");//UPDATE SNATCHED TABLE$deadtime = deadtime();mysql_query("UPDATE snatched SET seeder='no' WHERE seeder='yes' AND last_action < FROM_UNIXTIME($deadtime)");//MAKE OLD TORRENTS INVISIBLE    $deadtime -= $max_dead_torrent_time;    mysql_query("UPDATE torrents SET visible='no' WHERE visible='yes' AND last_action < FROM_UNIXTIME($deadtime) AND external='no'");//DELETE PENDING USER ACCOUNTS    $deadtime = time() - $signup_timeout;    mysql_query("DELETE FROM users WHERE status = 'pending' AND added < FROM_UNIXTIME($deadtime) AND last_login < FROM_UNIXTIME($deadtime) AND last_access < FROM_UNIXTIME($deadtime) AND last_access != '0000-00-00 00:00:00'");//INVITES PART $deadtime = time() - $signup_timeout;    $user = mysql_query("SELECT invited_by FROM users WHERE status = 'pending' AND added < FROM_UNIXTIME($deadtime) AND last_access = '0000-00-00 00:00:00'");    $arr = mysql_fetch_assoc($user); if (mysql_num_rows($user) > 0) { $invites = mysql_query("SELECT invites FROM users WHERE id = $arr[invited_by]");    $arr2 = mysql_fetch_assoc($invites); if ($arr2[invites] < 10)    { $invites = $arr2[invites] +1;    mysql_query("UPDATE users SET invites='$invites' WHERE id = $arr[invited_by]");    } mysql_query("DELETE FROM users WHERE status = 'pending' AND added < FROM_UNIXTIME($deadtime) AND last_access = '0000-00-00 00:00:00'"); }//DELETE OLD MESSAGES OVER X DAYS OLD$secs = 28*86400;// SET THE NUMBER OF DAYS (DEFAULT 28)$dt = sqlesc(get_date_time(gmtime() - $secs));mysql_query("DELETE FROM messages WHERE added < $dt");//START INVITES UPDATEfunction autoinvites($length, $minlimit, $maxlimit, $minratio, $invites) {    $time = sqlesc(get_date_time(gmtime() - (($length)*86400))); $minlimit = $minlimit*1024*1024*1024;    $maxlimit = $maxlimit*1024*1024*1024;    $res = mysql_query("SELECT id, invites FROM users WHERE class > 0 AND enabled = 'yes' AND downloaded >= $minlimit AND downloaded < $maxlimit AND uploaded / downloaded >= $minratio AND warned = 'no' AND invites < 10 AND invitedate < $time") or sqlerr(__FILE__, __LINE__);if (mysql_num_rows($res) > 0) { while ($arr = mysql_fetch_assoc($res)) {if ($arr[invites] == 9)$invites = 1;elseif ($arr[invites] == 8 && $invites == 3)$invites = 2; mysql_query("UPDATE users SET invites = invites+$invites, invitedate = NOW() WHERE id=$arr[id]") or sqlerr(__FILE__, __LINE__); }}}//SET INVITE AMOUNTS ACCORDING TO RATIO/GIGS ETCautoinvites(10,1,4,.90,1);autoinvites(10,4,7,.95,2);autoinvites(10,7,10,1.00,3);autoinvites(10,10,100000,1.05,4);//END INVITES//UPDATE TORRENT STATS    $torrents = array();    $res = mysql_query("SELECT torrent, seeder, COUNT(*) AS c FROM peers GROUP BY torrent, seeder");    while ($row = mysql_fetch_assoc($res)) { if ($row["seeder"] == "yes")     $key = "seeders"; else     $key = "leechers"; $torrents[$row["torrent"]][$key] = $row["c"];    }    $res = mysql_query("SELECT torrent, COUNT(*) AS c FROM comments GROUP BY torrent");    while ($row = mysql_fetch_assoc($res)) { $torrents[$row["torrent"]]["comments"] = $row["c"];    }    $fields = explode(":", "comments:leechers:seeders");    $res = mysql_query("SELECT id, seeders, leechers, comments FROM torrents WHERE external = 'no'");    while ($row = mysql_fetch_assoc($res)) { $id = $row["id"]; $torr = $torrents[$id]; foreach ($fields as $field) {     if (!isset($torr[$field])) $torr[$field] = 0; } $update = array(); foreach ($fields as $field) {     if ($torr[$field] != $row[$field]) $update[] = "$field = " . $torr[$field]; } if (count($update))     mysql_query("UPDATE torrents SET " . implode(",", $update) . " WHERE id = $id");    }    }?>create the following file in your tracker folder:quickscrape.phpCODE<?require_once("backend/functions.php");require_once("quickscrape-func.php");dbconn();loggedinorreturn();$id = 0 + $_GET['id'];if (!is_valid_id($id)){    echo "invalid id";    die();}//do itstdhead("Scrape Results");quickscrape($id);begin_frame();echo"<html><head><meta http-equiv=refresh content=\"5;url=torrents-details.php?id=$id\"></head><body><table border=0 width=100% height=100%><tr><td><h3 align=center>Update complete... redirecting, please wait...</h3></td></tr></table></body></html>";end_frame();stdfoot();?>Make a folder in your tracker folder called /cache and CHMOD to 777Upload attached BDecode.php to /backend/Ok with this hack ALL external torrents are scraped upon upload mow. so they should show straight away, also you can do a "force" recheck stats via the torrents-details page. add a CRON task or manual access htt://TRACKERURL/clean.php to rescrape ALL torrents, If you set a cron, once per hour should be ok.please remember some trackers can be slow and un-responsive at times. piratebay is a good example of a CRAP tracker... Attached File(s)  BDecode.php ( 4.95K ) Number of downloads: 431   -------------------- - STOP PM'ING ME FOR SUPPORT, USE THE FORUMS THAT'S WHAT THEY'RE HERE FOR   Torrential-Storm... Torrential-Storm.co.uk View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11702", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 11:43 AM Post #2 Official Developer/Moderator Group: Official Developer Posts: 3,085 Joined: 27-September 05 From: http://www.TorrentialStorm.net Member No.: 10 ok...... this is gonna take forever but i'm not doing anything until i upgrade my site -------------------- TorrentialStorm ^^Click My Sig^^TorrentTrader IRC Channel: #TorrentTrader on irc.p2p-network.netTorrentialStorm IRC Channel: #TorrentialStorm on irc.p2p-network.netIf you want to know what made my sig click HERE____________________________________________________________STOP PM'ING ME FOR SUPPORT, USE THE FORUMS THAT'S WHAT THEY'RE HERE FOR.   djgunit View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11717", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 01:56 PM Post #3 Advanced Member Group: Premium Posts: 213 Joined: 12-February 06 Member No.: 1,576 so can u track external torrents with out having to have the files on ur own system   FLASH View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11719", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 02:40 PM Post #4 Administrator Group: Admin Posts: 2,250 Joined: 14-September 05 Member No.: 1 you need to upload them as usual. -------------------- - STOP PM'ING ME FOR SUPPORT, USE THE FORUMS THAT'S WHAT THEY'RE HERE FOR   djgunit View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11721", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 03:01 PM Post #5 Advanced Member Group: Premium Posts: 213 Joined: 12-February 06 Member No.: 1,576 so u upload the torrents that u get from other sites and it can pick up seeders from that trackr???   Torrential-Storm... Torrential-Storm.co.uk View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11727", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 04:17 PM Post #6 Official Developer/Moderator Group: Official Developer Posts: 3,085 Joined: 27-September 05 From: http://www.TorrentialStorm.net Member No.: 10 @FLASH: Can't you just post a zip of the files we need to create?It would saves us a lot of time -------------------- TorrentialStorm ^^Click My Sig^^TorrentTrader IRC Channel: #TorrentTrader on irc.p2p-network.netTorrentialStorm IRC Channel: #TorrentialStorm on irc.p2p-network.netIf you want to know what made my sig click HERE____________________________________________________________STOP PM'ING ME FOR SUPPORT, USE THE FORUMS THAT'S WHAT THEY'RE HERE FOR.   FLASH View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11735", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 05:21 PM Post #7 Administrator Group: Admin Posts: 2,250 Joined: 14-September 05 Member No.: 1 djgunit, you done something wrong to torrents-upload.php I just done it myself and it works fine. -------------------- - STOP PM'ING ME FOR SUPPORT, USE THE FORUMS THAT'S WHAT THEY'RE HERE FOR   LooLoo View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11748", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 08:39 PM Post #8 Advanced Member Group: Premium Posts: 40 Joined: 4-April 06 Member No.: 2,041 Thanx alot Flashi am installing it.can we use mass import with this for external torrents ? -------------------- [center]Upload Torrents (External and/or Local) And Win Free Domain & Hosting Packages[/center]   djgunit View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11751", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 09:08 PM Post #9 Advanced Member Group: Premium Posts: 213 Joined: 12-February 06 Member No.: 1,576 ok will re do and let u know thanx   ironfist View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11754", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 10:17 PM Post #10 Advanced Member Group: Premium Posts: 62 Joined: 22-April 06 Member No.: 2,219 This works fine. Updated from 1.2 and it would be easier if FLASHcould specify what's needed for updates.And, what about that <td class=alt3 align=center><font size=1 face=Verdana color=white>N°</td>Is that special character really necessary? With that I must upload the file -I can't just edit it over SSH in Nano like all other files. -------------------- PimpTorrent.com - Your Friendly Neighborh00d Pimp! - 5000+ members can't be wrong - Register today!   halifaxtorrents View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11756", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 14 2006, 11:47 PM Post #11 Advanced Member Group: Premium Posts: 68 Joined: 25-April 06 Member No.: 2,236 nice one, works fine!!!just cannot get the helth bar working, or can you tell me how to remove this please! PM me if you can tar -------------------- whiteleys world What used to be a large forum, is now going to be a large forum and a large torrent tracker   musixman View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11758", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 15 2006, 04:10 AM Post #12 Newbie Group: Premium Posts: 7 Joined: 14-May 06 Member No.: 2,379 Everything works great except the "Health Bar" an d "Availability Bar"   LooLoo View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11759", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 15 2006, 06:06 AM Post #13 Advanced Member Group: Premium Posts: 40 Joined: 4-April 06 Member No.: 2,041 Health bar not work, -------------------- [center]Upload Torrents (External and/or Local) And Win Free Domain & Hosting Packages[/center]   kenichi View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11761", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 15 2006, 07:50 AM Post #14 Newbie Group: Members Posts: 8 Joined: 22-February 06 Member No.: 1,665 It's great Thank's   FLASH View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11765", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 15 2006, 08:03 AM Post #15 Administrator Group: Admin Posts: 2,250 Joined: 14-September 05 Member No.: 1 health bar will not work as it uses the PEERS table...I have a edit, will try and find it...as for the importer, I'll post something up soon for that. -------------------- - STOP PM'ING ME FOR SUPPORT, USE THE FORUMS THAT'S WHAT THEY'RE HERE FOR   nitroburn View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11787", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 15 2006, 08:34 PM Post #16 Advanced Member Group: Premium Posts: 39 Joined: 10-October 05 Member No.: 191 "can we use mass import with this for external torrents ?"I do. eerm, did.Depending what mass import code you are referring to. The code that is on the forums is from TTrc2 /w External Stats hack v1.0 (modded).This doesn't seem too different then v1.0   hgrunwell View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11799", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 16 2006, 12:41 AM Post #17 Advanced Member Group: Premium Posts: 33 Joined: 28-September 05 Member No.: 20 I am getting some info hash errors on certain trackers then no seeders and leechers on others after manual update and runing the clean.   willjazz View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11801", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 16 2006, 01:19 AM Post #18 Advanced Member Group: Premium Posts: 36 Joined: 30-April 06 Member No.: 2,269 Just one problem, if you seed the file before uploading the torrent it thinks its external, is there any way to stop this happening.   hgrunwell View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11802", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 16 2006, 01:41 AM Post #19 Advanced Member Group: Premium Posts: 33 Joined: 28-September 05 Member No.: 20 External Scrape log:# Step 1 - Trackers Status Checkinghttp://tracker.etree.org:6969/announce is [ONLINE]# http://www.bootcity.org/tracker/announce.php is [ONLINE]Step 2 - Torrents Scraping(http://tracker.etree.org:6969/scrape)# 52ea5cd40643990894f361247b26f42455537ab2 - (Seed: , Leech: , Compl: ) - No data received# 055d2c0c044fa9f552e930153283270f8c0facd9 - (Seed: , Leech: , Compl: ) - No data received(http://www.bootcity.org/tracker/scrape.php)# 353fa0d6894c85179f095a651a23c512f62ffbc7 - (Seed: , Leech: , Compl: ) - No data receivedEnd of scrape log   willjazz View Member Profile Add as Friend Send Message Find Member's Topics Find Member's Posts ipsmenu.register( "post-member-11803", '', 'popmenubutton-new', 'popmenubutton-new-out' ); May 16 2006, 02:34 AM Post #20 Advanced Member Group: Premium Posts: 36 Joined: 30-April 06 Member No.: 2,269 im also haveing trouble now with tracker not updating when someone stops seeding it still shows 7 people seeding when theres just 1, well 7 of me lol so i know its not right.   « Next Oldest · PREMIUM Hacks & Modifications · Next Newest »   10 Pages    1 2 3 > »  //  Fast Reply    Enable email notification of replies |  Enable Smilies |  Enable Signature     Forum Home Search Help Main   |-- Site News Updates and Rules   |-- General Chat   |-- Your Tracker TorrentTrader   |-- Technical Support   |-- Mod Requests   |-- Hacks And Modifications   |-- Themes & Styles   |-- TT4XBT VBTT   |-- VBTT Version 1.x   |---- Releases   |---- Support   |---- Mods   |-- VBTT Version 2.x   |---- Releases   |---- Support   |---- Mods   |-- VBTT Version 3.x   |---- Releases   |---- Support   |---- Mods TorrentTrader PREMIUM   |-- PREMIUM Support   |-- PREMIUM Hacks & Modifications   |-- PREMIUM BETA Source Codes   |-- PREMIUM Themes   Display Mode: Standard · Switch to: Linear+ · Switch to: Outline Track this topic · Email this topic · Print this topic · Subscribe to this forum // IPB 2.2.0 Default English Lo-Fi Version Time is now: 22nd August 2007 - 12:38 PM // Powered By IP.Board 2.3.1 © 2007  IPS, Inc. Licensed to: TorrentTrader.org

Wyszukiwarka