Version Description
- Released on 08/17/2022
- Support for Programmatic Ads thru Blubrry
Download this release
Release Info
Developer | benbeecroft |
Plugin | PowerPress Podcasting plugin by Blubrry |
Version | 9.2 |
Comparing to | |
See all releases |
Code changes from version 9.1.4 to 9.2
- css/onboarding.css +1 -1
- css/onboarding.min.css +1 -1
- feed-podcast.php +1 -1
- js/admin.js +3 -0
- powerpress.php +2 -20
- powerpressadmin-basic.php +38 -1
- powerpressadmin-editfeed.php +32 -0
- powerpressadmin.php +306 -38
- readme.txt +5 -1
css/onboarding.css
CHANGED
@@ -743,7 +743,7 @@ input[type="text"], input[type="password"] {
|
|
743 |
.pp_input-field-login, button[name="signin"] {
|
744 |
width: 40%;
|
745 |
}
|
746 |
-
p, h5.pp_align-center {
|
747 |
font-size: 16px;
|
748 |
}
|
749 |
p.pp-smaller-text {
|
743 |
.pp_input-field-login, button[name="signin"] {
|
744 |
width: 40%;
|
745 |
}
|
746 |
+
p, h5.pp_align-center, a {
|
747 |
font-size: 16px;
|
748 |
}
|
749 |
p.pp-smaller-text {
|
css/onboarding.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
body,body *,input,select,textarea{font-family:Roboto,sans-serif;box-sizing:border-box}body ::after,body ::before,body::after,body::before,input::after,input::before,select::after,select::before,textarea::after,textarea::before{box-sizing:border-box}body{background-image:-webkit-linear-gradient(top,#f2f2f2,#e6e6e6)}.pp_container{position:relative;max-width:80rem;margin:2rem auto 1rem auto;background:#fff;width:100%;padding:3rem 5rem;border-radius:4px}.pp_container::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.2);-webkit-transform:scale(.98);transform:scale(.98);-webkit-transition:-webkit-transform .28s ease-in-out;transition:-webkit-transform .28s ease-in-out;transition:transform .28s ease-in-out;transition:transform .28s ease-in-out,-webkit-transform .28s ease-in-out;z-index:-1}.pp_container:hover::before{-webkit-transform:scale(1);transform:scale(1)}.pp_button-container{text-align:center}.pp_flex-grid{display:flex}.pp_flex-grid .pp_col{flex:1;margin:0 25px}.pp_flex-grid-thirds{display:flex;justify-content:space-between}.pp_flex-grid-thirds .pp_col{width:32%}@media (max-width:1350px){#pp-create-episode .btn-caption-container{height:80%}}@media (max-width:1100px){#pp-create-episode .btn-caption-container{height:88%}#pp-create-episode .pp_image{height:25%}}@media (max-width:400px){.pp_.flex-grid,.pp_.flex-grid-thirds{display:block}.pp_col{width:100%;margin:0 0 10px 0}}*{box-sizing:border-box}.pp_.flex-grid{margin:0 0 20px 0}.pp_.col{background:salmon;padding:20px}h1,h2,h3,h4,h5,h6{font-weight:500;line-height:1.5;margin:0 0 .5rem 0;color:#333}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:inherit;text-decoration:none}h2{font-size:1.5rem}h3{font-size:1.35rem}h4{font-size:1.15rem}h5{font-size:.9rem}h6{font-size:.7rem}.pp_small{font-size:10px;color:#888}hr{border:0;border-bottom:solid 1px;margin:2rem 0}hr.major{margin:3rem 0}.pp_align-left{text-align:left}.pp_align-center{text-align:center}.pp_align-right{text-align:right}input,select,textarea{color:#555}a{color:#8a4680}b,strong{color:#555}blockquote{border-left-color:rgba(144,144,144,.25)}code{background:rgba(144,144,144,.075);border-color:rgba(144,144,144,.25)}hr{border-bottom-color:rgba(144,144,144,.25)}.pp_leftline{border-left:3px solid #efefef;padding-left:15px}.pp_box{height:100%;margin-bottom:2rem;background:#fff;padding:3rem;border:1px solid rgba(144,144,144,.25)}.pp_box.pp_service-container{border:1px solid #1976d2;padding:0}.pp_box.pp_service-container .pp_content{text-align:center}.pp_box.pp_service-container .pp_button{margin-top:3em}.pp_content{font-weight:700}.pp_button_alt.skip_blubrry{margin-top:3em}p{display:block}.iab_img{width:20%;margin-top:1em}.pp_box.pp_service-container .pp_image{height:5em;background-color:#1976d2;width:calc(100% + 1px)}.pp_box.pp_service-container .pp_image>img{width:auto;height:50%;transform:translateY(50%)}.pp_box.pp_service-container .pp_content{padding:3em}.pp_box header h2{margin-bottom:2rem}.pp_box header p{text-transform:uppercase;font-size:.75rem;font-weight:300;margin:0 0 .25rem 0;padding:0 0 .75rem 0;letter-spacing:.25rem}.pp_box header p:after{content:'';position:absolute;margin:auto;right:0;bottom:0;left:0;width:50%;height:1px;background-color:rgba(0,0,0,.125)}.pp_box>:last-child,.pp_box>:last-child>:last-child,.pp_box>:last-child>:last-child>:last-child{margin-bottom:0}.pp_box.alt{border:0;border-radius:0;padding:0}@media screen and (max-width:736px){.pp_box .pp_content{padding:2rem}}#wpcontent{background-image:-webkit-linear-gradient(top,#f2f2f2,#e6e6e6)}fieldset{margin:0 0 3rem}select{width:100%}.pp_input-field{position:relative;width:25%}.pp_input-field-thirds{position:relative;width:100%}input[type=password],input[type=text]{width:100%;padding-left:.75rem;transition:all .15s ease}.pp_outlined{height:38px;box-shadow:inset 0 0 0 1px #b2b2b2;border-radius:4px;background:0 0}.pp_outlined:focus{outline:0;box-shadow:inset 0 0 0 2px #ffb300}.pp_outlined+label{background:#fff;top:.8rem;position:absolute;left:.75rem;color:grey;transition:all .15s ease;padding:0;font-size:12px;pointer-events:none}.pp_outlined:focus+label,.pp_outlined:valid+label{color:#000;transform:scale(.8) translateY(-24px) translateX(-9px);padding:0 3px}.pp_form-group,.pp_form-radio{position:relative;margin-top:1.25rem;margin-bottom:2.25rem}.pp_form-inline>.pp_btn,.pp_form-inline>.pp_form-group{display:inline-block;margin-bottom:0}.pp_form-help{margin-top:.125rem;margin-left:.125rem;color:#b3b3b3;font-size:.8rem}.pp_checkbox .pp_form-help,.pp_form-group .pp_form-help,.pp_form-radio .pp_form-help{position:absolute;width:100%}.pp_checkbox .pp_form-help{position:relative;margin-bottom:1rem}.pp_form-radio .pp_form-help{padding-top:.25rem;margin-top:-1rem}.pp_checkbox label,.pp_form-radio label{position:relative;cursor:pointer;padding-left:2rem;text-align:left;color:#333;display:block}.pp_checkbox input,.pp_form-radio input{width:auto;opacity:.00000001;position:absolute;left:0}.pp_radio{margin-bottom:1rem}.pp_radio .pp_helper{position:absolute;top:-.25rem;left:-.25rem;cursor:pointer;display:block;font-size:1rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:#999}.pp_radio .pp_helper::after,.pp_radio .pp_helper::before{content:'';position:absolute;left:0;top:0;margin:.25rem;width:1rem;height:1rem;-webkit-transition:-webkit-transform .28s ease;transition:-webkit-transform .28s ease;transition:transform .28s ease;transition:transform .28s ease,-webkit-transform .28s ease;border-radius:50%;border:.125rem solid currentColor}.pp_radio .pp_helper::after{-webkit-transform:scale(0);transform:scale(0);background-color:#337ab7;border-color:#337ab7}.pp_radio label:hover .pp_helper{color:#337ab7}.pp_radio input:checked~.pp_helper::after{-webkit-transform:scale(.5);transform:scale(.5)}.pp_radio input:checked~.pp_helper::before{color:#337ab7}.pp_checkbox{margin-bottom:1rem}.pp_checkbox .pp_helper{color:#999;position:absolute;top:0;left:0;width:1rem;height:1rem;z-index:0;border:.125rem solid currentColor;border-radius:.0625rem;-webkit-transition:border-color .28s ease;transition:border-color .28s ease}.pp_checkbox .pp_helper::after,.pp_checkbox .pp_helper::before{position:absolute;height:0;width:.2rem;background-color:#337ab7;display:block;-webkit-transform-origin:left top;transform-origin:left top;border-radius:.25rem;content:'';-webkit-transition:opacity .28s ease,height 0s linear .28s;transition:opacity .28s ease,height 0s linear .28s;opacity:0}.pp_checkbox .pp_helper::before{top:.65rem;left:.38rem;-webkit-transform:rotate(-135deg);transform:rotate(-135deg);box-shadow:0 0 0 .0625rem #fff}.pp_checkbox .helper::after{top:.3rem;left:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.pp_checkbox label:hover .pp_helper{color:#337ab7}.pp_checkbox input:checked~.pp_helper{color:#337ab7}.pp_checkbox input:checked~.pp_helper::after,.pp_checkbox input:checked~.pp_helper::before{opacity:1;-webkit-transition:height .28s ease;transition:height .28s ease}.pp_checkbox input:checked~.pp_helper::after{height:.5rem}.pp_checkbox input:checked~.pp_helper::before{height:1.2rem;-webkit-transition-delay:0.28s;transition-delay:0.28s}.pp_checkbox+.pp_checkbox,.pp_radio+.pp_radio{margin-top:1rem}.pp_has-error .pp_legend.pp_legend,.pp_has-error.pp_form-group .pp_control-label.pp_control-label{color:#d9534f}.pp_has-error.pp_checkbox .pp_form-help,.pp_has-error.pp_checkbox .pp_helper,.pp_has-error.pp_form-group .pp_form-help,.pp_has-error.pp_form-group .pp_helper,.pp_has-error.pp_form-radio .pp_form-help,.pp_has-error.pp_form-radio .pp_helper,.pp_has-error.pp_radio .pp_form-help,.pp_has-error.pp_radio .pp_helper{color:#d9534f}.pp_has-error .pp_bar::before{background:#d9534f;left:0;width:100%}.pp_button{position:relative;background:currentColor;border:1px solid currentColor;font-size:1.1rem;color:#1976d2;margin:0;padding:.75rem 3rem;cursor:pointer;-webkit-transition:background-color .28s ease,color .28s ease,box-shadow .28s ease;transition:background-color .28s ease,color .28s ease,box-shadow .28s ease;overflow:hidden;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.pp_button span{color:#fff;position:relative;z-index:1}.pp_button::before{content:'';position:absolute;background:#003b75;border:50vh solid #1d4567;width:30vh;height:30vh;border-radius:50%;display:block;top:50%;left:50%;z-index:0;opacity:1;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0)}.pp_button:hover{color:#003b75;box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2)}.pp_button:active::before,.pp_button:focus::before{-webkit-transition:opacity .28s ease 364ms,-webkit-transform 1.12s ease;transition:opacity .28s ease 364ms,-webkit-transform 1.12s ease;transition:transform 1.12s ease,opacity .28s ease 364ms;transition:transform 1.12s ease,opacity .28s ease 364ms,-webkit-transform 1.12s ease;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);opacity:0}.pp_button:focus{outline:0}.pp_button_alt{position:relative;background:#fff;border:1px solid #c4c4c4;font-size:1.1rem;color:#333;margin:0;padding:.75rem 3rem;cursor:pointer;-webkit-transition:background-color .28s ease,color .28s ease,box-shadow .28s ease;transition:background-color .28s ease,color .28s ease,box-shadow .28s ease;overflow:hidden;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.pp_button_alt span{color:#333;position:relative;z-index:1}.pp_button_alt::before{content:'';position:absolute;background:#efefef;width:30vh;height:30vh;border-radius:50%;display:block;top:50%;left:50%;z-index:0;opacity:1;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0)}.pp_button_alt:hover{color:#efefef;box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.2)}.pp_button_alt:active::before,.pp_button_alt:focus::before{-webkit-transition:opacity .28s ease 364ms,-webkit-transform 1.12s ease;transition:opacity .28s ease 364ms,-webkit-transform 1.12s ease;transition:transform 1.12s ease,opacity .28s ease 364ms;transition:transform 1.12s ease,opacity .28s ease 364ms,-webkit-transform 1.12s ease;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);opacity:0}.pp_button_alt:focus{outline:0}.pp_image{height:50%}.pp_image.pp_fit{margin:0 auto;width:100%}#blubrry-logo-onboarding{height:1.5rem;margin:0 0 .5ch 1rem;vertical-align:bottom}.pp_content{height:50%}.pp_image img{width:50%;margin:0 auto}.pp_image.center>img{display:block;margin-left:auto;margin-right:auto}.pp_button.show_button{min-width:240px;margin-top:15px}.pp_input-field-login{position:relative}.pp_file_upload{opacity:0;left:0;top:0;z-index:999;height:50px}.pp_file_upload::-webkit-file-upload-button{height:50px}.image_center{display:block;margin-left:auto;margin-right:auto;width:40%}.image_wrapper{width:100%;height:auto}#upload-artwork-button{float:right;width:auto;min-height:40px;margin:1em 0 0 1em}#filepath{float:left;width:100%;margin:3ch 0 2em 0}#artwork-spec{margin-top:6em}#filePath{width:100%}.pp_input-field-login,button[name=signin]{width:40%}h5.pp_align-center,p{font-size:16px}p.pp-smaller-text{font-size:13px}#podcast-description{height:100px}.wrap div.error{border-right-width:0;border-top-width:0;border-bottom-width:0;border-left-width:3px;color:#dc3232;box-shadow:none;margin-bottom:0}@media (max-width:1095px){#showbasics_artwork{display:block}#artwork-spec{margin-top:0}#upload-artwork-button{width:95%;text-align:center;margin-bottom:1em;margin-left:0;float:left}.pp_input-field-login,button[name=signin]{width:50%}}@media (max-width:736px){.pp_flex-grid{display:block}.pp_container{padding:3rem 1rem}.bpp_input_med{width:100%}#showbasics_artwork_upload{margin:0}.pp_button,.pp_button_alt{padding:.75rem}}@media (max-width:610px){#filePath{width:100%}}@media (max-width:475px){.pp_box{padding:1rem}.pp_input-field-login,button[name=signin]{width:90%}}
|
1 |
+
body, input, select, textarea, body * {font-family: 'Roboto', sans-serif;box-sizing: border-box;}body::after, body::before, input::after, input::before, select::after, select::before, textarea::after, textarea::before, body *::after, body *::before {box-sizing: border-box;}body {background-image: -webkit-linear-gradient(top, #f2f2f2, #e6e6e6);}.pp_container {position: relative;max-width: 80rem;margin: 2rem auto 1rem auto;background: #fff;width: 100%;padding: 3rem 5rem;border-radius: 4px;}.pp_container::before {content: '';position: absolute;top: 0;left: 0;right: 0;bottom: 0;box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2);-webkit-transform: scale(0.98);transform: scale(0.98);-webkit-transition: -webkit-transform 0.28s ease-in-out;transition: -webkit-transform 0.28s ease-in-out;transition: transform 0.28s ease-in-out;transition: transform 0.28s ease-in-out, -webkit-transform 0.28s ease-in-out;z-index: -1;}.pp_container:hover::before {-webkit-transform: scale(1);transform: scale(1);}.pp_button-container {text-align: center;}.pp_flex-grid {display: flex;}.pp_flex-grid .pp_col {flex: 1;margin: 0 25px;}.pp_flex-grid-thirds {display: flex;justify-content: space-between;}.pp_flex-grid-thirds .pp_col {width: 32%;}@media (max-width: 1350px) {#pp-create-episode .btn-caption-container {height: 80%;}}@media (max-width: 1100px) {#pp-create-episode .btn-caption-container {height: 88%;}#pp-create-episode .pp_image {height: 25%;}}@media (max-width: 400px) {.pp_.flex-grid, .pp_.flex-grid-thirds {display: block;}.pp_col {width: 100%;margin: 0 0 10px 0;}}* {box-sizing: border-box;}.pp_.flex-grid {margin: 0 0 20px 0;}.pp_.col {background: salmon;padding: 20px;}h1, h2, h3, h4, h5, h6 {font-weight: 500;line-height: 1.5;margin: 0 0 .5rem 0;color: #333;}h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {color: inherit;text-decoration: none;}h2 {font-size: 1.5rem;}h3 {font-size: 1.35rem;}h4 {font-size: 1.15rem;}h5 {font-size: 0.9rem;}h6 {font-size: 0.7rem;}.pp_small {font-size: 10px;color: #888888;}hr {border: 0;border-bottom: solid 1px;margin: 2rem 0;}hr.major {margin: 3rem 0;}.pp_align-left {text-align: left;}.pp_align-center {text-align: center;}.pp_align-right {text-align: right;}input, select, textarea {color: #555;}a {color: #8a4680;}strong, b {color: #555;}blockquote {border-left-color: rgba(144, 144, 144, 0.25);}code {background: rgba(144, 144, 144, 0.075);border-color: rgba(144, 144, 144, 0.25);}hr {border-bottom-color: rgba(144, 144, 144, 0.25);}.pp_leftline {border-left: 3px solid #efefef;padding-left: 15px;}.pp_box {height: 100%;margin-bottom: 2rem;background: #FFF;padding: 3rem;border: 1px solid rgba(144, 144, 144, 0.25);}.pp_box.pp_service-container {border: 1px solid #1976d2;padding: 0;}.pp_box.pp_service-container .pp_content {text-align: center;}.pp_box.pp_service-container .pp_button {margin-top: 3em;}.pp_content {font-weight: bold;}.pp_button_alt.skip_blubrry {margin-top: 3em;}p {display: block;}.iab_img {width: 20%;margin-top: 1em;}.pp_box.pp_service-container .pp_image {height: 5em;background-color: #1976d2;width: calc(100% + 1px);}.pp_box.pp_service-container .pp_image>img {width: auto;height: 50%;transform: translateY(50%);}.pp_box.pp_service-container .pp_content {padding: 3em;}.pp_box header h2 {margin-bottom: 2rem;}.pp_box header p {text-transform: uppercase;font-size: .75rem;font-weight: 300;margin: 0 0 .25rem 0;padding: 0 0 .75rem 0;letter-spacing: .25rem;}.pp_box header p:after {content: '';position: absolute;margin: auto;right: 0;bottom: 0;left: 0;width: 50%;height: 1px;background-color: rgba(0, 0, 0, 0.125);}.pp_box > :last-child, .pp_box > :last-child > :last-child, .pp_box > :last-child > :last-child > :last-child {margin-bottom: 0;}.pp_box.alt {border: 0;border-radius: 0;padding: 0;}@media screen and (max-width: 736px) {.pp_box .pp_content {padding: 2rem;}}#wpcontent {background-image: -webkit-linear-gradient(top, #f2f2f2, #e6e6e6);}fieldset {margin: 0 0 3rem;}select {width: 100%;}.pp_input-field {position: relative;width: 25%;}.pp_input-field-thirds {position: relative;width: 100%;}input[type="text"], input[type="password"] {width: 100%;padding-left: 0.75rem;transition: all .15s ease;}.pp_outlined {height: 38px;box-shadow: inset 0 0 0 1px #b2b2b2;border-radius: 4px;background: transparent;}.pp_outlined:focus {outline: none;box-shadow: inset 0 0 0 2px #ffb300;}.pp_outlined + label {background: #ffffff;top: .8rem;position: absolute;left: 0.75rem;color: grey;transition: all .15s ease;padding: 0px;font-size: 12px;pointer-events: none;}.pp_outlined:focus + label, .pp_outlined:valid + label {color: black;transform: scale(.8) translateY(-24px) translateX(-9px);padding: 0 3px;}.pp_form-radio, .pp_form-group {position: relative;margin-top: 1.25rem;margin-bottom: 2.25rem;}.pp_form-inline > .pp_form-group, .pp_form-inline > .pp_btn {display: inline-block;margin-bottom: 0;}.pp_form-help {margin-top: 0.125rem;margin-left: 0.125rem;color: #b3b3b3;font-size: 0.8rem;}.pp_checkbox .pp_form-help, .pp_form-radio .pp_form-help, .pp_form-group .pp_form-help {position: absolute;width: 100%;}.pp_checkbox .pp_form-help {position: relative;margin-bottom: 1rem;}.pp_form-radio .pp_form-help {padding-top: 0.25rem;margin-top: -1rem;}.pp_checkbox label, .pp_form-radio label {position: relative;cursor: pointer;padding-left: 2rem;text-align: left;color: #333;display: block;}.pp_checkbox input, .pp_form-radio input {width: auto;opacity: 0.00000001;position: absolute;left: 0;}.pp_radio {margin-bottom: 1rem;}.pp_radio .pp_helper {position: absolute;top: -0.25rem;left: -0.25rem;cursor: pointer;display: block;font-size: 1rem;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;color: #999;}.pp_radio .pp_helper::before, .pp_radio .pp_helper::after {content: '';position: absolute;left: 0;top: 0;margin: 0.25rem;width: 1rem;height: 1rem;-webkit-transition: -webkit-transform 0.28s ease;transition: -webkit-transform 0.28s ease;transition: transform 0.28s ease;transition: transform 0.28s ease, -webkit-transform 0.28s ease;border-radius: 50%;border: 0.125rem solid currentColor;}.pp_radio .pp_helper::after {-webkit-transform: scale(0);transform: scale(0);background-color: #337ab7;border-color: #337ab7;}.pp_radio label:hover .pp_helper {color: #337ab7;}.pp_radio input:checked ~ .pp_helper::after {-webkit-transform: scale(0.5);transform: scale(0.5);}.pp_radio input:checked ~ .pp_helper::before {color: #337ab7;}.pp_checkbox {margin-bottom: 1rem;}.pp_checkbox .pp_helper {color: #999;position: absolute;top: 0;left: 0;width: 1rem;height: 1rem;z-index: 0;border: 0.125rem solid currentColor;border-radius: 0.0625rem;-webkit-transition: border-color 0.28s ease;transition: border-color 0.28s ease;}.pp_checkbox .pp_helper::before, .pp_checkbox .pp_helper::after {position: absolute;height: 0;width: 0.2rem;background-color: #337ab7;display: block;-webkit-transform-origin: left top;transform-origin: left top;border-radius: 0.25rem;content: '';-webkit-transition: opacity 0.28s ease, height 0s linear 0.28s;transition: opacity 0.28s ease, height 0s linear 0.28s;opacity: 0;}.pp_checkbox .pp_helper::before {top: 0.65rem;left: 0.38rem;-webkit-transform: rotate(-135deg);transform: rotate(-135deg);box-shadow: 0 0 0 0.0625rem #fff;}.pp_checkbox .helper::after {top: 0.3rem;left: 0;-webkit-transform: rotate(-45deg);transform: rotate(-45deg);}.pp_checkbox label:hover .pp_helper {color: #337ab7;}.pp_checkbox input:checked ~ .pp_helper {color: #337ab7;}.pp_checkbox input:checked ~ .pp_helper::after, .pp_checkbox input:checked ~ .pp_helper::before {opacity: 1;-webkit-transition: height 0.28s ease;transition: height 0.28s ease;}.pp_checkbox input:checked ~ .pp_helper::after {height: 0.5rem;}.pp_checkbox input:checked ~ .pp_helper::before {height: 1.2rem;-webkit-transition-delay: 0.28s;transition-delay: 0.28s;}.pp_radio + .pp_radio, .pp_checkbox + .pp_checkbox {margin-top: 1rem;}.pp_has-error .pp_legend.pp_legend, .pp_has-error.pp_form-group .pp_control-label.pp_control-label {color: #d9534f;}.pp_has-error.pp_form-group .pp_form-help, .pp_has-error.pp_form-group .pp_helper, .pp_has-error.pp_checkbox .pp_form-help, .pp_has-error.pp_checkbox .pp_helper, .pp_has-error.pp_radio .pp_form-help, .pp_has-error.pp_radio .pp_helper, .pp_has-error.pp_form-radio .pp_form-help, .pp_has-error.pp_form-radio .pp_helper {color: #d9534f;}.pp_has-error .pp_bar::before {background: #d9534f;left: 0;width: 100%;}.pp_button {position: relative;background: currentColor;border: 1px solid currentColor;font-size: 1.1rem;color: #1976D2;margin: 0;padding: 0.75rem 3rem;cursor: pointer;-webkit-transition: background-color 0.28s ease, color 0.28s ease, box-shadow 0.28s ease;transition: background-color 0.28s ease, color 0.28s ease, box-shadow 0.28s ease;overflow: hidden;box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);}.pp_button span {color: #fff;position: relative;z-index: 1;}.pp_button::before {content: '';position: absolute;background: #003B75;border: 50vh solid #1d4567;width: 30vh;height: 30vh;border-radius: 50%;display: block;top: 50%;left: 50%;z-index: 0;opacity: 1;-webkit-transform: translate(-50%, -50%) scale(0);transform: translate(-50%, -50%) scale(0);}.pp_button:hover {color: #003B75;box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2);}.pp_button:active::before, .pp_button:focus::before {-webkit-transition: opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;transition: opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;transition: transform 1.12s ease, opacity 0.28s ease 0.364s;transition: transform 1.12s ease, opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;-webkit-transform: translate(-50%, -50%) scale(1);transform: translate(-50%, -50%) scale(1);opacity: 0;}.pp_button:focus {outline: none;}.pp_button_alt {position: relative;background: #ffffff;border: 1px solid #c4c4c4;font-size: 1.1rem;color: #333;margin: 0;padding: 0.75rem 3rem;cursor: pointer;-webkit-transition: background-color 0.28s ease, color 0.28s ease, box-shadow 0.28s ease;transition: background-color 0.28s ease, color 0.28s ease, box-shadow 0.28s ease;overflow: hidden;box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);}.pp_button_alt span {color: #333;position: relative;z-index: 1;}.pp_button_alt::before {content: '';position: absolute;background: #efefef;width: 30vh;height: 30vh;border-radius: 50%;display: block;top: 50%;left: 50%;z-index: 0;opacity: 1;-webkit-transform: translate(-50%, -50%) scale(0);transform: translate(-50%, -50%) scale(0);}.pp_button_alt:hover {color: #efefef;box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12), 0 3px 5px -1px rgba(0, 0, 0, 0.2);}.pp_button_alt:active::before, .pp_button_alt:focus::before {-webkit-transition: opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;transition: opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;transition: transform 1.12s ease, opacity 0.28s ease 0.364s;transition: transform 1.12s ease, opacity 0.28s ease 0.364s, -webkit-transform 1.12s ease;-webkit-transform: translate(-50%, -50%) scale(1);transform: translate(-50%, -50%) scale(1);opacity: 0;}.pp_button_alt:focus {outline: none;}.pp_image {height: 50%;}.pp_image.pp_fit {margin: 0 auto;width: 100%;}#blubrry-logo-onboarding {height: 1.5rem;margin: 0 0 0.5ch 1rem;vertical-align: bottom;}.pp_content {height: 50%;}.pp_image img {width: 50%;margin: 0 auto;}.pp_image.center > img {display: block;margin-left: auto;margin-right: auto;}.pp_button.show_button {min-width: 240px;margin-top: 15px;}.pp_input-field-login {position: relative;}.pp_file_upload {opacity: 0;left: 0;top: 0;z-index: 999;height:50px;}.pp_file_upload::-webkit-file-upload-button {height:50px;}.image_center {display: block;margin-left: auto;margin-right: auto;width: 40%;}.image_wrapper {width: 100%;height: auto;}#upload-artwork-button {float: right;width: auto;min-height: 40px;margin: 1em 0 0 1em;}#filepath {float: left;width: 100%;margin: 3ch 0 2em 0;}#artwork-spec {margin-top: 6em;}#filePath {width: 100%;}.pp_input-field-login, button[name="signin"] {width: 40%;}p, h5.pp_align-center, a {font-size: 16px;}p.pp-smaller-text {font-size: 13px;}#podcast-description {height: 100px;}.wrap div.error {border-right-width: 0;border-top-width: 0;border-bottom-width: 0;border-left-width: 3px;color: #dc3232;box-shadow: none;margin-bottom: 0;}@media (max-width: 1095px) {#showbasics_artwork {display: block;}#artwork-spec {margin-top: 0;}#upload-artwork-button {width: 95%;text-align: center;margin-bottom: 1em;margin-left: 0;float: left;}.pp_input-field-login, button[name="signin"] {width: 50%;}}@media (max-width: 736px) {.pp_flex-grid {display: block;}.pp_container {padding: 3rem 1rem;}.bpp_input_med {width: 100%;}#showbasics_artwork_upload {margin: 0;}.pp_button_alt, .pp_button {padding: 0.75rem;}}@media (max-width: 610px) {#filePath {width: 100%;}}@media (max-width: 475px) {.pp_box {padding: 1rem;}.pp_input-field-login, button[name="signin"] {width: 90%;}}
|
feed-podcast.php
CHANGED
@@ -125,7 +125,7 @@ echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'."\n";
|
|
125 |
<language><?php bloginfo_rss( 'language' ); ?></language>
|
126 |
<sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
|
127 |
<sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
|
128 |
-
<?php if( !empty($FeedActionHook) ) { echo '<generator>
|
129 |
<?php do_action('rss2_head'.$FeedActionHook); ?>
|
130 |
<?php
|
131 |
|
125 |
<language><?php bloginfo_rss( 'language' ); ?></language>
|
126 |
<sy:updatePeriod><?php echo apply_filters( 'rss_update_period', 'hourly' ); ?></sy:updatePeriod>
|
127 |
<sy:updateFrequency><?php echo apply_filters( 'rss_update_frequency', '1' ); ?></sy:updateFrequency>
|
128 |
+
<?php if( !empty($FeedActionHook) ) { echo '<generator>Blubrry PowerPress/' . POWERPRESS_VERSION . '</generator>'. PHP_EOL; } ?>
|
129 |
<?php do_action('rss2_head'.$FeedActionHook); ?>
|
130 |
<?php
|
131 |
|
js/admin.js
CHANGED
@@ -100,6 +100,9 @@ function powerpress_openTab(evt, cityName) {
|
|
100 |
case "other":
|
101 |
document.getElementById("other-default-open").click();
|
102 |
break;
|
|
|
|
|
|
|
103 |
default:
|
104 |
break;
|
105 |
}
|
100 |
case "other":
|
101 |
document.getElementById("other-default-open").click();
|
102 |
break;
|
103 |
+
case "make-money":
|
104 |
+
document.getElementById("make-money-default-open").click();
|
105 |
+
break;
|
106 |
default:
|
107 |
break;
|
108 |
}
|
powerpress.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Blubrry PowerPress
|
4 |
Plugin URI: http://create.blubrry.com/resources/powerpress/
|
5 |
Description: <a href="https://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports Apple Podcasts (previously iTunes), Google Podcasts, Spotify, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
|
6 |
-
Version: 9.
|
7 |
Author: Blubrry
|
8 |
Author URI: https://blubrry.com/
|
9 |
Requires at least: 3.6
|
@@ -35,7 +35,7 @@ if( !function_exists('add_action') ) {
|
|
35 |
}
|
36 |
|
37 |
// WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
|
38 |
-
define('POWERPRESS_VERSION', '9.
|
39 |
|
40 |
// Translation support:
|
41 |
if ( !defined('POWERPRESS_ABSPATH') )
|
@@ -568,29 +568,11 @@ function powerpress_rss2_head()
|
|
568 |
|
569 |
$General = get_option('powerpress_general');
|
570 |
|
571 |
-
// We made it this far, lets write stuff to the feed!
|
572 |
-
echo '<!-- podcast_generator="Blubrry PowerPress/'. POWERPRESS_VERSION .'" ';
|
573 |
-
if( isset($General['advanced_mode_2']) && empty($General['advanced_mode_2']) )
|
574 |
-
echo 'mode="simple" ';
|
575 |
-
else
|
576 |
-
echo 'mode="advanced" ';
|
577 |
-
// Additional info for diagnostics
|
578 |
-
if( !empty($powerpress_feed['category']) )
|
579 |
-
echo 'category="'.$powerpress_feed['category'].'" ';
|
580 |
-
if( !empty($powerpress_feed['term_taxonomy_id']) )
|
581 |
-
echo 'ttid="'.$powerpress_feed['term_taxonomy_id'].'" ';
|
582 |
-
if( !empty($powerpress_feed['post_type']) )
|
583 |
-
echo 'posttype="'.$powerpress_feed['post_type'].'" ';
|
584 |
-
if( !empty($powerpress_feed['feed-slug']) )
|
585 |
-
echo 'feedslug="'.$powerpress_feed['feed-slug'].'" ';
|
586 |
-
|
587 |
$feedComment = apply_filters('powerpress_feed_comment', '');
|
588 |
-
$feedComment = str_replace( array('<!--', '-->'), array('|!~~', '~~>'), $feedComment);
|
589 |
$feedComment = trim($feedComment);
|
590 |
if( !empty($feedComment) )
|
591 |
echo $feedComment.' ';
|
592 |
|
593 |
-
echo 'Blubrry PowerPress Podcasting plugin for WordPress (https://www.blubrry.com/powerpress/) -->'.PHP_EOL;
|
594 |
|
595 |
// Websub!
|
596 |
if(!(defined('POWERPRESS_DISABLE_WEBSUB') && POWERPRESS_DISABLE_WEBSUB )) {
|
3 |
Plugin Name: Blubrry PowerPress
|
4 |
Plugin URI: http://create.blubrry.com/resources/powerpress/
|
5 |
Description: <a href="https://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports Apple Podcasts (previously iTunes), Google Podcasts, Spotify, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
|
6 |
+
Version: 9.2
|
7 |
Author: Blubrry
|
8 |
Author URI: https://blubrry.com/
|
9 |
Requires at least: 3.6
|
35 |
}
|
36 |
|
37 |
// WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
|
38 |
+
define('POWERPRESS_VERSION', '9.2' );
|
39 |
|
40 |
// Translation support:
|
41 |
if ( !defined('POWERPRESS_ABSPATH') )
|
568 |
|
569 |
$General = get_option('powerpress_general');
|
570 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
571 |
$feedComment = apply_filters('powerpress_feed_comment', '');
|
|
|
572 |
$feedComment = trim($feedComment);
|
573 |
if( !empty($feedComment) )
|
574 |
echo $feedComment.' ';
|
575 |
|
|
|
576 |
|
577 |
// Websub!
|
578 |
if(!(defined('POWERPRESS_DISABLE_WEBSUB') && POWERPRESS_DISABLE_WEBSUB )) {
|
powerpressadmin-basic.php
CHANGED
@@ -158,6 +158,7 @@ jQuery(document).ready(function($) {
|
|
158 |
<button id="destinations-tab" class="tablinks" onclick="powerpress_openTab(event, 'settings-destinations')"><?php echo htmlspecialchars(__('Destinations', 'powerpress')); ?></button>
|
159 |
<!-- <button id="analytics-tab" class="tablinks" onclick="openTab(event, 'settings-analytics')"><?php echo htmlspecialchars(__('Analytics', 'powerpress')); ?></button> -->
|
160 |
<button id="advanced-tab" class="tablinks" onclick="powerpress_openTab(event, 'settings-advanced')"><?php echo htmlspecialchars(__('Advanced', 'powerpress')); ?></button>
|
|
|
161 |
</div>
|
162 |
|
163 |
<div id="settings-welcome" class="pp-tabcontent active">
|
@@ -360,6 +361,42 @@ jQuery(document).ready(function($) {
|
|
360 |
?>
|
361 |
</div>
|
362 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
363 |
</div>
|
364 |
<div class="clear"></div>
|
365 |
|
@@ -782,7 +819,7 @@ function powerpressadmin_edit_media_statistics($General)
|
|
782 |
<?php echo __('Stats Prefix 2', 'powerpress'); ?>
|
783 |
</th>
|
784 |
<td>
|
785 |
-
<input type="text" class="pp-settings-text-input" name="<?php if(
|
786 |
</td>
|
787 |
</tr>
|
788 |
</table>
|
158 |
<button id="destinations-tab" class="tablinks" onclick="powerpress_openTab(event, 'settings-destinations')"><?php echo htmlspecialchars(__('Destinations', 'powerpress')); ?></button>
|
159 |
<!-- <button id="analytics-tab" class="tablinks" onclick="openTab(event, 'settings-analytics')"><?php echo htmlspecialchars(__('Analytics', 'powerpress')); ?></button> -->
|
160 |
<button id="advanced-tab" class="tablinks" onclick="powerpress_openTab(event, 'settings-advanced')"><?php echo htmlspecialchars(__('Advanced', 'powerpress')); ?></button>
|
161 |
+
<button id="make-money-tab" class="tablinks" onclick="powerpress_openTab(event, 'settings-make-money')"><?php echo htmlspecialchars(__('Make Money', 'powerpress')); ?></button>
|
162 |
</div>
|
163 |
|
164 |
<div id="settings-welcome" class="pp-tabcontent active">
|
361 |
?>
|
362 |
</div>
|
363 |
|
364 |
+
<div id="settings-make-money" class="pp-tabcontent">
|
365 |
+
<div class="pp-sidenav-toggle-container">
|
366 |
+
<div id="advanced-toggle-sidenav" class="toggle-sidenav" title="Blubrry Services" onclick="powerpress_displaySideNav(this);"><</div>
|
367 |
+
<div class="pp-sidenav">
|
368 |
+
<?php
|
369 |
+
powerpressadmin_edit_blubrry_services($General);
|
370 |
+
?>
|
371 |
+
<div class="pp-sidenav-extra" style="margin-top: 10%;"><a href="https://www.blubrry.com/support/" class="pp-sidenav-extra-text"><?php echo htmlspecialchars(__('POWERPRESS DOCUMENTATION', 'powerpress')); ?></a></div>
|
372 |
+
<div class="pp-sidenav-extra"><a href="https://www.blubrry.com/podcast-insider/" class="pp-sidenav-extra-text"><?php echo htmlspecialchars(__('PODCAST INSIDER BLOG', 'powerpress')); ?></a></div>
|
373 |
+
</div>
|
374 |
+
</div>
|
375 |
+
<?php
|
376 |
+
$origin_array = explode('.', POWERPRESS_BLUBRRY_API_URL);
|
377 |
+
$origin_array[0] = str_replace('api', 'publish', $origin_array[0]);
|
378 |
+
$publisher_origin = implode('.', $origin_array);
|
379 |
+
$publisher_origin = rtrim($publisher_origin, '/'); ?>
|
380 |
+
<button style="display: none;" id="make-money-default-open" class="pp-sidenav-tablinks active" onclick="sideNav(event, 'make-money-all')"><img class="pp-nav-icon" style="width: 22px;" alt="" src="<?php echo powerpress_get_root_url(); ?>images/settings_nav_icons/rss-symbol.svg"><?php echo htmlspecialchars(__('Hidden button', 'powerpress')); ?></button>
|
381 |
+
|
382 |
+
<div id="make-money-all" class="pp-sidenav-tab active">
|
383 |
+
<div class="pp_container">
|
384 |
+
<h1 class="pp-heading"><?php echo __('Programmatic Advertising', 'powerpress'); ?></h1>
|
385 |
+
<br />
|
386 |
+
<p class="pp-sub"><?php echo __('Blubrry hosting customers have access to our Programmatic Advertising service, which automatically puts ads into your show and pays YOU out directly from Blubrry! Simply configure your shows in the Blubrry Publisher then use the link there to sync you WordPress site.', 'powerpress'); ?></p>
|
387 |
+
<br />
|
388 |
+
<p class="pp-main"><a class="pp-main" target="_blank"
|
389 |
+
href="https://blubrry.com/services/programmatic-advertising/"
|
390 |
+
class="pp_align-center"><?php echo __('Learn More', 'powerpress'); ?></a></p>
|
391 |
+
<br />
|
392 |
+
<p class="pp-main"><a class="pp-main"
|
393 |
+
href="<?php echo $publisher_origin; ?>/partners/programmatic-advertising-management/"
|
394 |
+
class="pp_align-center"><?php echo __('Configure Shows for Programmatic Ads', 'powerpress'); ?></a></p>
|
395 |
+
|
396 |
+
</div>
|
397 |
+
</div>
|
398 |
+
</div>
|
399 |
+
|
400 |
</div>
|
401 |
<div class="clear"></div>
|
402 |
|
819 |
<?php echo __('Stats Prefix 2', 'powerpress'); ?>
|
820 |
</th>
|
821 |
<td>
|
822 |
+
<input type="text" class="pp-settings-text-input" name="<?php if( @strpos($General['redirect2'], $StatsIntegrationURL) !== false ) echo 'NULL[redirect2]'; else echo 'General[redirect2]'; ?>" value="<?php echo esc_attr($General['redirect2']); ?>" onblur="return CheckRedirect(this);" maxlength="255" <?php if( stripos($General['redirect2'], $StatsIntegrationURL) !== false ) { echo ' readOnly="readOnly"'; $StatsIntegrationURL = false; } ?> />
|
823 |
</td>
|
824 |
</tr>
|
825 |
</table>
|
powerpressadmin-editfeed.php
CHANGED
@@ -292,6 +292,8 @@ function powerpress_admin_editfeed($type='', $type_value = '', $feed_slug = fals
|
|
292 |
<button id="destinations-tab" class="tablinks" onclick="powerpress_openTab(event, 'settings-destinations')"><?php echo htmlspecialchars(__('Destinations', 'powerpress')); ?></button>
|
293 |
<!-- <button class="tablinks" onclick="openTab(event, 'settings-analytics')"><?php echo htmlspecialchars(__('Analytics', 'powerpress')); ?></button> -->
|
294 |
<button id="other-tab" class="tablinks" onclick="powerpress_openTab(event, 'settings-other')"><?php echo htmlspecialchars(__('Other', 'powerpress')); ?></button>
|
|
|
|
|
295 |
</div>
|
296 |
|
297 |
<div id="settings-welcome" class="pp-tabcontent active">
|
@@ -447,7 +449,37 @@ function powerpress_admin_editfeed($type='', $type_value = '', $feed_slug = fals
|
|
447 |
?>
|
448 |
</div>
|
449 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
450 |
|
|
|
|
|
|
|
451 |
</div>
|
452 |
<div class="clear"></div>
|
453 |
|
292 |
<button id="destinations-tab" class="tablinks" onclick="powerpress_openTab(event, 'settings-destinations')"><?php echo htmlspecialchars(__('Destinations', 'powerpress')); ?></button>
|
293 |
<!-- <button class="tablinks" onclick="openTab(event, 'settings-analytics')"><?php echo htmlspecialchars(__('Analytics', 'powerpress')); ?></button> -->
|
294 |
<button id="other-tab" class="tablinks" onclick="powerpress_openTab(event, 'settings-other')"><?php echo htmlspecialchars(__('Other', 'powerpress')); ?></button>
|
295 |
+
<button id="make-money-tab" class="tablinks" onclick="powerpress_openTab(event, 'settings-make-money')"><?php echo htmlspecialchars(__('Make Money', 'powerpress')); ?></button>
|
296 |
+
|
297 |
</div>
|
298 |
|
299 |
<div id="settings-welcome" class="pp-tabcontent active">
|
449 |
?>
|
450 |
</div>
|
451 |
</div>
|
452 |
+
<div id="settings-make-money" class="pp-tabcontent">
|
453 |
+
<div class="pp-sidenav-toggle-container">
|
454 |
+
<div id="advanced-toggle-sidenav" class="toggle-sidenav" title="Blubrry Services" onclick="powerpress_displaySideNav(this);"><</div>
|
455 |
+
<div class="pp-sidenav">
|
456 |
+
<?php
|
457 |
+
powerpressadmin_edit_blubrry_services($General);
|
458 |
+
?>
|
459 |
+
<div class="pp-sidenav-extra" style="margin-top: 10%;"><a href="https://www.blubrry.com/support/" class="pp-sidenav-extra-text"><?php echo htmlspecialchars(__('POWERPRESS DOCUMENTATION', 'powerpress')); ?></a></div>
|
460 |
+
<div class="pp-sidenav-extra"><a href="https://www.blubrry.com/podcast-insider/" class="pp-sidenav-extra-text"><?php echo htmlspecialchars(__('PODCAST INSIDER BLOG', 'powerpress')); ?></a></div>
|
461 |
+
</div>
|
462 |
+
</div>
|
463 |
+
<?php
|
464 |
+
$origin_array = explode('.', POWERPRESS_BLUBRRY_API_URL);
|
465 |
+
$origin_array[0] = str_replace('api', 'publish', $origin_array[0]);
|
466 |
+
$publisher_origin = implode('.', $origin_array);
|
467 |
+
$publisher_origin = rtrim($publisher_origin, '/'); ?>
|
468 |
+
<button style="display: none;" id="make-money-default-open" class="pp-sidenav-tablinks active" onclick="sideNav(event, 'make-money-all')"><img class="pp-nav-icon" style="width: 22px;" alt="" src="<?php echo powerpress_get_root_url(); ?>images/settings_nav_icons/rss-symbol.svg"><?php echo htmlspecialchars(__('Hidden button', 'powerpress')); ?></button>
|
469 |
+
|
470 |
+
<div id="make-money-all" class="pp-sidenav-tab active">
|
471 |
+
<div class="pp_container">
|
472 |
+
<h1 class="pp-heading"><?php echo __('Programmatic Advertising', 'powerpress'); ?></h1>
|
473 |
+
<br />
|
474 |
+
<p class="pp-sub"><!-- TODO: Update copy? --><?php echo __('As a Blubrry hosting customer, you have access to our Programmatic Advertising service, which automatically puts ads into your show and pays YOU out directly from Blubrry! Simply configure your shows in the Blubrry Publisher then use the link there to sync you WordPress site.', 'powerpress'); ?></p>
|
475 |
+
<br />
|
476 |
+
<p class="pp-main"><a class="pp-main"
|
477 |
+
href="<?php echo $publisher_origin; ?>/partners/programmatic-advertising-management/"
|
478 |
+
class="pp_align-center"><?php echo __('Configure Shows for Programmatic Ads', 'powerpress'); ?></a></p>
|
479 |
|
480 |
+
</div>
|
481 |
+
</div>
|
482 |
+
</div>
|
483 |
</div>
|
484 |
<div class="clear"></div>
|
485 |
|
powerpressadmin.php
CHANGED
@@ -953,6 +953,241 @@ function powerpress_admin_init()
|
|
953 |
{
|
954 |
switch( $_GET['action'] )
|
955 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
956 |
case 'powerpress-enable-categorypodcasting': {
|
957 |
check_admin_referer('powerpress-enable-categorypodcasting');
|
958 |
|
@@ -2508,6 +2743,10 @@ function powerpress_check_url(url, DestDiv)
|
|
2508 |
if (url.includes('mc.blubrry.com')) {
|
2509 |
validChars = ':0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-_.?=&%:';
|
2510 |
}
|
|
|
|
|
|
|
|
|
2511 |
let FeedSlug = DestDiv.replace("powerpress_warning_", "");
|
2512 |
|
2513 |
for( var x = 0; x < url.length; x++ )
|
@@ -2607,8 +2846,7 @@ function powerpress_get_media_info(FeedSlug)
|
|
2607 |
}
|
2608 |
|
2609 |
if (Parts[4]) {
|
2610 |
-
|
2611 |
-
self.parent.document.getElementById('powerpress_url_' + FeedSlug).value= Parts[4];
|
2612 |
}
|
2613 |
|
2614 |
|
@@ -2910,8 +3148,16 @@ function powerpress_media_info_ajax()
|
|
2910 |
{
|
2911 |
$media_url = rtrim($GeneralSettings['default_url'], '/') .'/'. $media_url;
|
2912 |
}
|
2913 |
-
|
2914 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2915 |
$UrlParts = parse_url($media_url);
|
2916 |
if( !empty($UrlParts['path']) )
|
2917 |
{
|
@@ -3738,7 +3984,8 @@ function powerpress_process_hosting($post_ID, $post_title)
|
|
3738 |
if( $feed_slug != 'podcast' )
|
3739 |
$field = '_'.$feed_slug.':enclosure';
|
3740 |
$EnclosureData = get_post_meta($post_ID, $field, true);
|
3741 |
-
|
|
|
3742 |
if( $EnclosureData )
|
3743 |
{
|
3744 |
/*
|
@@ -3781,9 +4028,11 @@ function powerpress_process_hosting($post_ID, $post_title)
|
|
3781 |
{
|
3782 |
$results = powerpress_write_tags($EnclosureURL, $post_title, $program_keyword);
|
3783 |
// if error, try inputting just the file name in case it's unpublished
|
3784 |
-
if ( ( strpos($EnclosureURL, 'ins.blubrry.com') || strpos($EnclosureURL, 'content.blubrry.com') || strpos($EnclosureURL, 'protected.blubrry.com')) && (isset($results['error']) || !is_array($results) || !$results) ) {
|
3785 |
$EnclosureUrLArray = explode('/', $EnclosureURL);
|
3786 |
$EnclosureURL = end($EnclosureUrLArray);
|
|
|
|
|
3787 |
$results = powerpress_write_tags($EnclosureURL, $post_title, $program_keyword);
|
3788 |
}
|
3789 |
}
|
@@ -3794,6 +4043,8 @@ function powerpress_process_hosting($post_ID, $post_title)
|
|
3794 |
$EnclosureFullURL = $EnclosureURL;
|
3795 |
$EnclosureUrLArray = explode('/', $EnclosureURL);
|
3796 |
$EnclosureURL = end($EnclosureUrLArray);
|
|
|
|
|
3797 |
$results = powerpress_get_media_info($EnclosureURL, $program_keyword);
|
3798 |
|
3799 |
// if error, try the full URL
|
@@ -3828,7 +4079,8 @@ function powerpress_process_hosting($post_ID, $post_title)
|
|
3828 |
|
3829 |
if( $error == false )
|
3830 |
{
|
3831 |
-
|
|
|
3832 |
set_time_limit(60*20); // give it 20 minutes just in case
|
3833 |
$json_data = false;
|
3834 |
$api_url_array = powerpress_get_api_array();
|
@@ -3837,15 +4089,15 @@ function powerpress_process_hosting($post_ID, $post_title)
|
|
3837 |
$req_url = sprintf('/2/media/%s/%s?format=json&publish=true&cache=' . md5( rand(0, 999) . time() ), urlencode($program_keyword), urlencode($EnclosureURL));
|
3838 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
|
3839 |
$req_url .= (defined('POWERPRESS_PUBLISH_PROTECTED') ? '&protected=true' : '');
|
3840 |
-
$results = $auth->api($accessToken, $req_url,
|
3841 |
} else {
|
3842 |
foreach ($api_url_array as $index => $api_url) {
|
3843 |
$req_url = sprintf('%s/media/%s/%s?format=json&publish=true&cache=' . md5( rand(0, 999) . time() ), rtrim($api_url, '/'), urlencode($program_keyword), urlencode($EnclosureURL));
|
3844 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA') ? '&' . POWERPRESS_BLUBRRY_API_QSA : '');
|
3845 |
$req_url .= (defined('POWERPRESS_PUBLISH_PROTECTED') ? '&protected=true' : '');
|
3846 |
-
$json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'],
|
3847 |
if (!$json_data && $api_url == 'https://api.blubrry.com/') { // Lets force cURL and see if that helps...
|
3848 |
-
$json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'],
|
3849 |
}
|
3850 |
if ($json_data != false)
|
3851 |
break;
|
@@ -3881,7 +4133,7 @@ function powerpress_process_hosting($post_ID, $post_title)
|
|
3881 |
else if( !empty($GLOBALS['g_powerpress_remote_error']) )
|
3882 |
$error .= htmlspecialchars($GLOBALS['g_powerpress_remote_error']);
|
3883 |
else
|
3884 |
-
$error .= __('Unknown error
|
3885 |
$error .= '</div>';
|
3886 |
powerpress_add_error($error);
|
3887 |
}
|
@@ -4358,9 +4610,24 @@ function powerpress_get_media_info($file, $program_Keyword = false)
|
|
4358 |
if( empty($program_Keyword) && !empty($Settings['blubrry_program_keyword']) ) {
|
4359 |
$program_Keyword = $Settings['blubrry_program_keyword'];
|
4360 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4361 |
$content = false;
|
4362 |
$Results = array();
|
|
|
4363 |
$api_url_array = powerpress_get_api_array();
|
|
|
|
|
|
|
|
|
|
|
|
|
4364 |
if ($creds) {
|
4365 |
$accessToken = powerpress_getAccessToken();
|
4366 |
$req_url = sprintf('/2/media/%s/%s?format=json&info=true', urlencode($program_Keyword), urlencode($file));
|
@@ -4387,39 +4654,40 @@ function powerpress_get_media_info($file, $program_Keyword = false)
|
|
4387 |
if ($Results && is_array($Results))
|
4388 |
return $Results;
|
4389 |
|
4390 |
-
|
4391 |
-
|
4392 |
-
|
4393 |
-
|
4394 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4395 |
|
4396 |
-
|
4397 |
-
|
4398 |
-
$req_url = sprintf('/2/media/%s/%s?format=json&info=true', urlencode($program_Keyword), urlencode($file));
|
4399 |
-
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
|
4400 |
-
$Results = $auth->api($accessToken, $req_url, false);
|
4401 |
-
} else {
|
4402 |
-
foreach ($api_url_array as $index => $api_url) {
|
4403 |
-
$req_url = sprintf('%s/media/%s/%s?format=json&info=true', rtrim($api_url, '/'), urlencode($program_Keyword), urlencode($file));
|
4404 |
-
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA') ? '&' . POWERPRESS_BLUBRRY_API_QSA : '');
|
4405 |
-
$content = powerpress_remote_fopen($req_url, $Settings['blubrry_auth']);
|
4406 |
-
if (!$content && $api_url == 'https://api.blubrry.com/') { // Lets force cURL and see if that helps...
|
4407 |
-
$content = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 15, false, true);
|
4408 |
}
|
4409 |
|
4410 |
-
if ($content
|
4411 |
-
|
4412 |
-
|
4413 |
-
|
4414 |
-
if ($content) {
|
4415 |
-
$Results = powerpress_json_decode($content);
|
4416 |
}
|
4417 |
}
|
4418 |
|
4419 |
-
if (isset($Results['error'])) {
|
4420 |
-
return array('error'=>__('Unpublished file not found.', 'powerpress') );
|
4421 |
-
}
|
4422 |
-
|
4423 |
if ($Results && is_array($Results))
|
4424 |
return $Results;
|
4425 |
|
953 |
{
|
954 |
switch( $_GET['action'] )
|
955 |
{
|
956 |
+
case 'powerpress-sync-progad': {
|
957 |
+
function buildRedirect($Redirects) {
|
958 |
+
$redirect_result = '';
|
959 |
+
for( $x = 3; $x >= 0; $x-- )
|
960 |
+
{
|
961 |
+
$key = sprintf('redirect%d', $x);
|
962 |
+
if( !empty($Redirects[ $key ]) )
|
963 |
+
{
|
964 |
+
if( preg_match('/^https?:\/\/(.*)$/', trim($Redirects[ $key ]) , $matches ) == 0 )
|
965 |
+
continue;
|
966 |
+
|
967 |
+
$RedirectClean = $matches[1];
|
968 |
+
if( substr($RedirectClean, -1, 1) != '/' ) // Rediercts need to end with a slash /.
|
969 |
+
$RedirectClean .= '/';
|
970 |
+
|
971 |
+
if( !empty($RedirectClean) )
|
972 |
+
{
|
973 |
+
if( strpos($RedirectClean, '/') == 0 ) // Not a valid redirect URL
|
974 |
+
continue;
|
975 |
+
|
976 |
+
if( !strstr($redirect_result, $RedirectClean) ) // If the redirect is not already added...
|
977 |
+
$redirect_result = $RedirectClean . $redirect_result;
|
978 |
+
}
|
979 |
+
}
|
980 |
+
}
|
981 |
+
return 'https://' . $redirect_result;
|
982 |
+
}
|
983 |
+
// grab the redirect url prefixes for each feed slug and make an array
|
984 |
+
$General = powerpress_get_settings('powerpress_general');
|
985 |
+
// append general redirects to each other (starting with redirect1)
|
986 |
+
$Redirects = array('redirect0'=>'', 'redirect1'=>'', 'redirect2'=>'', 'redirect3'=>'');
|
987 |
+
if( !empty($General['redirect1']) )
|
988 |
+
$Redirects['redirect1'] = $General['redirect1'];
|
989 |
+
if( !empty($General['redirect2']) )
|
990 |
+
$Redirects['redirect2'] = $General['redirect2'];
|
991 |
+
if( !empty($General['redirect3']) )
|
992 |
+
$Redirects['redirect3'] = $General['redirect3'];
|
993 |
+
|
994 |
+
// add to redirect array with key 'enclosure'
|
995 |
+
$main_redirect = buildRedirect($Redirects);
|
996 |
+
$redirect_array = array('enclosure' => $main_redirect);
|
997 |
+
|
998 |
+
// then append custom feed redirects to beginning of main feed redirect with _slug:enclosure for each custom feed
|
999 |
+
// channels
|
1000 |
+
if (!empty($General['custom_feeds'])) {
|
1001 |
+
foreach ($General['custom_feeds'] as $slug => $title) {
|
1002 |
+
$Feed = get_option('powerpress_feed_' . $slug);
|
1003 |
+
if (!empty($Feed['redirect'])) {
|
1004 |
+
$Redirects['redirect0'] = $Feed['redirect'];
|
1005 |
+
$redirect_array += array('_' . $slug . ':enclosure' => buildRedirect($Redirects));
|
1006 |
+
$Redirects['redirect0'] = '';
|
1007 |
+
} else {
|
1008 |
+
$redirect_array += array('_' . $slug . ':enclosure' => $main_redirect);
|
1009 |
+
// default stats redirect
|
1010 |
+
}
|
1011 |
+
}
|
1012 |
+
}
|
1013 |
+
|
1014 |
+
// categories
|
1015 |
+
if (!empty($General['custom_cat_feeds'])) {
|
1016 |
+
foreach ($General['custom_cat_feeds'] as $idx => $id) {
|
1017 |
+
$category = get_category($id);
|
1018 |
+
// $category['slug']
|
1019 |
+
$Feed = get_option('powerpress_cat_feed_' . $id);
|
1020 |
+
if (!empty($Feed['redirect'])) {
|
1021 |
+
$Redirects['redirect0'] = $Feed['redirect'];
|
1022 |
+
$redirect_array += array('_' . $category->slug . ':enclosure' => buildRedirect($Redirects));
|
1023 |
+
$Redirects['redirect0'] = '';
|
1024 |
+
} else {
|
1025 |
+
$redirect_array += array('_' . $category->slug . ':enclosure' => $main_redirect);
|
1026 |
+
// default stats redirect
|
1027 |
+
}
|
1028 |
+
}
|
1029 |
+
}
|
1030 |
+
|
1031 |
+
// taxonomies
|
1032 |
+
$PowerPressTaxonomies = get_option('powerpress_taxonomy_podcasting');
|
1033 |
+
if (!empty($PowerPressTaxonomies)) {
|
1034 |
+
foreach ($PowerPressTaxonomies as $tt_id => $null) {
|
1035 |
+
|
1036 |
+
$taxonomy_type = '';
|
1037 |
+
$term_ID = '';
|
1038 |
+
|
1039 |
+
global $wpdb;
|
1040 |
+
$term_info = $wpdb->get_results("SELECT term_id, taxonomy FROM $wpdb->term_taxonomy WHERE term_taxonomy_id = $tt_id", ARRAY_A);
|
1041 |
+
if (!empty($term_info[0]['term_id'])) {
|
1042 |
+
$term_ID = $term_info[0]['term_id'];
|
1043 |
+
$taxonomy_type = $term_info[0]['taxonomy'];
|
1044 |
+
} else {
|
1045 |
+
continue; // we didn't find this taxonomy relationship
|
1046 |
+
}
|
1047 |
+
|
1048 |
+
$Feed = powerpress_get_settings('powerpress_taxonomy_' . $tt_id);
|
1049 |
+
$term_object = get_term( $term_ID, $taxonomy_type, OBJECT, 'edit');
|
1050 |
+
if (!empty($Feed['redirect'])) {
|
1051 |
+
$Redirects['redirect0'] = $Feed['redirect'];
|
1052 |
+
$redirect_array += array('_' . $term_object->slug . ':enclosure' => buildRedirect($Redirects));
|
1053 |
+
$Redirects['redirect0'] = '';
|
1054 |
+
} else {
|
1055 |
+
$redirect_array += array('_' . $term_object->slug . ':enclosure' => $main_redirect);
|
1056 |
+
// default stats redirect
|
1057 |
+
}
|
1058 |
+
}
|
1059 |
+
}
|
1060 |
+
|
1061 |
+
// post types
|
1062 |
+
$post_types = powerpress_admin_get_post_types(false);
|
1063 |
+
if (!empty($post_types)) {
|
1064 |
+
foreach ($post_types as $null => $post_type) {
|
1065 |
+
$PostTypeSettingsArray = get_option('powerpress_posttype_' . $post_type);
|
1066 |
+
if (!$PostTypeSettingsArray)
|
1067 |
+
continue;
|
1068 |
+
|
1069 |
+
foreach ($PostTypeSettingsArray as $feed_slug => $Feed) {
|
1070 |
+
if (!empty($Feed['redirect'])) {
|
1071 |
+
$Redirects['redirect0'] = $Feed['redirect'];
|
1072 |
+
$redirect_array += array('_' . $feed_slug . ':enclosure' => buildRedirect($Redirects));
|
1073 |
+
$Redirects['redirect0'] = '';
|
1074 |
+
} else {
|
1075 |
+
$redirect_array += array('_' . $feed_slug . ':enclosure' => $main_redirect);
|
1076 |
+
// default stats redirect
|
1077 |
+
}
|
1078 |
+
}
|
1079 |
+
}
|
1080 |
+
}
|
1081 |
+
|
1082 |
+
// figure out which shows we are enabling/disabling
|
1083 |
+
$progad_error = '';
|
1084 |
+
$progad_enable_urls = array();
|
1085 |
+
$progad_disable_urls = array();
|
1086 |
+
$auth = new PowerPressAuth();
|
1087 |
+
$accessToken = powerpress_getAccessToken();
|
1088 |
+
$req_url = sprintf('/2/media/prog_ad_status.json?cache=' . md5(rand(0, 999) . time()));
|
1089 |
+
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA') ? '?' . POWERPRESS_BLUBRRY_API_QSA : '');
|
1090 |
+
$req_url .= (defined('POWERPRESS_PUBLISH_PROTECTED') ? '&protected=true' : '');
|
1091 |
+
$progad_enabled_shows = $auth->api($accessToken, $req_url, array(), false, 60 * 30);
|
1092 |
+
if (!$progad_enabled_shows) {
|
1093 |
+
$progad_error = $auth->getLastError();
|
1094 |
+
}
|
1095 |
+
$past_shows_with_progad = get_option('pp_programmatic_enabled_shows');
|
1096 |
+
if (!empty($past_shows_with_progad) && !empty($progad_enabled_shows['programs'])) {
|
1097 |
+
$shows_to_enable = array_diff($progad_enabled_shows['programs'], $past_shows_with_progad);
|
1098 |
+
$shows_to_disable = array_diff($past_shows_with_progad, $progad_enabled_shows['programs']);
|
1099 |
+
} elseif (!empty($past_shows_with_progad) && empty($progad_enabled_shows['programs'])) {
|
1100 |
+
$shows_to_disable = $past_shows_with_progad;
|
1101 |
+
} elseif (!empty($progad_enabled_shows['programs']) && empty($past_shows_with_progad)) {
|
1102 |
+
$shows_to_enable = $progad_enabled_shows['programs'];
|
1103 |
+
}
|
1104 |
+
update_option('pp_programmatic_enabled_shows', $progad_enabled_shows['programs']);
|
1105 |
+
|
1106 |
+
// use the API to get associated URLs for all URLs in any program whose ads were just enabled
|
1107 |
+
if (!empty($shows_to_enable)) {
|
1108 |
+
foreach ($shows_to_enable as $idx => $keyword) {
|
1109 |
+
$req_url = sprintf('/2/media/' . $keyword . '/prog_ad_urls.json?cache=' . md5(rand(0, 999) . time()));
|
1110 |
+
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA') ? '?' . POWERPRESS_BLUBRRY_API_QSA : '');
|
1111 |
+
$req_url .= (defined('POWERPRESS_PUBLISH_PROTECTED') ? '&protected=true' : '');
|
1112 |
+
$result_prog = $auth->api($accessToken, $req_url, array(), false, 60 * 30);
|
1113 |
+
if (isset($result_prog['urls']) && is_array($result_prog['urls'])) {
|
1114 |
+
foreach ($result_prog['urls'] as $i => $url_pair) {
|
1115 |
+
// add the redirect to the key before adding this pair
|
1116 |
+
$progad_enable_urls += $url_pair;
|
1117 |
+
}
|
1118 |
+
} elseif (isset($result_prog['message']) && $result_prog['message'] == 'no media') {
|
1119 |
+
// no error--continue
|
1120 |
+
}
|
1121 |
+
else {
|
1122 |
+
$progad_error = $auth->getLastError();
|
1123 |
+
}
|
1124 |
+
}
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
// use the API to get associated URLs for all URLs in any program whose ads were just disabled
|
1128 |
+
if (!empty($shows_to_disable)) {
|
1129 |
+
foreach ($shows_to_disable as $idx => $keyword) {
|
1130 |
+
$req_url = sprintf('/2/media/' . $keyword . '/prog_ad_urls.json?disable=true&cache=' . md5(rand(0, 999) . time()));
|
1131 |
+
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA') ? '?' . POWERPRESS_BLUBRRY_API_QSA : '');
|
1132 |
+
$req_url .= (defined('POWERPRESS_PUBLISH_PROTECTED') ? '&protected=true' : '');
|
1133 |
+
$result_prog = $auth->api($accessToken, $req_url, array(), false, 60 * 30);
|
1134 |
+
$progad_error = $auth->getLastError();
|
1135 |
+
if (isset($result_prog['urls']) && is_array($result_prog['urls'])) {
|
1136 |
+
foreach ($result_prog['urls'] as $i => $url_pair) {
|
1137 |
+
// add the redirect to the key before adding this pair
|
1138 |
+
$progad_disable_urls += $url_pair;
|
1139 |
+
}
|
1140 |
+
} elseif (isset($result_prog['message']) && $result_prog['message'] == 'no media') {
|
1141 |
+
// no error--continue
|
1142 |
+
}
|
1143 |
+
else {
|
1144 |
+
$progad_error = $auth->getLastError();
|
1145 |
+
}
|
1146 |
+
}
|
1147 |
+
}
|
1148 |
+
|
1149 |
+
// query the wordpress database to match up the URLs that we need to update
|
1150 |
+
global $wpdb;
|
1151 |
+
$query = "SELECT meta_id, post_id, meta_key, meta_value FROM {$wpdb->postmeta} WHERE meta_key LIKE \"%enclosure\"";
|
1152 |
+
$results_data = $wpdb->get_results($query, ARRAY_A);
|
1153 |
+
foreach ($results_data as $idx => $data) {
|
1154 |
+
$meta_parts = explode("\n", $data['meta_value']);
|
1155 |
+
|
1156 |
+
if (strpos($meta_parts[0], 'ins.blubrry.com')) {
|
1157 |
+
$parts_array = explode('ins.blubrry.com', $meta_parts[0]);
|
1158 |
+
} else if (strpos($meta_parts[0], 'content3.blubrry.biz')) {
|
1159 |
+
$parts_array = explode('content3.blubrry.biz', $meta_parts[0]);
|
1160 |
+
} else if (strpos($meta_parts[0], 'mc.blubrry.com')) {
|
1161 |
+
$parts_array = explode('mc.blubrry.com', $meta_parts[0]);
|
1162 |
+
} elseif (strpos($meta_parts[0], 'content.blubrry.com')) {
|
1163 |
+
$parts_array = explode('content.blubrry.com', $meta_parts[0]);
|
1164 |
+
} else {
|
1165 |
+
// not Blubrry hosted
|
1166 |
+
continue;
|
1167 |
+
}
|
1168 |
+
$url_without_prefix = $parts_array[1];
|
1169 |
+
$parts_drop_qs = explode('?', $url_without_prefix);
|
1170 |
+
if (!empty($progad_enable_urls) && array_key_exists($parts_drop_qs[0], $progad_enable_urls)) {
|
1171 |
+
// now, if they have a redirect for the feed that this url is in, we need to replace the https://media.blubrry.com/{keyword}/ with those redirects
|
1172 |
+
$progad_url_with_pp_redirect = preg_replace('#https://media.blubrry.com/(.*)/#U', $redirect_array[$data['meta_key']], $progad_enable_urls[$parts_drop_qs[0]]);
|
1173 |
+
// replace the url in the meta_parts array, implode it back together, and update the program meta
|
1174 |
+
$meta_parts[0] = $progad_url_with_pp_redirect;
|
1175 |
+
$new_meta_value = implode("\n", $meta_parts);
|
1176 |
+
update_post_meta($data['post_id'], $data['meta_key'], $new_meta_value);
|
1177 |
+
} else if (!empty($progad_disable_urls) && array_key_exists($parts_drop_qs[0], $progad_disable_urls)) {
|
1178 |
+
$hosting_url_with_pp_redirect = preg_replace('#http(s?)://#U', $redirect_array[$data['meta_key']], $progad_disable_urls[$parts_drop_qs[0]]);
|
1179 |
+
// replace the url in the meta_parts array, implode it back together, and update the program meta
|
1180 |
+
$meta_parts[0] = $hosting_url_with_pp_redirect;
|
1181 |
+
$new_meta_value = implode("\n", $meta_parts);
|
1182 |
+
update_post_meta($data['post_id'], $data['meta_key'], $new_meta_value);
|
1183 |
+
}
|
1184 |
+
}
|
1185 |
+
if ($progad_error) {
|
1186 |
+
powerpress_add_error("Error syncing Programmatic Advertising Settings: " . $progad_error);
|
1187 |
+
} else {
|
1188 |
+
powerpress_page_message_add_notice("Successfully synced Programmatic Advertising Settings from Blubrry.", 'inline', false);
|
1189 |
+
}
|
1190 |
+
}; break;
|
1191 |
case 'powerpress-enable-categorypodcasting': {
|
1192 |
check_admin_referer('powerpress-enable-categorypodcasting');
|
1193 |
|
2743 |
if (url.includes('mc.blubrry.com')) {
|
2744 |
validChars = ':0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-_.?=&%:';
|
2745 |
}
|
2746 |
+
// for blubrry's programmatic ads, we include %s to encode the feed url in the query string
|
2747 |
+
if (url.includes('mc.blubrry.com')) {
|
2748 |
+
validChars = ':0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-_.?=&%;:';
|
2749 |
+
}
|
2750 |
let FeedSlug = DestDiv.replace("powerpress_warning_", "");
|
2751 |
|
2752 |
for( var x = 0; x < url.length; x++ )
|
2846 |
}
|
2847 |
|
2848 |
if (Parts[4]) {
|
2849 |
+
self.parent.document.getElementById('powerpress_url_' + FeedSlug).value = Parts[4];
|
|
|
2850 |
}
|
2851 |
|
2852 |
|
3148 |
{
|
3149 |
$media_url = rtrim($GeneralSettings['default_url'], '/') .'/'. $media_url;
|
3150 |
}
|
3151 |
+
// for media creek urls, just verify the content.blubrry.com version
|
3152 |
+
if (strpos($media_url, 'mc.blubrry.com') !== false) {
|
3153 |
+
//remove query string
|
3154 |
+
$media_url_array = explode('?', $media_url);
|
3155 |
+
$media_url = $media_url_array[0];
|
3156 |
+
// replace media host
|
3157 |
+
$media_url = str_replace('mc.blubrry.com', 'content.blubrry.com', $media_url);
|
3158 |
+
}
|
3159 |
+
|
3160 |
+
$ContentType = false;
|
3161 |
$UrlParts = parse_url($media_url);
|
3162 |
if( !empty($UrlParts['path']) )
|
3163 |
{
|
3984 |
if( $feed_slug != 'podcast' )
|
3985 |
$field = '_'.$feed_slug.':enclosure';
|
3986 |
$EnclosureData = get_post_meta($post_ID, $field, true);
|
3987 |
+
$post_guid = get_the_guid($post_ID);
|
3988 |
+
$post_time = get_post_time('U', false, $post_ID);
|
3989 |
if( $EnclosureData )
|
3990 |
{
|
3991 |
/*
|
4028 |
{
|
4029 |
$results = powerpress_write_tags($EnclosureURL, $post_title, $program_keyword);
|
4030 |
// if error, try inputting just the file name in case it's unpublished
|
4031 |
+
if ( ( strpos($EnclosureURL, 'ins.blubrry.com') || strpos($EnclosureURL, 'content.blubrry.com') || strpos($EnclosureURL, 'protected.blubrry.com') || strpos($EnclosureURL, 'mc.blubrry.com')) && (isset($results['error']) || !is_array($results) || !$results) ) {
|
4032 |
$EnclosureUrLArray = explode('/', $EnclosureURL);
|
4033 |
$EnclosureURL = end($EnclosureUrLArray);
|
4034 |
+
$EnclosureUrlQSArray = explode('?', $EnclosureURL);
|
4035 |
+
$EnclosureURL = $EnclosureUrlQSArray[0];
|
4036 |
$results = powerpress_write_tags($EnclosureURL, $post_title, $program_keyword);
|
4037 |
}
|
4038 |
}
|
4043 |
$EnclosureFullURL = $EnclosureURL;
|
4044 |
$EnclosureUrLArray = explode('/', $EnclosureURL);
|
4045 |
$EnclosureURL = end($EnclosureUrLArray);
|
4046 |
+
$EnclosureUrlQSArray = explode('?', $EnclosureURL);
|
4047 |
+
$EnclosureURL = $EnclosureUrlQSArray[0];
|
4048 |
$results = powerpress_get_media_info($EnclosureURL, $program_keyword);
|
4049 |
|
4050 |
// if error, try the full URL
|
4079 |
|
4080 |
if( $error == false )
|
4081 |
{
|
4082 |
+
$post_vars = array('podcast_guid' => $post_guid, 'podcast_post_date' => $post_time, 'podcast_title' => $post_title, 'podcast_subtitle' => isset($EpisodeData['subtitle']) ? $EpisodeData['subtitle'] : '');
|
4083 |
+
// Extend the max execution time here
|
4084 |
set_time_limit(60*20); // give it 20 minutes just in case
|
4085 |
$json_data = false;
|
4086 |
$api_url_array = powerpress_get_api_array();
|
4089 |
$req_url = sprintf('/2/media/%s/%s?format=json&publish=true&cache=' . md5( rand(0, 999) . time() ), urlencode($program_keyword), urlencode($EnclosureURL));
|
4090 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
|
4091 |
$req_url .= (defined('POWERPRESS_PUBLISH_PROTECTED') ? '&protected=true' : '');
|
4092 |
+
$results = $auth->api($accessToken, $req_url, $post_vars, false, 60 * 30);
|
4093 |
} else {
|
4094 |
foreach ($api_url_array as $index => $api_url) {
|
4095 |
$req_url = sprintf('%s/media/%s/%s?format=json&publish=true&cache=' . md5( rand(0, 999) . time() ), rtrim($api_url, '/'), urlencode($program_keyword), urlencode($EnclosureURL));
|
4096 |
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA') ? '&' . POWERPRESS_BLUBRRY_API_QSA : '');
|
4097 |
$req_url .= (defined('POWERPRESS_PUBLISH_PROTECTED') ? '&protected=true' : '');
|
4098 |
+
$json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], $post_vars, 60 * 30); // give this up to 30 minutes, though 3 seocnds to 20 seconds is all one should need.
|
4099 |
if (!$json_data && $api_url == 'https://api.blubrry.com/') { // Lets force cURL and see if that helps...
|
4100 |
+
$json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], $post_vars, 60 * 30, false, true);
|
4101 |
}
|
4102 |
if ($json_data != false)
|
4103 |
break;
|
4133 |
else if( !empty($GLOBALS['g_powerpress_remote_error']) )
|
4134 |
$error .= htmlspecialchars($GLOBALS['g_powerpress_remote_error']);
|
4135 |
else
|
4136 |
+
$error .= __('Unknown error occurred.', 'powerpress');
|
4137 |
$error .= '</div>';
|
4138 |
powerpress_add_error($error);
|
4139 |
}
|
4610 |
if( empty($program_Keyword) && !empty($Settings['blubrry_program_keyword']) ) {
|
4611 |
$program_Keyword = $Settings['blubrry_program_keyword'];
|
4612 |
}
|
4613 |
+
// for media creek urls, just verify the content.blubrry.com version
|
4614 |
+
if (strpos($file, 'mc.blubrry.com') !== false) {
|
4615 |
+
//remove query string
|
4616 |
+
$file_array = explode('?', $file);
|
4617 |
+
$file = $file_array[0];
|
4618 |
+
// replace media host
|
4619 |
+
$file = str_replace('mc.blubrry.com', 'content.blubrry.com', $file);
|
4620 |
+
}
|
4621 |
$content = false;
|
4622 |
$Results = array();
|
4623 |
+
$full_url = true;
|
4624 |
$api_url_array = powerpress_get_api_array();
|
4625 |
+
if (substr($file, 0, 4) != 'http') {
|
4626 |
+
// filename only, remove query string
|
4627 |
+
$file_array = explode('?', $file);
|
4628 |
+
$file = $file_array[0];
|
4629 |
+
$full_url = false;
|
4630 |
+
}
|
4631 |
if ($creds) {
|
4632 |
$accessToken = powerpress_getAccessToken();
|
4633 |
$req_url = sprintf('/2/media/%s/%s?format=json&info=true', urlencode($program_Keyword), urlencode($file));
|
4654 |
if ($Results && is_array($Results))
|
4655 |
return $Results;
|
4656 |
|
4657 |
+
if ($full_url) {
|
4658 |
+
// if no results, try verifying the unpublished version of the file
|
4659 |
+
$file_array = explode('/', $file);
|
4660 |
+
$file = $file_array[count($file_array) - 1];
|
4661 |
+
// remove query string
|
4662 |
+
$file_array = explode('?', $file);
|
4663 |
+
$file = $file_array[0];
|
4664 |
+
$content = false;
|
4665 |
+
$Results = array();
|
4666 |
+
|
4667 |
+
if ($creds) {
|
4668 |
+
$accessToken = powerpress_getAccessToken();
|
4669 |
+
$req_url = sprintf('/2/media/%s/%s?format=json&info=true', urlencode($program_Keyword), urlencode($file));
|
4670 |
+
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA') ? '?' . POWERPRESS_BLUBRRY_API_QSA : '');
|
4671 |
+
$Results = $auth->api($accessToken, $req_url, false);
|
4672 |
+
} else {
|
4673 |
+
foreach ($api_url_array as $index => $api_url) {
|
4674 |
+
$req_url = sprintf('%s/media/%s/%s?format=json&info=true', rtrim($api_url, '/'), urlencode($program_Keyword), urlencode($file));
|
4675 |
+
$req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA') ? '&' . POWERPRESS_BLUBRRY_API_QSA : '');
|
4676 |
+
$content = powerpress_remote_fopen($req_url, $Settings['blubrry_auth']);
|
4677 |
+
if (!$content && $api_url == 'https://api.blubrry.com/') { // Lets force cURL and see if that helps...
|
4678 |
+
$content = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 15, false, true);
|
4679 |
+
}
|
4680 |
|
4681 |
+
if ($content != false)
|
4682 |
+
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4683 |
}
|
4684 |
|
4685 |
+
if ($content) {
|
4686 |
+
$Results = powerpress_json_decode($content);
|
4687 |
+
}
|
|
|
|
|
|
|
4688 |
}
|
4689 |
}
|
4690 |
|
|
|
|
|
|
|
|
|
4691 |
if ($Results && is_array($Results))
|
4692 |
return $Results;
|
4693 |
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: podcasting, podcast, podcaster, powerpress, itunes, apple, apple podcasts,
|
|
4 |
Requires at least: 3.6
|
5 |
Requires PHP: 5.2
|
6 |
Tested up to: 6.0
|
7 |
-
Stable tag: 9.
|
8 |
Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
|
9 |
License: GPLv2 or later
|
10 |
|
@@ -186,6 +186,10 @@ If you are a fan of PowerPress, we would greatly appreciate it if you could take
|
|
186 |
|
187 |
== Changelog ==
|
188 |
|
|
|
|
|
|
|
|
|
189 |
= 9.1.4 =
|
190 |
* Released on 08/03/2022
|
191 |
* Encode html special characters in media URLs
|
4 |
Requires at least: 3.6
|
5 |
Requires PHP: 5.2
|
6 |
Tested up to: 6.0
|
7 |
+
Stable tag: 9.2
|
8 |
Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
|
9 |
License: GPLv2 or later
|
10 |
|
186 |
|
187 |
== Changelog ==
|
188 |
|
189 |
+
= 9.2 =
|
190 |
+
* Released on 08/17/2022
|
191 |
+
* Support for Programmatic Ads thru Blubrry
|
192 |
+
|
193 |
= 9.1.4 =
|
194 |
* Released on 08/03/2022
|
195 |
* Encode html special characters in media URLs
|